From 54f47ecf5f955f9d702ecbbc8dddb76ab5df4352 Mon Sep 17 00:00:00 2001 From: lkxed Date: Sun, 21 Aug 2022 23:50:21 +0800 Subject: [PATCH 001/222] =?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=20wi?= =?UTF-8?q?th=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 002/222] 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 003/222] 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 004/222] 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 005/222] 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 006/222] =?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 007/222] =?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=204?= =?UTF-8?q?=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 008/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020220822=20Kooha=20Screen=20Recorder=20Gets=20Enhanced?= =?UTF-8?q?=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 009/222] =?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=20NES?= =?UTF-8?q?=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 010/222] =?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=20Connected?= =?UTF-8?q?=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 011/222] 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 012/222] 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 013/222] 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 014/222] 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 015/222] 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 016/222] 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 017/222] 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 018/222] 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 019/222] 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 020/222] 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 021/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220824=20Blackbox=20is=20an=20Aesthetically=20Pleasi?= =?UTF-8?q?ng=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 022/222] =?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=20g?= =?UTF-8?q?overnance=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 023/222] =?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=20?= =?UTF-8?q?keyfiles=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 024/222] =?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=20Who?= =?UTF-8?q?=20Termed=20-Unix-=20Adds=20Unicode=20Support=20to=20AWK=20Code?= =?UTF-8?q?.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 025/222] =?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 026/222] =?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=20Upsca?= =?UTF-8?q?yl=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 027/222] =?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 028/222] =?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 029/222] =?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=20O?= =?UTF-8?q?f=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 030/222] 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 031/222] 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 032/222] 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 033/222] 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 034/222] 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 035/222] 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 036/222] 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 037/222] 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 038/222] =?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=20Le?= =?UTF-8?q?arning=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 039/222] =?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-=20What-?= =?UTF-8?q?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 040/222] =?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 041/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220825=20Building=20a=20Stateless=20Firewall=20Using?= =?UTF-8?q?=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 042/222] =?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=20?= =?UTF-8?q?follow=20this=20ever=20increasing=20hype=20cycle=20for=20new=20?= =?UTF-8?q?stuff-.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 043/222] =?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 044/222] =?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=20Yo?= =?UTF-8?q?u=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 045/222] =?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=20Mana?= =?UTF-8?q?ger=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 046/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220825=20Using=20eBPF=20for=20network=20observabilit?= =?UTF-8?q?y=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 047/222] =?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=206?= =?UTF-8?q?=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 048/222] 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 049/222] 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 050/222] 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 051/222] 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 052/222] 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 053/222] 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 054/222] =?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-=20This?= =?UTF-8?q?=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 055/222] =?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=20Ma?= =?UTF-8?q?cintosh=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 056/222] =?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=20an?= =?UTF-8?q?=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 057/222] =?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=20?= =?UTF-8?q?Source=20Is=20Significant=20For=20Emulation,=20Here-s=20Why.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 058/222] =?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 059/222] =?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=20Loo?= =?UTF-8?q?p=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 060/222] =?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=20user?= =?UTF-8?q?=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 061/222] =?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=20directory?= =?UTF-8?q?=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 062/222] 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 063/222] 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 064/222] 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 065/222] 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 066/222] 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 067/222] 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 068/222] 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 069/222] 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 070/222] 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 071/222] 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 072/222] =?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=20f?= =?UTF-8?q?or=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 073/222] 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 074/222] 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 075/222] 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 076/222] 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 077/222] =?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=20alb?= =?UTF-8?q?um=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 078/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220828=207=20Minimalist=20Linux=20Distributions=20Fe?= =?UTF-8?q?aturing=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 079/222] 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 080/222] 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 081/222] 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 082/222] =?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 083/222] 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 084/222] 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 085/222] 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 086/222] 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 087/222] 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 088/222] 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 089/222] 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 090/222] 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 091/222] 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 092/222] 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 093/222] =?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=20U?= =?UTF-8?q?sing=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 094/222] =?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=20Databases?= =?UTF-8?q?=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 095/222] =?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 096/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220829=20Scrivano-=20Fascinating=20Whiteboard=20App?= =?UTF-8?q?=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 097/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220830=20Crystal=20Linux-=20Emerging=20Arch=20Linux?= =?UTF-8?q?=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 098/222] =?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=20Manage?= =?UTF-8?q?ment=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 099/222] =?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=20R?= =?UTF-8?q?esolution=20to=20Consider=20a=20Non-Free=20Firmware=20Image.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 100/222] =?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=20an?= =?UTF-8?q?=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 101/222] =?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,=20Side?= =?UTF-8?q?kick,=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 102/222] =?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=20c?= =?UTF-8?q?ommand.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 103/222] =?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 104/222] =?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=20GNOME?= =?UTF-8?q?=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 105/222] =?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=20Groo?= =?UTF-8?q?vy=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 106/222] =?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=20?= =?UTF-8?q?with=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 107/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020211203=20Introduce=20the=20different=20Fedora=20Linu?= =?UTF-8?q?x=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 108/222] =?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-=20Spi?= =?UTF-8?q?ns.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 109/222] 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 110/222] 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 111/222] 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 112/222] =?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=20debu?= =?UTF-8?q?gging.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 113/222] 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 114/222] 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 115/222] 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 116/222] 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 117/222] 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 118/222] =?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=20health?= =?UTF-8?q?=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 119/222] =?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=20?= =?UTF-8?q?Lid=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 120/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220831=2021=20Basic=20Linux=20Networking=20Commands?= =?UTF-8?q?=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 121/222] =?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 122/222] 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 123/222] 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 124/222] 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 125/222] 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 126/222] 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 127/222] =?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 128/222] 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 129/222] 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 130/222] 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 131/222] 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 132/222] =?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=20Up?= =?UTF-8?q?grade=20With=20Qt6,=20HDR=20Support;=20Also=20Works=20on=20Appl?= =?UTF-8?q?e=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 133/222] =?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=20Wi?= =?UTF-8?q?th=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 134/222] =?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=20Popul?= =?UTF-8?q?ar=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 135/222] =?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 136/222] =?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=20Package?= =?UTF-8?q?s=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 137/222] =?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=20B?= =?UTF-8?q?TF=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 138/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?talk]:=2020220901=20Usability=20and=20accessibility=20starts=20?= =?UTF-8?q?with=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 139/222] 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 140/222] 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 141/222] =?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=20Lin?= =?UTF-8?q?ux=20App=20for=20Teams=20to=20Replace=20it=20as=20a=20Progressi?= =?UTF-8?q?ve=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 142/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020220902=20Evernote=20Alternative=20Notesnook=20is=20N?= =?UTF-8?q?ow=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 143/222] =?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 144/222] =?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=20?= =?UTF-8?q?is=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 145/222] =?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 146/222] 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 147/222] 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 148/222] =?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=20?= =?UTF-8?q?Upcoming=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 149/222] =?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=20with?= =?UTF-8?q?=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 150/222] =?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=20Groo?= =?UTF-8?q?vy.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 151/222] =?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=20?= =?UTF-8?q?Upcoming=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 152/222] 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 153/222] 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 154/222] 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 155/222] =?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=20Be?= =?UTF-8?q?fore=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 156/222] =?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=20?= =?UTF-8?q?in=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 157/222] =?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=20Web?= =?UTF-8?q?=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 158/222] 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 159/222] 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 160/222] 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 161/222] 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 162/222] 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 163/222] 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 164/222] 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 165/222] 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 166/222] 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 167/222] =?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=20U?= =?UTF-8?q?buntu=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 168/222] =?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 169/222] 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 170/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?news]:=2020220905=20StackAid=20Helps=20Developers=20Fund=20Hund?= =?UTF-8?q?reds=20of=20Open-Source=20Project=20Dependencies=20in=20No=20Ti?= =?UTF-8?q?me.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 171/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?tech]:=2020220905=20How=20To=20Perform=20Arithmetic=20Operation?= =?UTF-8?q?s=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 172/222] =?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 173/222] 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 174/222] 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 175/222] 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 176/222] 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 177/222] 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 178/222] 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 179/222] 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 180/222] =?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=20Sto?= =?UTF-8?q?ry.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 181/222] =?UTF-8?q?[=E6=89=8B=E5=8A=A8=E9=80=89=E9=A2=98][?= =?UTF-8?q?talk]:=2020220906=20Advantages=20and=20Disadvantages=20of=20Usi?= =?UTF-8?q?ng=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 182/222] =?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=20M?= =?UTF-8?q?achine=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 183/222] =?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=20?= =?UTF-8?q?dark=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 `