From 1c0e846d7e45fc52cddf5904862d7d5cc840099f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:02:33 +0800 Subject: [PATCH 001/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210426=20?= =?UTF-8?q?Exploring=20the=20world=20of=20declarative=20programming?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210426 Exploring the world of declarative programming.md --- ...ng the world of declarative programming.md | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 sources/tech/20210426 Exploring the world of declarative programming.md diff --git a/sources/tech/20210426 Exploring the world of declarative programming.md b/sources/tech/20210426 Exploring the world of declarative programming.md new file mode 100644 index 0000000000..b5ffce076e --- /dev/null +++ b/sources/tech/20210426 Exploring the world of declarative programming.md @@ -0,0 +1,196 @@ +[#]: subject: (Exploring the world of declarative programming) +[#]: via: (https://fedoramagazine.org/exploring-the-world-of-declarative-programming/) +[#]: author: (pampelmuse https://fedoramagazine.org/author/pampelmuse/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Exploring the world of declarative programming +====== + +![][1] + +Photo by [Stefan Cosma][2] on [Unsplash][3] + +### Introduction + +Most of us use imperative programming languages like C, Python, or Java at home. But the universe of programming languages is endless and there are languages where no imperative command has gone before. That which may sound impossible at the first glance is feasible with Prolog and other so called declarative languages. This article will demonstrate how to split a programming task between Python and Prolog. + +In this article I do not want to teach Prolog. There are [resources available][4] for that. We will demonstrate how simple it is to solve a puzzle solely by describing the solution. After that it is up to the reader how far this idea will take them. + +To proceed, you should have a basic understanding of Python. Installation of Prolog and the Python-Prolog bridge is accomplished using this command: + +dnf install pl python3-pyswip + +Our exploration uses [SWI-Prolog][5], an actively developed Prolog which has the Fedora package name “pl”. The Python/SWI-Prolog bridge is [pyswip][6]. + +If you are a bold adventurer you are welcome to follow me exploring the world of declarative programming. + +### Puzzle + +The example problem for our exploration will be a puzzle similar to what you may have seen before. + +**How many triangles are there?** + +![][7] + +### Getting started + +Get started by opening a fresh text file with your favorite text editor. Copy all three text blocks in the sections below (Input, Process and Output) together into one file. + +#### Input + +This section sets up access to the Prolog interface and defines data for the problem. This is a simple case so it is fastest to write the data lines by hand. In larger problems you may get your input data from a file or from a database. + +``` +#!/usr/bin/python + +from pyswip import Prolog + +prolog = Prolog() +prolog.assertz("line([a, e, k])") +prolog.assertz("line([a, d, f, j])") +prolog.assertz("line([a, c, g, i])") +prolog.assertz("line([a, b, h])") +prolog.assertz("line([b, c, d, e])") +prolog.assertz("line([e, f, g, h])") +prolog.assertz("line([h, i, j, k])") +``` + + * The first line is the UNIX way to tell that this text file is a Python program. +Don’t forget to make your file executable by using _chmod +x yourfile.py_ . + * The second line imports a Python module which is doing the Python/Prolog bridge. + * The third line makes a Prolog instance available inside Python. + * Next lines are puzzle related. They describe the picture you see above. +Single **small** letters stand for concrete points. +_[a,e,k]_ is the Prolog way to describe a list of three points. +_line()_ declares that it is true that the list inside parentheses is a line . + + + +The idea is to let Python do the work and to feed Prolog. + +#### “Process” + +This section title is quoted because nothing is actually processed here. This is simply the description (declaration) of the solution. + +There is no single variable which gets a new value. Technically the processing is done in the section titled Output below where you find the command _prolog.query()_. + +``` +prolog.assertz(""" +triangle(A, B, C) :- + line(L1), + line(L2), + line(L3), + L1 \= L2, + member(A, L1), + member(B, L1), + member(A, L2), + member(C, L2), + member(B, L3), + member(C, L3), + A @< B, + B @< C""") +``` + +First of all: All capital letters and strings starting with a capital letter are Prolog variables! + +The statements here are the description of what a triangle is and you can read this like: + + * **If** all lines after _“:-“_ are true, **then** _triangle(A, B, C)_ is a triangle + * There must exist three lines (L1 to L3). + * Two lines must be different. “\_=_” means not equal in Prolog. We do not want to count a triangle where all three points are on the same line! So we check if at least two different lines are used. + * _member()_ is a Prolog predicate which is true if the first argument is inside the second argument which must be a list. In sum these six lines express that the three points must be pairwise on different lines. + * The last two lines are only true if the three points are in alphabetical order. (“_@<_” compares terms in Prolog.) This is necessary, otherwise [a, h, k] and [a, k, h] would count as two triangles. Also, the case where a triangle contains the same point two or even three times is excluded by these final two lines. + + + +As you can see, it is often not that obvious what defines a triangle. But for a computed approach you must be rather strict and rigorous. + +#### Output + +After the hard work in the process chapter the rest is easy. Just have Python ask Prolog to search for triangles and count them all. + +``` +total = 0 +for result in prolog.query("triangle(A, B, C)"): + print(result) + total += 1 +print("There are", total, "triangles.") +``` + +Run the program using this command in the directory containing _yourfile.py_ : + +``` +./yourfile.py +``` + +The output shows the listing of each triangle found and the final count. + +``` +{'A': 'a', 'B': 'e', 'C': 'f'} +{'A': 'a', 'B': 'e', 'C': 'g'} +{'A': 'a', 'B': 'e', 'C': 'h'} +{'A': 'a', 'B': 'd', 'C': 'e'} +{'A': 'a', 'B': 'j', 'C': 'k'} +{'A': 'a', 'B': 'f', 'C': 'g'} +{'A': 'a', 'B': 'f', 'C': 'h'} +{'A': 'a', 'B': 'c', 'C': 'e'} +{'A': 'a', 'B': 'i', 'C': 'k'} +{'A': 'a', 'B': 'c', 'C': 'd'} +{'A': 'a', 'B': 'i', 'C': 'j'} +{'A': 'a', 'B': 'g', 'C': 'h'} +{'A': 'a', 'B': 'b', 'C': 'e'} +{'A': 'a', 'B': 'h', 'C': 'k'} +{'A': 'a', 'B': 'b', 'C': 'd'} +{'A': 'a', 'B': 'h', 'C': 'j'} +{'A': 'a', 'B': 'b', 'C': 'c'} +{'A': 'a', 'B': 'h', 'C': 'i'} +{'A': 'd', 'B': 'e', 'C': 'f'} +{'A': 'c', 'B': 'e', 'C': 'g'} +{'A': 'b', 'B': 'e', 'C': 'h'} +{'A': 'e', 'B': 'h', 'C': 'k'} +{'A': 'f', 'B': 'h', 'C': 'j'} +{'A': 'g', 'B': 'h', 'C': 'i'} +There are 24 triangles. +``` + +There are certainly more elegant ways to display this output but the point is: +**Python should do the output handling for Prolog.** + +If you are a star programmer you can make the output look like this: + +``` +*************************** +* There are 24 triangles. * +*************************** +``` + +### Conclusion + +Splitting a programming task between Python and Prolog makes it easy to keep the Prolog part pure and monotonic, which is good for logic reasoning. It is also easy to make the input and output handling with Python. + +Be aware that Prolog is a bit more complicated and can do much more than what I explained here. You can find a really good and modern introduction here: [The Power of Prolog][4]. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/exploring-the-world-of-declarative-programming/ + +作者:[pampelmuse][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/pampelmuse/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/explore_declarative-816x345.jpg +[2]: https://unsplash.com/@stefanbc?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/star-trek?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://www.metalevel.at/prolog +[5]: https://www.swi-prolog.org/ +[6]: https://github.com/yuce/pyswip +[7]: https://fedoramagazine.org/wp-content/uploads/2021/04/triangle2.png From 543d125b2272637e88e7256ef42fc1e04e3bce93 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:02:55 +0800 Subject: [PATCH 002/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210427=20?= =?UTF-8?q?An=20Open-Source=20App=20to=20Control=20All=20Your=20RGB=20Ligh?= =?UTF-8?q?ting=20Settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md --- ... Control All Your RGB Lighting Settings.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md diff --git a/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md new file mode 100644 index 0000000000..e114fbb740 --- /dev/null +++ b/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md @@ -0,0 +1,92 @@ +[#]: subject: (An Open-Source App to Control All Your RGB Lighting Settings) +[#]: via: (https://itsfoss.com/openrgb/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +An Open-Source App to Control All Your RGB Lighting Settings +====== + +**_Brief_:** _OpenRGB is a useful open-source utility to manage all your RGB lighting under a single roof. Let’s find out more about it._ + +No matter whether it is your keyboard, mouse, CPU fan, AIO, and other connected peripherals or components, Linux does not have official software support to control the RGB lighting. + +And, OpenRGB seems to be an all-in-one RGB lighting control utility for Linux. + +### OpenRGB: An All-in-One RGB Lighting Control Center + +![][1] + +Yes, you may find different tools to tweak the settings like **Piper** to specifically [configure a gaming mouse on Linux][2]. But, if you have a variety of components or peripherals, it will be a cumbersome task to set them all to your preference of RGB color. + +OpenRGB is an impressive utility that not only focuses on Linux but also available for Windows and macOS. + +It is not just an idea to have all the RGB lighting settings under one roof, but it aims to get rid of all the bloatware apps that you need to install to tweak lighting settings. + +Even if you are using a Windows-powered machine, you probably know that software tools like Razer Synapse are resource hogs and come with their share of issues. So, OpenRGB is not just limited for Linux users but for every user looking to tweak RGB settings. + +It supports a long list of devices, but you should not expect support for everything. + +### Features of OpenRGB + +![][3] + +It empowers you with many useful functionalities while offering a simple user experience. Some of the features are: + + * Lightweight user interface + * Cross-platform support + * Ability to extend functionality using plugins + * Set colors and effects + * Ability to save and load profiles + * View device information + * Connect multiple instances of OpenRGB to synchronize lighting across multiple PCs + + + +![][4] + +Along with all the above-mentioned features, you get a good control over the lighting zones, color mode, colors, and more. + +### Installing OpenRGB in Linux + +You can find AppImage files and DEB packages on their official website. For Arch Linux users, you can also find it in [AUR][5]. + +For additional help, you can refer to our [AppImage guide][6] and [ways to install DEB files][7] to set it up. + +The official website should let you download packages for other platforms as well. But, if you want to explore more about it or compile it yourself, head to its [GitLab page][8]. + +[OpenRGB][9] + +### Closing Thoughts + +Even though I do not have many RGB-enabled devices/components, I could tweak my Logitech G502 mouse successfully. + +I would definitely recommend you to give it a try if you want to get rid of multiple applications and use a lightweight interface to manage all your RGB lighting. + +Have you tried it already? Feel free to share what you think about it in the comments! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/openrgb/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb.jpg?resize=800%2C406&ssl=1 +[2]: https://itsfoss.com/piper-configure-gaming-mouse-linux/ +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-supported-devices.jpg?resize=800%2C404&ssl=1 +[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-logi.jpg?resize=800%2C398&ssl=1 +[5]: https://itsfoss.com/aur-arch-linux/ +[6]: https://itsfoss.com/use-appimage-linux/ +[7]: https://itsfoss.com/install-deb-files-ubuntu/ +[8]: https://gitlab.com/CalcProgrammer1/OpenRGB +[9]: https://openrgb.org/ From 21e88d53fa9e869b30226c9ca6c4dc3ff23c6c66 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:03:12 +0800 Subject: [PATCH 003/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210426=20?= =?UTF-8?q?3=20beloved=20USB=20drive=20Linux=20distros?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210426 3 beloved USB drive Linux distros.md --- ...10426 3 beloved USB drive Linux distros.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 sources/tech/20210426 3 beloved USB drive Linux distros.md diff --git a/sources/tech/20210426 3 beloved USB drive Linux distros.md b/sources/tech/20210426 3 beloved USB drive Linux distros.md new file mode 100644 index 0000000000..99247ee961 --- /dev/null +++ b/sources/tech/20210426 3 beloved USB drive Linux distros.md @@ -0,0 +1,87 @@ +[#]: subject: (3 beloved USB drive Linux distros) +[#]: via: (https://opensource.com/article/21/4/usb-drive-linux-distro) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +3 beloved USB drive Linux distros +====== +Open source technologists weigh in. +![Linux keys on the keyboard for a desktop computer][1] + +There are few Linux users who don't remember the first time they discovered you could boot a computer and run Linux on it without ever actually installing it. Sure, many users are aware that you can boot a computer to an operating system installer, but with Linux it's different: there doesn't need to be an install at all! Your computer doesn't even need to have a hard drive in it. You can run Linux for months or even _years_ off of a USB drive. + +Naturally, there are a few different "live" Linux distributions to choose from. We asked our writers for their favourites, and their responses represent the full spectrum of what's available. + +### 1\. Puppy Linux + +"As a prior **Puppy Linux** ****developer, my views on this are rather biased. But what originally attracted me to Puppy was: + + * its focus on lower-end and older hardware which is readily available in 3rd world countries; this opens up computing for disadvantaged areas that can't afford the latest modern systems + * its ability to run in RAM, which when utilized can offer some interesting security benefits + * the way it handles user files and sessions in a single SFS file making backing up, restoring, or moving your existing desktop/applications/files to another install with a single copy command" + + + +—[JT Pennington][2] + +"It has always been **Puppy Linux** for me. It boots up quickly and supports old hardware. The GUI is super easy to convince someone to try Linux for the first time." —[Sachin Patil][3] + +"Puppy is the live distro that truly runs on anything. I had an old discarded microATX tower with a broken optical drive, literally no hard drive (it had been removed for data security), and hardly any RAM. I slotted Puppy into its SD card slot and ran it for years." —[Seth Kenlon][4] + +"I don't have that much experience in using USB drive Linux distros but my vote goes to **Puppy Linux**. It's light and perfectly suitable for old machines." —[Sergey Zarubin][5] + +### 2\. Fedora and Red Hat + +"My favourite USB distro is actually just the **Fedora Live USB**. It has a browser, disk utilities, and a terminal emulator so I can use it to rescue data from a machine or I can browse the web or ssh to other machines to do some work if needed. All this without storing any data on the stick or the machine in use to be exposed if compromised." —[Steve Morris][6] + +"I used to use Puppy and DSL. These days I have two USB Keys: **RHEL7 and RHEL8**. These are both configured as full working environments with the ability to boot for UEFI and BIOS. These have been real-life and time savers when I'm faced with a random piece of hardware where we're having issues troubleshooting an issue." —[Steven Ellis][7] + +### 3\. Porteus + +"Not long ago, I installed VMs of every version of Porteus OS. That was fun, so maybe I'll take another look at them. Whenever the topic of tiny distros comes up, I'm always reminded of the first one that I can remember using: **tomsrtbt**. It was always designed to fit on a floppy. I'm not sure how useful it is these days, but just thought I'd throw it in the mix." —[Alan Formy-Duval][8] + +"As a longtime Slackware user, I appreciate **Porteus** for providing a current build of Slack, and a flexible environment. You can boot with Porteus running in RAM so there's no need to keep the USB drive attached to your computer, or you can run it off the drive so you can retain your changes. Packaging applications is easy, and there are lots of existing packages available from the Slacker community. It's the only live distro I need." —[Seth Kenlon][4] + +### Bonus: Knoppix + +"I haven't used **Knoppix **in a while but I used it a lot at one time to save Windows computers that had been damaged by malware. It was originally released in September 2000 and has been under continuous development since then. It was originally developed and named after Linux consultant Klaus Knopper and designed to be used as a Live CD. We used it to rescue user files on Windows systems that had become inaccessible due to malware and viruses." —[Don Watkins][9] + +"Knoppix was hugely influencial to live Linux, but it's also one of the most accessible distributions for blind users. Its [ADRIANE interface][10] is designed to be used without a visual display, and can handle all the most common tasks any user is likely to require from a computer." —[Seth Kenlon][11] + +### Choose your live Linux + +There are many that haven't been mentioned, such as [Slax][12] (a Debian-based live distro), [Tiny Core][13], [Slitaz][14], [Kali][15] (a security-focused utility distro), [E-live][16], and more. If you have a spare USB drive, put Linux on it and use Linux on any computer, any time! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/usb-drive-linux-distro + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) +[2]: https://opensource.com/users/jtpennington +[3]: https://opensource.com/users/psachin +[4]: http://opensource.com/users/seth +[5]: https://opensource.com/users/sergey-zarubin +[6]: https://opensource.com/users/smorris12 +[7]: https://opensource.com/users/steven-ellis +[8]: https://opensource.com/users/alanfdoss +[9]: https://opensource.com/users/don-watkins +[10]: https://opensource.com/life/16/7/knoppix-adriane-interface +[11]: https://opensource.com/article/21/4/opensource.com/users/seth +[12]: http://slax.org +[13]: http://www.tinycorelinux.net/ +[14]: http://www.slitaz.org/en/ +[15]: http://kali.org +[16]: https://www.elivecd.org/ From 1b7cf16847ad1ea8f01bd416eebe49a5b86e230e Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:03:25 +0800 Subject: [PATCH 004/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210426=20?= =?UTF-8?q?How=20we=20built=20an=20open=20source=20design=20system=20to=20?= =?UTF-8?q?create=20new=20community=20logos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210426 How we built an open source design system to create new community logos.md --- ...gn system to create new community logos.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 sources/tech/20210426 How we built an open source design system to create new community logos.md diff --git a/sources/tech/20210426 How we built an open source design system to create new community logos.md b/sources/tech/20210426 How we built an open source design system to create new community logos.md new file mode 100644 index 0000000000..81089c3c74 --- /dev/null +++ b/sources/tech/20210426 How we built an open source design system to create new community logos.md @@ -0,0 +1,134 @@ +[#]: subject: (How we built an open source design system to create new community logos) +[#]: via: (https://opensource.com/article/21/4/ansible-community-logos) +[#]: author: (Fiona Lin https://opensource.com/users/fionalin) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +How we built an open source design system to create new community logos +====== +Learn how Ansible's new logos were developed with stakeholder input to +ensure a consistent brand across the entire project. +![UX design Mac computer with mobile and laptop][1] + +As interaction designers on Red Hat's User Experience (UX) Design and Ansible product teams, we worked for about six months to build a logo family with the Ansible community. This journey started even earlier when a project manager asked us for a "quick and easy" logo for a slide deck. After gathering a few requirements, we presented a logo to the stakeholders within a few days and without much need for iteration. A few months later, another stakeholder decided they would also benefit from having imagery for their materials, so we repeated the process. + +At this point, we noticed a pattern: logo resources like these no longer represented individual requests but rather a common need across the Ansible project. After completing several logo requests, we had built a makeshift series that—without conscious branding and design conventions—created the potential for visual inconsistencies across the Ansible brand. As the logo collection grew, we recognized this looming problem and the need to combat it. + +Our solution was to create an Ansible design system, a brand-specific resource to guide consistent logo design well into the future. + +### What is a design system? + +A design system is a collection of reusable assets and guidelines that help inform the visual language of any digital product suite. Design systems create patterns to bring separate products together and elevate brands through scalability and consistency. + +Especially in a large corporation with multiple products in the portfolio, scaling does not come easily without standardization as different teams contribute to each product. Design systems work as a baseline for each team to build new assets on. With a standardized look and feel, products are unified as one family across the portfolio. + +### Getting started building a design system + +After receiving a series of requests from stakeholders to create logos for the open source Ansible community, such as Ansible Builder, Ansible Runner, and Project Receptor, we decided to design a structure for our workflow and create a single source of truth to work for moving forward. + +First, we conducted a visual audit of the existing logos to determine what we had to work with. Ansible's original logo family consists of four main images: the Angry Spud for AWX, the Ansibull for Ansible Core/Engine, and the monitor with wings for AWX. Most of the logos were tied together with a consistent shade of red and bull imagery, but the stroke width, stroke color, line quality, and typography were vast and varied. + +![Original Ansible logos][2] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +The Angry Spud uses a tan outline and a hand-drawn style, while the bull is a symmetrical, geometric vector. The AWX monitor was the outlier with its thin line-art wings, blue vector rectangle, and Old English typeface (not included here, but an exception from the rest of the family, which uses a modern sans serif). + +### Establishing new design criteria + +Taking color palette, typography, and imagery into consideration, we generated a consistent composition that features the Ansibull for all core Ansible products, along with bold lines and vibrant colors. + +![Ansible design system][4] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +The new Ansible community logo design style guide details the color palette, typography, sizing, spacing, and logo variations for Ansible product logos. + +The new style guide presents a brand new, modern custom typeface based on GT America by [Grilli Type][5], an independent Swiss type foundry. We created a softer look for the typeface to match the imagery's roundedness by rounding out certain corners of each letter. + +We decided to curate a more lively, saturated, and universal color palette by incorporating more colors in the spectrum and basing them on primary colors. The new palette features light blue, yellow, and pink, each with a lighter highlight and darker shadow. This broader color scope allows more flexibility within the system and introduces a 3D look and feel. + +![New Ansible logos][6] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +We also introduced new imagery, such as the hexagons in the Receptor and AWX logos for visual continuity. Finally, we made sure each logo works on both light and dark backgrounds for maximum flexibility. + +### Expanding the design portfolio + +Once we established the core logo family, we moved onto creating badges for Ansible services, such as Ansible Demo and Ansible Workshop. To differentiate services from products, we decided to enclose service graphics in a circle that contains the name of the service in the same custom typography. The new service badges show the baby Ansibull (from the Ansible Builder logo) completing tasks related to each service, such as pointing to a whiteboard for Ansible Demo or using building tools for Ansible Workshop. + +![New Ansible services logos][7] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +### Using open source for design decisions + +The original AWX logo was influenced by rock-and-roll imagery, such as the wings and the heavy metal typeface (omitted from the image here). + +![Original AWX logo][8] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +Several members of the Ansible community, including the Red Hat Diversity and Inclusion group, brought to our attention that these elements resemble imagery used by hate groups. + +Given the social implications of the original logo's imagery, we had to work quickly with the Ansible community to design a replacement. Instead of working in a silo, as we did for the initial logos, we broadened the project's scope to carefully consider a wider range of stakeholders, including the Ansible community, Red Hat Diversity and Inclusion group, and Red Hat Legal team. + +We started brainstorming by reaching out to the Ansible open source community for ideas. One of the Ansible engineers, Rebeccah Hunter, contributed in the sketching phase and later became an embedded part of our design team. Part of the challenge of involving a large group of stakeholders was that we had a variety of ideas for new logo concepts, ranging from an auxiliary cable to a bowl of ramen. + +We sketched five community-surfaced logos, each featuring a different branded visual: a sprout, a rocket, a monitor, a bowl of ramen, and an auxiliary cable. + +![AWX logo concepts][9] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +After completing these initial concept sketches, we set up a virtual voting mechanism that we used throughout the iteration process. This voting system allowed us to use community feedback to narrow from five initial concepts down to three: the rocket, the bowl of ramen, and the monitor. We further iterated on these three directions and presented back, via a Slack channel dedicated to this effort, until we landed on one direction, the AWX monitor, that aligned with the community's vision. + +![New AWX logo][10] + +(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3]) + +With community voices as our guide, we pursued the monitor logo concept for AWX. We preserved the monitor element from the original logo while modernizing the look and feel to match our updated design system. We used a more vibrant color palette, a cleaner sans-serif typeface, and elements, including the hexagon motif, from the Project Receptor logo. + +By engaging with our community from the beginning of the process, we were able to design and iterate in the open with a sense of inclusiveness from all stakeholders. In the end, we felt this was the best approach for replacing a controversial logo. The final version was handed off to the Red Hat Legal team, and after approval, we replaced all current assets with this new logo. + +### Key takeaways + +Creating a set of rules and assets for a design system keeps your digital products consistent across the board, eliminates brand confusion, and enables scalability. + +As you explore building a design system with your own community, you may benefit from these key takeaways we learned along our path: + + * Scaling new logos with a design system is a much easier process than without one. + * Juggling design options becomes less daunting when you use a polling system to validate results. + * Directing a large audience's attention on sets of three eliminates decision fatigue and focuses community feedback. + + + +We hope this article provides insight into designing a system with an open source community and helps you recognize the benefit of developing a system early in your process. If you are creating a new design system, what questions do you have? And if you have created one, what lessons have you learned? Please share your ideas in the comments. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/ansible-community-logos + +作者:[Fiona Lin][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/fionalin +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ux-design-mac-laptop.jpg?itok=9-HKgXa9 (UX design Mac computer with mobile and laptop) +[2]: https://opensource.com/sites/default/files/pictures/original_logos.png (Original Ansible logos) +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://opensource.com/sites/default/files/pictures/design_system.png (Ansible design system) +[5]: https://www.grillitype.com/ +[6]: https://opensource.com/sites/default/files/pictures/new_logos.png (New Ansible logos) +[7]: https://opensource.com/sites/default/files/pictures/new_service_badges.png (New Ansible services logos) +[8]: https://opensource.com/sites/default/files/uploads/awx_original.png (Original AWX logo) +[9]: https://opensource.com/sites/default/files/uploads/awx_concepts.png (AWX logo concepts) +[10]: https://opensource.com/sites/default/files/uploads/awx.png (New AWX logo) From c36d61941b971b8129c1af4719898cca961fad6b Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:03:45 +0800 Subject: [PATCH 005/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210426=20?= =?UTF-8?q?KDE=20Announces=20Various=20App=20Upgrades=20With=20Cutting-Edg?= =?UTF-8?q?e=20Features?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md --- ...App Upgrades With Cutting-Edge Features.md | 169 ++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md diff --git a/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md b/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md new file mode 100644 index 0000000000..aa92c51969 --- /dev/null +++ b/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md @@ -0,0 +1,169 @@ +[#]: subject: (KDE Announces Various App Upgrades With Cutting-Edge Features) +[#]: via: (https://news.itsfoss.com/kde-gear-app-release/) +[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +KDE Announces Various App Upgrades With Cutting-Edge Features +====== + +Alongside their Plasma Desktop Environment, KDE develops a huge range of other apps collectively named KDE Gear. These range from content creation apps such as **Kdenlive** and **Kwave** to utilities such as Dolphin, Discover, and Index. + +KDE Gear is something new. It includes heaps of improvements to almost all the KDE apps, which we will be exploring here. + +### What Is KDE Gear? + +![][1] + +For many people, this name will sound unfamiliar. This is because [KDE Gear][2] is the new name for the [KDE Applications][3]. Previously, they were released individually. The new name aims to unify their marketing and provide greater clarity to users. + +According to **KDE developer Jonathan Riddell**: + +> KDE Gear is the new name for the app (and libraries and plugins) bundle of projects that want the release faff taken off their hands… It was once called just KDE, then KDE SC, then KDE Applications, then the unbranded release service, and now we’re banding it again as KDE Gear. + +This rebrand makes sense, especially as the KDE logo itself is pretty much a glorified gear. + +### Major KDE App Upgrades + +KDE Gear contains many applications, each with its purpose. Here, we will be looking at a few of the key highlights. These include: + + * Kdenlive + * Dolphin + * Elisa + * Index + + + +We have also covered the new [Kate editor release challenging Microsoft’s Visual Studio Code][4] separately, if you are curious. + +#### Kdenlive + +![][5] + +KDE’s video editor has improved massively over the past few years, with heaps of new features added with this release. It involves: + + * Online Resources tool + * Speech-To-Text + * New AV1 support + + + +The Online resources tool is a fairly recent addition. The main purpose of this tool is to download free stock footage for use in your videos. + +The Speech-To-Text tool is a nifty little tool that will automatically create subtitles for you, with surprising accuracy. It is also effortless to use, with it being launched in just 3 clicks. + +Finally, we get to see the main new feature in the 21.04 release: AV1 codec support. This is a relatively new video format with features such as higher compression, and a royalty-free license. + +#### Dolphin + +![][5] + +Dolphin, the file manager for Plasma 5, is one of the most advanced file managers existing. Some of its notable features include a built-in terminal emulator and file previews. + +With this release, there are a multitude of new features, including the ability to: + + * Decompress multiple files at once + * Open a folder in a new tab by holding the control key + * Modify the options in the context menu + + + +While minor, these new features are sure to make using Dolphin an even smoother experience. + +#### Elisa + +![][6] + +Elisa is one of the most exciting additions to KDE Gear. For those who don’t know about it yet, Elisa is a new music player based on [Kirigami][7]. The result of this is an app capable of running on both desktop and mobile. + +With this release, the list of features offered by this application has grown quite a bit longer. Some of these new features include: + + * Support for AAC audio files + * Support for .m3u8 playlists + * Reduced memory usage + + + +As always, the inclusion of support for more formats is welcome. As the KDE release announcement says: + +> But [the new features] don’t mean Elisa has become clunkier. Quite the contrary: the new version released with KDE Gear today actually consumes less memory when you scroll around the app, making it snappy and a joy to use. + +This app is becoming better with each release, and is becoming one of my favorite apps for Linux. At the rate it is improving, we can expect Elisa to become one of the best music players in existence. + +#### Index + +Index is the file manager for Plasma Mobile. Based on Kirigami technologies, it adapts to both mobile and desktop screens well. + +Alongside this convergence advantage, it has almost reached feature-parity with Dolphin, making it a viable alternative on the desktop as well. Because it is constantly being updated with new features and is an evolving application, there isn’t a set list of new features. + +If you want to check out its latest version, feel free to [download it from the project website.][8] + +### Other App Updates + +![][5] + +In addition to the above-mentioned app upgrades, you will also find significant improvements for **Okular**, **KMail**, and other KDE applications. + +To learn more about the app updates, you can check out the [official announcement page][9]. + +### Wrapping Up + +The new KDE Gear 21.04 release includes a wide range of new features and updates all the KDE apps. These promise better performance, usability, and compatibility. + +I am really excited about Elisa and Index, especially as they make use of Kirigami. + +_What do you think about_ _the latest KDE app updates? Let me know your thoughts down in the comments below!_ + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +#### _Related_ + + * [Linux Release Roundup #21.17: Ubuntu 21.04, VirtualBox 6.1.20, Firefox 88, and More New Releases][10] + * ![][11] ![Linux Release Roundups][12] + + + * [KDE Plasma 5.21 Brings in a New Application Launcher, Wayland Support, and Other Exciting Additions][13] + * ![][11] ![][14] + + + * [SparkyLinux 2021.03 Release Introduces a KDE Plasma Edition, Xfce 4.16 Update, and More Upgrades][15] + * ![][11] ![][16] + + + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/kde-gear-app-release/ + +作者:[Jacob Crume][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/jacob/ +[b]: https://github.com/lujun9972 +[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMxOCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[2]: https://kde.org/announcements/gear/21.04/ +[3]: https://apps.kde.org/ +[4]: https://news.itsfoss.com/kate/ +[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzczMCcgd2lkdGg9JzYwMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[7]: https://develop.kde.org/frameworks/kirigami// +[8]: https://download.kde.org/stable/maui/index/1.2.1/index-v1.2.1-amd64.AppImage +[9]: https://kde.org/announcements/releases/2020-04-apps-update/ +[10]: https://news.itsfoss.com/linux-release-roundup-2021-17/ +[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 +[13]: https://news.itsfoss.com/kde-plasma-5-21-release/ +[14]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/kde-plasma-5-21-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[15]: https://news.itsfoss.com/sparkylinux-2021-03-release/ +[16]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/sparky-linux-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 From 3d32868507989780610c5024e891adc7d9ff3c48 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 27 Apr 2021 05:03:58 +0800 Subject: [PATCH 006/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210426=20?= =?UTF-8?q?Next=20Mainline=20Linux=20Kernel=205.12=20Released=20with=20Ess?= =?UTF-8?q?ential=20Improvements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md --- ...12 Released with Essential Improvements.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md diff --git a/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md b/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md new file mode 100644 index 0000000000..e6727ae724 --- /dev/null +++ b/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md @@ -0,0 +1,146 @@ +[#]: subject: (Next Mainline Linux Kernel 5.12 Released with Essential Improvements) +[#]: via: (https://news.itsfoss.com/linux-kernel-5-12-release/) +[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Next Mainline Linux Kernel 5.12 Released with Essential Improvements +====== + +[Linux Kernel 5.11][1] was an impressive release with the support for new hardware that’s probably out-of-stock till the end of 2022. + +Now, almost after 2 months of work and a week of delay for a release candidate version 8, Linux Kernel 5.12 is here. + +The improvements span across many things that include processor support, laptop support, new hardware support, storage enhancements, and a few more essential driver additions. + +Here, I will highlight the key changes with this release to give you an overview. + +### Linux Kernel 5.12: Essential Improvements & Additions + +Linux Kernel 5.12 is a neat release with many essential additions. Also, it is worth noting that Linux [5.13 would be the first Linux Kernel to add initial support for Apple M1 devices][2] if you were expecting it here. + +With the [release announcement][3], Linus Torvalds mentioned: + +> Thanks to everybody who made last week very calm indeed, which just makes me feel much happier about the final 5.12 release. +> +> Both the shortlog and the diffstat are absolutely tiny, and it’s mainly just a random collection of small fixes in various areas: arm64 devicetree files, some x86 perf event fixes (and a couple of tooling ones), various minor driver fixes (amd and i915 gpu fixes stand out, but honestly, that’s not because they are big, but because the rest is even smaller), a couple of small reverts, and a few locking fixes (one kvm serialization fix, one memory ordering fix for rwlocks). + +Let us take a look at what’s new overall. + +#### Official PlayStation 5 Controller Driver + +Sony’s open-source driver for controllers were pushed back last cycle, but it has been included with Linux 5.12 Kernel. + +Not just as a one-time open-source driver addition but Sony has committed to its maintenance as well. + +So, if you were looking to use Sony’s DualSense PlayStation 5 Controller, now would be a good time to test it out. + +#### AMD FreeSync HDMI Support + +While AMD has been keeping up with good improvements for its Linux graphics drivers, there was no [FreeSync][4] support over HDMI port. + +With Linux Kernel 5.12, a patch has been merged to the driver that enables FreeSync support on HDMI ports. + +#### Intel Adaptive-Sync for Xe Graphics + +Intel’s 12th gen Xe Graphics is an exciting improvement for many users. Now, with Linux Kernel 5.12, adaptive sync support (variable refresh rate) will be added to connections over the Display Port. + +Of course, considering that AMD has managed to add FreeSync support with HDMI, Intel would probably be working on the same for the next Linux Kernel release. + +#### Nintendo 64 Support + +Nintendo 64 is a popular but very [old home video game console][5]. For this reason, it might be totally dropped as an obsolete platform but it is good to see the added support (for those few users out there) in Linux Kernel 5.12. + +#### OverDrive Overclocking for Radeon 4000 Series + +Overlocking support for AMD’s latest GPU’s was not yet supporting using the command-line based OverDrive utility. + +Even though OverDrive has been officially discontinued, there is no GUI-based utility by AMD for Linux. So, this should help meanwhile. + +#### Open-Source Nvidia Driver Support for Ampere Cards + +The open-source Nvidia [Nouveau][6] drivers introduces improved support for Ampere-based cards with Linux Kernel 5.12, which is a step-up from Linux Kernel 5.11 improvements. + +With the upcoming Linux Kernel 5.13, you should start seeing 3D acceleration support as well. + +#### Improvements to exFAT Filesystem + +There have been significant optimizations for [exFAT Filesytem][7] that should allow you to delete big files much faster. + +#### Intel’s Open-Source Driver to Display Laptop Hinge/Keyboard Angle + +If you have a modern Intel laptop, you are in luck. Intel has contributed another open-source driver to help display the laptop hinge angle in reference to the ground. + +Maybe you are someone who’s writing a script to get something done in your Laptop when the hinge reaches a certain angle or who knows what else? Tinkerers would mostly benefit from this addition by harnessing the information they did not have. + +### Other Improvements + +In addition to the key additions I mentioned above, there are numerous other improvements that include: + + * Improved battery reporting for Logitech peripherals + * Improved Microsoft Surface laptop support + * Snapdragon 888 support + * Getting rid of obsolete ARM platforms + * Networking improvements + * Security improvements + + + +You might want to check out the [full changelog][8] to know all the technical details. + +If you think Linux 5.12 could be a useful upgrade for you, I’d suggest you to wait for your Linux distribution to push an update or make it available for you to select it as your Linux Kernel from the repository. + +It is also directly available in [The Linux Kernel Archives][9] as a tarball if you want to compile it from source. + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +#### _Related_ + + * [Linux Release Roundup #21.14: AlmaLinux OS, Linux Lite 5.4, Ubuntu 21.04 and More New Releases][10] + * ![][11] ![Linux Release Roundups][12] + + + * [Linux Kernel 5.11 Released With Support for Wi-Fi 6E, RTX 'Ampere' GPUs, Intel Iris Xe and More][1] + * ![][11] ![][13] + + + * [Nitrux 1.3.8 Release Packs in KDE Plasma 5.21, Linux 5.11, and More Changes][14] + * ![][11] ![][15] + + + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/linux-kernel-5-12-release/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://news.itsfoss.com/linux-kernel-5-11-release/ +[2]: https://news.itsfoss.com/linux-kernel-5-13-apple-m1/ +[3]: https://lore.kernel.org/lkml/CAHk-=wj3ANm8QrkC7GTAxQyXyurS0_yxMR3WwjhD9r7kTiOSTw@mail.gmail.com/ +[4]: https://en.wikipedia.org/wiki/FreeSync +[5]: https://en.wikipedia.org/wiki/Nintendo_64 +[6]: https://nouveau.freedesktop.org +[7]: https://en.wikipedia.org/wiki/ExFAT +[8]: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.12 +[9]: https://www.kernel.org/ +[10]: https://news.itsfoss.com/linux-release-roundup-2021-14/ +[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 +[13]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/linux-kernel-5-11-release.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[14]: https://news.itsfoss.com/nitrux-1-3-8-release/ +[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/nitrux-1-3-8.png?fit=1200%2C675&ssl=1&resize=350%2C200 From 14e365880e12a075ce92deaa1f07b1edc0dcc182 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 27 Apr 2021 22:19:32 +0800 Subject: [PATCH 007/170] PUB @wxy https://linux.cn/article-13340-1.html --- ...07 Using network bound disk encryption with Stratis.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) rename {translated/tech => published}/20210407 Using network bound disk encryption with Stratis.md (98%) diff --git a/translated/tech/20210407 Using network bound disk encryption with Stratis.md b/published/20210407 Using network bound disk encryption with Stratis.md similarity index 98% rename from translated/tech/20210407 Using network bound disk encryption with Stratis.md rename to published/20210407 Using network bound disk encryption with Stratis.md index 69d8a6987f..4c1440fd56 100644 --- a/translated/tech/20210407 Using network bound disk encryption with Stratis.md +++ b/published/20210407 Using network bound disk encryption with Stratis.md @@ -4,13 +4,13 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13340-1.html) 使用 Stratis 的网络绑定磁盘加密 ====== -![][1] +![](https://img.linux.net.cn/data/attachment/album/202104/27/221704gyzyvyroyyrybany.jpg) 在一个有许多加密磁盘的环境中,解锁所有的磁盘是一项困难的任务。网络绑定磁盘加密Network bound disk encryption(NBDE)有助于自动解锁 Stratis 卷的过程。这是在大型环境中的一个关键要求。Stratis 2.1 版本增加了对加密的支持,这在《[Stratis 加密入门][4]》一文中介绍过。Stratis 2.3 版本最近在使用加密的 Stratis 池时引入了对网络绑定磁盘加密(NBDE)的支持,这是本文的主题。 @@ -277,7 +277,7 @@ via: https://fedoramagazine.org/network-bound-disk-encryption-with-stratis/ [1]: https://fedoramagazine.org/wp-content/uploads/2021/03/stratis-nbde-816x345.jpg [2]: https://unsplash.com/@imattsmart?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText [3]: https://unsplash.com/s/photos/lock?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://fedoramagazine.org/getting-started-with-stratis-encryption/ +[4]: https://linux.cn/article-13311-1.html [5]: https://stratis-storage.github.io/ [6]: https://www.youtube.com/watch?v=CJu3kmY-f5o [7]: https://github.com/latchset/tang From e3e539e7e9e3c80f73657ff9078aa3ac7633c5ad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 27 Apr 2021 22:53:07 +0800 Subject: [PATCH 008/170] PRF @geekpi --- ...10422 Restore an old MacBook with Linux.md | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/translated/tech/20210422 Restore an old MacBook with Linux.md b/translated/tech/20210422 Restore an old MacBook with Linux.md index 1cececa127..f124af7bdf 100644 --- a/translated/tech/20210422 Restore an old MacBook with Linux.md +++ b/translated/tech/20210422 Restore an old MacBook with Linux.md @@ -3,14 +3,16 @@ [#]: author: (Don Watkins https://opensource.com/users/don-watkins) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) 用 Linux 翻新旧的 MacBook ====== -不要把你又旧又慢的 MacBook 扔进垃圾桶。用 Linux Mint 延长它的寿命。 -![Writing Hand][1] + +> 不要把你又旧又慢的 MacBook 扔进垃圾桶。用 Linux Mint 延长它的寿命。 + +![](https://img.linux.net.cn/data/attachment/album/202104/27/225241mdbp59t67699r9de.jpg) 去年,我写了篇关于如何用 Linux 赋予[旧 MacBook 的新生命][2]的文章,在例子中提到了 Elementary OS。最近,我用回那台 2015 年左右的 MacBook Air,发现遗失了我的登录密码。我下载了最新的 Elementary OS 5.1.7 Hera,但无法让实时启动识别我的 Broadcom 4360 无线芯片组。 @@ -18,8 +20,6 @@ ![Popsicle ISO burner][5] -(Don Watkins, [CC BY-SA 4.0][6]) - 接下来,我将 Thunderbolt 以太网适配器连接到 MacBook,并插入 USB 启动器。我打开系统电源,按下 MacBook 上的 Option 键,指示它从 USB 驱动器启动系统。 Linux Mint 在实时启动模式下启动没问题,但操作系统没有识别出无线连接。 @@ -28,53 +28,44 @@ Linux Mint 在实时启动模式下启动没问题,但操作系统没有识别 这是因为为苹果设备制造 WiFi 卡的公司 Broadcom 没有发布开源驱动程序。这与英特尔、Atheros 和许多其他芯片制造商形成鲜明对比,但它是苹果公司使用的芯片组,所以这是 MacBook 上的一个常见问题。 -我通过我的 Thunderbolt 适配器有线连接到以太网,因此我_是_在线的。通过之前的研究,我知道要让无线适配器在这台 MacBook 上工作,我需要在 Bash 终端执行三条独立的命令。然而,在安装过程中,我了解到 Linux Mint 有一个很好的内置驱动管理器,它提供了一个简单的图形用户界面来协助安装软件。 +我通过我的 Thunderbolt 适配器有线连接到以太网,因此我 _是_ 在线的。通过之前的研究,我知道要让无线适配器在这台 MacBook 上工作,我需要在 Bash 终端执行三条独立的命令。然而,在安装过程中,我了解到 Linux Mint 有一个很好的内置驱动管理器,它提供了一个简单的图形用户界面来协助安装软件。 ![Linux Mint Driver Manager][7] -(Don Watkins, [CC BY-SA 4.0][6]) - 该操作完成后,我重启了安装了 Linux Mint 20.1 的新近翻新的 MacBook Air。Broadcom 无线适配器工作正常,使我能够轻松地连接到我的无线网络。 ### 手动安装无线 你可以从终端完成同样的任务。首先,清除 Broadcom 内核源码的残余。 - ``` -`$ sudo apt-get purge bcmwl-kernel-source` +$ sudo apt-get purge bcmwl-kernel-source ``` 然后添加一个固件安装程序: - ``` -`$ sudo apt install firmware-b43-installer` +$ sudo apt install firmware-b43-installer ``` 最后,为系统安装新固件: - ``` -`$ sudo apt install linux-firmware` +$ sudo apt install linux-firmware ``` ### 将 Linux 作为你的 Mac 使用 -我安装了 [Phoronix 测试套件][8]以获得 MacBook Air 的快照。 +我安装了 [Phoronix 测试套件][8] 以获得 MacBook Air 的系统信息。 ![MacBook Phoronix Test Suite output][9] -(Don Watkins, [CC BY-SA 4.0][6]) - -系统工作良好。对内核5 .4.0-64-generic 的最新更新显示,无线连接仍然存在,并且我与家庭网络之间的连接为 866Mbps。Broadcom 的 FaceTime 摄像头不能工作,但其他东西都能正常工作。 +系统工作良好。对内核 5.4.0-64-generic 的最新更新显示,无线连接仍然存在,并且我与家庭网络之间的连接为 866Mbps。Broadcom 的 FaceTime 摄像头不能工作,但其他东西都能正常工作。 我非常喜欢这台 MacBook 上的 [Linux Mint Cinnamon 20.1][10] 桌面。 ![Linux Mint Cinnamon][11] -(Don Watkins, [CC BY-SA 4.0][6]) - 如果你有一台因 macOS 更新而变得缓慢且无法使用的旧 MacBook,我建议你试一下 Linux Mint。我对这个发行版印象非常深刻,尤其是它在我的 MacBook Air 上的工作情况。它无疑延长了这个强大的小笔记本电脑的寿命。 -------------------------------------------------------------------------------- @@ -84,7 +75,7 @@ via: https://opensource.com/article/21/4/restore-macbook-linux 作者:[Don Watkins][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 2651192f27025df3ada437f67abbf87b2f29fe51 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 27 Apr 2021 22:54:31 +0800 Subject: [PATCH 009/170] PUB @geekpi https://linux.cn/article-13341-1.html --- .../20210422 Restore an old MacBook with Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210422 Restore an old MacBook with Linux.md (98%) diff --git a/translated/tech/20210422 Restore an old MacBook with Linux.md b/published/20210422 Restore an old MacBook with Linux.md similarity index 98% rename from translated/tech/20210422 Restore an old MacBook with Linux.md rename to published/20210422 Restore an old MacBook with Linux.md index f124af7bdf..6e28e972f5 100644 --- a/translated/tech/20210422 Restore an old MacBook with Linux.md +++ b/published/20210422 Restore an old MacBook with Linux.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13341-1.html) 用 Linux 翻新旧的 MacBook ====== From d7118c1490a82216812f432303c403bf3790962d Mon Sep 17 00:00:00 2001 From: stevenzdg988 <3442417@qq.com> Date: Tue, 27 Apr 2021 23:00:36 +0800 Subject: [PATCH 010/170] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=91=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ctivity with this Linux automation tool.md | 190 ------------------ ...ctivity with this Linux automation tool.md | 183 +++++++++++++++++ 2 files changed, 183 insertions(+), 190 deletions(-) delete mode 100644 sources/tech/20210203 Improve your productivity with this Linux automation tool.md create mode 100644 translated/tech/20210203 Improve your productivity with this Linux automation tool.md diff --git a/sources/tech/20210203 Improve your productivity with this Linux automation tool.md b/sources/tech/20210203 Improve your productivity with this Linux automation tool.md deleted file mode 100644 index 86457a2e54..0000000000 --- a/sources/tech/20210203 Improve your productivity with this Linux automation tool.md +++ /dev/null @@ -1,190 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (stevenzdg988) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Improve your productivity with this Linux automation tool) -[#]: via: (https://opensource.com/article/21/2/linux-autokey) -[#]: author: (Matt Bargenquast https://opensource.com/users/mbargenquast) - -Improve your productivity with this Linux automation tool -====== -Configure your keyboard to correct common typos, enter frequently used -phrases, and more with AutoKey. -![Linux keys on the keyboard for a desktop computer][1] - -[AutoKey][2] is an open source Linux desktop automation tool that, once it's part of your workflow, you'll wonder how you ever managed without. It can be a transformative tool to improve your productivity or simply a way to reduce the physical stress associated with typing. - -This article will look at how to install and start using AutoKey, cover some simple recipes you can immediately use in your workflow, and explore some of the advanced features that AutoKey power users may find attractive. - -### Install and set up AutoKey - -AutoKey is available as a software package on many Linux distributions. The project's [installation guide][3] contains directions for many platforms, including building from source. This article uses Fedora as the operating platform. - -AutoKey comes in two variants: autokey-gtk, designed for [GTK][4]-based environments such as GNOME, and autokey-qt, which is [QT][5]-based. - -You can install either variant from the command line: - - -``` -`sudo dnf install autokey-gtk` -``` - -Once it's installed, run it by using `autokey-gtk` (or `autokey-qt`). - -### Explore the interface - -Before you set AutoKey to run in the background and automatically perform actions, you will first want to configure it. Bring up the configuration user interface (UI): - - -``` -`autokey-gtk -c` -``` - -AutoKey comes preconfigured with some examples. You may wish to leave them while you're getting familiar with the UI, but you can delete them if you wish. - -![AutoKey UI][6] - -(Matt Bargenquast, [CC BY-SA 4.0][7]) - -The left pane contains a folder-based hierarchy of phrases and scripts. _Phrases_ are text that you want AutoKey to enter on your behalf. _Scripts_ are dynamic, programmatic equivalents that can be written using Python and achieve basically the same result of making the keyboard send keystrokes to an active window. - -The right pane is where the phrases and scripts are built and configured. - -Once you're happy with your configuration, you'll probably want to run AutoKey automatically when you log in so that you don't have to start it up every time. You can configure this in the **Preferences** menu (**Edit -> Preferences**) by selecting **Automatically start AutoKey at login**. - -![Automatically start AutoKey at login][8] - -(Matt Bargenquast, [CC BY-SA 4.0][7]) - -### Correct common typos with AutoKey - -Fixing common typos is an easy problem for AutoKey to fix. For example, I consistently type "gerp" instead of "grep." Here's how to configure AutoKey to fix these types of problems for you. - -Create a new subfolder where you can group all your "typo correction" configurations. Select **My Phrases** in the left pane, then **File -> New -> Subfolder**. Name the subfolder **Typos**. - -Create a new phrase in **File -> New -> Phrase**, and call it "grep." - -Configure AutoKey to insert the correct word by highlighting the phrase "grep" then entering "grep" in the **Enter phrase contents** section (replacing the default "Enter phrase contents" text). - -Next, set up how AutoKey triggers this phrase by defining an Abbreviation. Click the **Set** button next to **Abbreviations** at the bottom of the UI. - -In the dialog box that pops up, click the **Add** button and add "gerp" as a new abbreviation. Leave **Remove typed abbreviation** checked; this is what instructs AutoKey to replace any typed occurrence of the word "gerp" with "grep." Leave **Trigger when typed as part of a word** unchecked so that if you type a word containing "gerp" (such as "fingerprint"), it _won't_ attempt to turn that into "fingreprint." It will work only when "gerp" is typed as an isolated word. - -![Set abbreviation in AutoKey][9] - -(Matt Bargenquast, [CC BY-SA 4.0][7]) - -### Restrict corrections to specific applications - -You may want a correction to apply only when you make the typo in certain applications (such as a terminal window). You can configure this by setting a Window Filter. Click the **Set** button to define one. - -The easiest way to set a Window Filter is to let AutoKey detect the window type for you: - - 1. Start a new terminal window. - 2. Back in AutoKey, click the **Detect Window Properties** button. - 3. Click on the terminal window. - - - -This will auto-populate the Window Filter, likely with a Window class value of `gnome-terminal-server.Gnome-terminal`. This is sufficient, so click **OK**. - -![AutoKey Window Filter][10] - -(Matt Bargenquast, [CC BY-SA 4.0][7]) - -### Save and test - -Once you're satisfied with your new configuration, make sure to save it. Click **File** and choose **Save** to make the change active. - -Now for the grand test! In your terminal window, type "gerp" followed by a space, and it should automatically correct to "grep." To validate the Window Filter is working, try typing the word "gerp" in a browser URL bar or some other application. It should not change. - -You may be thinking that this problem could have been solved just as easily with a [shell alias][11], and I'd totally agree! Unlike aliases, which are command-line oriented, AutoKey can correct mistakes regardless of what application you're using. - -For example, another common typo I make is "openshfit" instead of "openshift," which I type into browsers, integrated development environments, and terminals. Aliases can't quite help with this problem, whereas AutoKey can correct it in any occasion. - -### Type frequently used phrases with AutoKey - -There are numerous other ways you can invoke AutoKey's phrases to help you. For example, as a site reliability engineer (SRE) working on OpenShift, I frequently type Kubernetes namespace names on the command line: - - -``` -`oc get pods -n openshift-managed-upgrade-operator` -``` - -These namespaces are static, so they are ideal phrases that AutoKey can insert for me when typing ad-hoc commands. - -For this, I created a phrase subfolder named **Namespaces** and added a phrase entry for each namespace I type frequently. - -### Assign hotkeys - -Next, and most crucially, I assign the subfolder a **hotkey**. Whenever I press that hotkey, it opens a menu where I can select (either with **Arrow key**+**Enter** or using a number) the phrase I want to insert. This cuts down on the number of keystrokes I need to enter those commands to just a few keystrokes. - -AutoKey's pre-configured examples in the **My Phrases** folder are configured with a **Ctrl**+**F7** hotkey. If you kept the examples in AutoKey's default configuration, try it out. You should see a menu of all the phrases available there. Select the item you want with the number or arrow keys. - -### Advanced AutoKeying - -AutoKey's [scripting engine][12] allows users to run Python scripts that can be invoked through the same abbreviation and hotkey system. These scripts can do things like switching windows, sending keystrokes, or performing mouse clicks through supporting API functions. - -AutoKey users have embraced this feature by publishing custom scripts for others to adopt. For example, the [NumpadIME script][13] transforms a numeric keyboard into an old cellphone-style text entry method, and [Emojis-AutoKey][14] makes it easy to insert emojis by converting phrases such as `:smile:` into their emoji equivalent. - -Here's a small script I set up that enters Tmux's copy mode to copy the first word from the preceding line into the paste buffer: - - -``` -from time import sleep - -# Send the tmux command prefix (changed from b to s) -keyboard.send_keys("<ctrl>+s") -# Enter copy mode -keyboard.send_key("[") -sleep(0.01) -# Move cursor up one line -keyboard.send_keys("k") -sleep(0.01) -# Move cursor to start of line -keyboard.send_keys("0") -sleep(0.01) -# Start mark -keyboard.send_keys(" ") -sleep(0.01) -# Move cursor to end of word -keyboard.send_keys("e") -sleep(0.01) -# Add to copy buffer -keyboard.send_keys("<ctrl>+m") -``` - -The sleeps are there because occasionally Tmux can't keep up with how fast AutoKey sends the keystrokes, and they have a negligible effect on the overall execution time. - -### Automate with AutoKey - -I hope you've enjoyed this excursion into keyboard automation with AutoKey and it gives you some bright ideas about how it can improve your workflow. If you're using AutoKey in a helpful or novel way, be sure to share it in the comments below. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/2/linux-autokey - -作者:[Matt Bargenquast][a] -选题:[lujun9972][b] -译者:[stevenzdg988](https://github.com/stevenzdg988) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/mbargenquast -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) -[2]: https://github.com/autokey/autokey -[3]: https://github.com/autokey/autokey/wiki/Installing -[4]: https://www.gtk.org/ -[5]: https://www.qt.io/ -[6]: https://opensource.com/sites/default/files/uploads/autokey-defaults.png (AutoKey UI) -[7]: https://creativecommons.org/licenses/by-sa/4.0/ -[8]: https://opensource.com/sites/default/files/uploads/startautokey.png (Automatically start AutoKey at login) -[9]: https://opensource.com/sites/default/files/uploads/autokey-set_abbreviation.png (Set abbreviation in AutoKey) -[10]: https://opensource.com/sites/default/files/uploads/autokey-window_filter.png (AutoKey Window Filter) -[11]: https://opensource.com/article/19/7/bash-aliases -[12]: https://autokey.github.io/index.html -[13]: https://github.com/luziferius/autokey_scripts -[14]: https://github.com/AlienKevin/Emojis-AutoKey diff --git a/translated/tech/20210203 Improve your productivity with this Linux automation tool.md b/translated/tech/20210203 Improve your productivity with this Linux automation tool.md new file mode 100644 index 0000000000..ee56421cea --- /dev/null +++ b/translated/tech/20210203 Improve your productivity with this Linux automation tool.md @@ -0,0 +1,183 @@ +[#]: collector: (lujun9972) +[#]: translator: (stevenzdg988) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Improve your productivity with this Linux automation tool) +[#]: via: (https://opensource.com/article/21/2/linux-autokey) +[#]: author: (Matt Bargenquast https://opensource.com/users/mbargenquast) + +使用 Linux 自动化工具提高生产率 +====== +配置键盘(按键)以纠正常见的打字排版错误,输入常用的短语,以及更多的使用 AutoKey (功能)。 +![台式机键盘上的Linux键][1] + +[AutoKey][2]是一个开源的 Linux 桌面自动化工具,一旦它成为你工作流程的一部分,你会想知道没有它究竟将如何管理。它可以成为一种提高生产率的有改革能力的工具或者仅仅是减少与打字有关的物理压力的一种方式。 + +本文将研究如何安装和开始使用 AutoKey ,介绍一些可以立即在工作流程中使用的简单方法,并探讨 AutoKey 高级用户可能会感兴趣的一些高级功能。 + +### 安装并设置 AutoKey + +AutoKey 在许多 Linux 发行版中作为一个可用软件包。该项目的[安装指南][3]包含许多平台的说明,包括从源代码进行构建。本文使用 Fedora 作为操作平台。 + +AutoKey 有两个变体:为像 GNOME 等基于 [GTK][4] 环境而设计的 autokey-gtk 和基于 [QT][5] 的 autokey-qt。 + +您可以从命令行安装任一变体: + +``` +`sudo dnf install autokey-gtk` +``` + +安装完成后,使用 `autokey-gtk`(或 `autokey-qt`)运行它。 + +### 探究界面 + +在将 AutoKey 设置为在后台运行并自动执行操作之前,您首先需要对其进行配置。调出用户界面(UI)配置: + +``` +`autokey-gtk -c` +``` + +AutoKey 提供了一些预设配置的示例。您可能希望在熟悉 UI 时将他们留作备用,但是可以根据需要删除它们。 + +![AutoKey 用户界面][6] + +(Matt Bargenquast, [CC BY-SA 4.0][7]) + +左侧窗格包含基于层次结构的短语和脚本的文件夹。_Phrases_ 代表要让 AutoKey 输入的文本。_Scripts_ 是动态的有计划的等效项,可以使用 Python 编写,并且获得与键盘击键发送到活动窗口基本相同的结果。 + +右侧窗格构建和配置短语和脚本。 + +对配置满意后,您可能希望在登录时自动运行 AutoKey,这样就不必每次都启动它。您可以通过在 **Preferences**(首选)菜单(**Edit -> Preferences**(编辑 -> 首选项))中勾选 **Automatically start AutoKey at login**(登录时自动启动 AutoKey)进行配置。 + +![登录时自动启动 AutoKey][8] + +(Matt Bargenquast, [CC BY-SA 4.0][7]) + +### 使用 AutoKey 纠正常见的打字排版错误 + +修复常见的打字排版错误对于 AutoKey 来说是一个容易解决的问题。例如,我始终键入 "gerp" 来代替 "grep"。这里是如何配置 AutoKey 为您解决这些类型问题。 + +创建一个新的子文件夹,可以在其中将所有“打字排版错误校正”配置分组。在左侧窗格中选择 **My Phrases** ,然后选择 **File -> New -> Subfolder**。将子文件夹命名为 **Typos**。 + +在 **File -> New -> Phrase** 中创建一个新短语。并将其称为 "grep"。 + +通过高亮显示短语 "grep",然后在 **Enter phrase contents**(输入短语内容)部分(替换默认的“输入短语内容”文本)中输入 "grep" ,配置 AutoKey 插入正确的关键词。 + +接下来,通过定义缩写来设置 AutoKey 如何触发此短语。 点击用户界面底部紧邻 **Abbreviations**(缩写)的 **Set**(设置)按钮("gerp")。 + +在弹出的对话框中,单击 **Add** 按钮,然后将 "gerp" 添加为新的缩写。勾选 **Remove typed abbreviation**(**删除键入的缩写**);此选项是命令 AutoKey 将出现 "gerp" 一词的任何键入替换为 "grep"。请不要勾选 **Trigger when typed as part of a word**(**在键入单词的一部分时触发**),这样,如果您键入包含 "grep"(例如 "fingerprint"(指纹))的单词,就不会尝试将其转换为 "fingreprint"。仅当将 "grep" 作为独立的单词键入时,此功能才有效。 + +![在 AutoKey 中设置缩写][9] + +(Matt Bargenquast, [CC BY-SA 4.0][7]) + +### 限制对特定应用程序的更正 + +您可能希望仅在某些应用程序(例如终端窗口)中打字排版错误时才应用校正。您可以通过设置 Window Filter (窗口过滤器)进行配置。单击 **Set** 按钮来定义。 + +设置 Window Filter (窗口过滤器)的最简单方法是让 AutoKey 为您检测窗口类型: + + 1. 启动一个新的终端窗口。 + 2. 返回 AutoKey,单击 **Detect Window Properties** (**检测窗口属性**)按钮。 + 3. 单击终端窗口。 + +这将自动填充 Window Filter,可能窗口类值为 `gnome-terminal-server.Gnome-terminal`。这足够了,因此单击 **OK**。 + +![AutoKey 窗口过滤器][10] + +(Matt Bargenquast, [CC BY-SA 4.0][7]) + +### 保存并测试 + +对新配置满意后,请确保将其保存。 单击 **File** ,然后选择 **Save** 以使更改生效。 + +现在进行重要的测试!在您的终端窗口中,键入 "gerp" 紧跟一个空格,它将自动更正为 "grep"。要验证 Window Filter 是否正在运行,请尝试在浏览器 URL 栏或其他应用程序中键入单词 "gerp"。它并没有变化。 + +您可能会认为,使用 [shell 别名][11]可以轻松解决此问题,我完全赞成!与别名不同,只要是面向命令行,无论您使用什么应用程序,AutoKey 都可以按规则纠正错误。 + +例如,我在浏览器,集成开发环境和终端中输入的另一个常见打字排版错误 "openshfit" 替代为 "openshift"。别名不能完全解决此问题,而 AutoKey 可以在任何情况下纠正它。 + +### 键入常用短语 + +您可以通过许多其他方法来调用 AutoKey 的短语来帮助您。例如,作为从事 OpenShift 的站点可靠性工程师(SRE),我经常在命令行上输入 Kubernetes 命名空间名称: + +``` +`oc get pods -n openshift-managed-upgrade-operator` +``` + +这些名称空间是静态的,因此它们是键入特定命令时 AutoKey 可以为我插入的理想短语。 + +为此,我创建了一个名为 **Namespaces** 的短语子文件夹,并为我经常键入的每个命名空间添加了一个短语条目。 + +### 分配热键 + +接下来,也是最关键的一点,我为子文件夹分配了一个 **hotkey**。每当我按下该热键时,它都会打开一个菜单,我可以在其中选择(要么使用 **Arrow key(方向键)**+**Enter(键)** (组合键)要么使用数字(键))要插入的短语。这减少了我仅需几次击键就可以输入这些命令的击键次数。 + +**My Phrases** 文件夹中 AutoKey 的预配置示例使用 **Ctrl**+**F7** 热键进行配置。如果您将示例保留在 AutoKey 的默认配置中,请尝试一下。您应该在此处看到所有可用短语的菜单。使用数字或箭头键选择所需的项目。 + +### 高级自动键入 + +AutoKey 的[脚本引擎][12]允许用户运行可以通过相同的缩写和热键系统调用的 Python 脚本。这些脚本可以通过支持 API 的功能来完成诸如切换窗口,发送按键或执行鼠标单击之类的操作。 + +AutoKey 用户已经欣然接受通过发布自定义脚本为其他用户采用的这项功能。例如,[NumpadIME 脚本][13]将数字键盘转换为旧的手机样式的文本输入方法,[Emojis-AutoKey][14] 可以通过将诸如: `:smile:` 之类的短语转换为他们等价的表情符号来轻松插入。 + +这是我设置的一个小脚本,该脚本进入 Tmux 的复制模式,以将前一行中的第一个单词复制到粘贴缓冲区中: + +``` +from time import sleep + +# 发送 Tmux 命令前缀(b更改为s) +keyboard.send_keys("<ctrl>+s") +# Enter copy mode +keyboard.send_key("[") +sleep(0.01) +# Move cursor up one line +keyboard.send_keys("k") +sleep(0.01) +# Move cursor to start of line +keyboard.send_keys("0") +sleep(0.01) +# Start mark +keyboard.send_keys(" ") +sleep(0.01) +# Move cursor to end of word +keyboard.send_keys("e") +sleep(0.01) +# Add to copy buffer +keyboard.send_keys("<ctrl>+m") +``` + +睡眠之所以存在,是因为 Tmux 有时无法跟上 AutoKey 发送击键的速度,并且它们对整体执行时间的影响可忽略不计。 + +### 使用 AutoKey 自动化 + +我希望您喜欢使用 AutoKey 进行键盘自动化的这次旅行,它为您提供了有关如何改善工作流程的一些好主意。如果使用 AutoKey 对您来说有帮助或是新颖的方式,请务必在下面的评论中分享。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/2/linux-autokey + +作者:[Matt Bargenquast][a] +选题:[lujun9972][b] +译者:[stevenzdg988](https://github.com/stevenzdg988) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/mbargenquast +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) +[2]: https://github.com/autokey/autokey +[3]: https://github.com/autokey/autokey/wiki/Installing +[4]: https://www.gtk.org/ +[5]: https://www.qt.io/ +[6]: https://opensource.com/sites/default/files/uploads/autokey-defaults.png (AutoKey UI) +[7]: https://creativecommons.org/licenses/by-sa/4.0/ +[8]: https://opensource.com/sites/default/files/uploads/startautokey.png (Automatically start AutoKey at login) +[9]: https://opensource.com/sites/default/files/uploads/autokey-set_abbreviation.png (Set abbreviation in AutoKey) +[10]: https://opensource.com/sites/default/files/uploads/autokey-window_filter.png (AutoKey Window Filter) +[11]: https://opensource.com/article/19/7/bash-aliases +[12]: https://autokey.github.io/index.html +[13]: https://github.com/luziferius/autokey_scripts +[14]: https://github.com/AlienKevin/Emojis-AutoKey From 08b88f7c50a4448ece7a2103432e127f98f9e40d Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:02:45 +0800 Subject: [PATCH 011/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210427=20?= =?UTF-8?q?What=E2=80=99s=20new=20in=20Fedora=20Workstation=2034?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210427 What-s new in Fedora Workstation 34.md --- ...427 What-s new in Fedora Workstation 34.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 sources/tech/20210427 What-s new in Fedora Workstation 34.md diff --git a/sources/tech/20210427 What-s new in Fedora Workstation 34.md b/sources/tech/20210427 What-s new in Fedora Workstation 34.md new file mode 100644 index 0000000000..7141e775ec --- /dev/null +++ b/sources/tech/20210427 What-s new in Fedora Workstation 34.md @@ -0,0 +1,106 @@ +[#]: subject: (What’s new in Fedora Workstation 34) +[#]: via: (https://fedoramagazine.org/whats-new-fedora-34-workstation/) +[#]: author: (Christian Fredrik Schaller https://fedoramagazine.org/author/uraeus/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +What’s new in Fedora Workstation 34 +====== + +![][1] + +Fedora Workstation 34 is the latest version of our leading-edge operating system and this time there are major improvements heading your way. Best of all, you can download it from [the official website][2]. What’s new, I hear you ask!?  Well let’s get to it. + +### GNOME 40 + +[GNOME 40][3] is a major update to the GNOME desktop, which Fedora community members played a key role in designing and implementing, so you can be sure that the needs of Fedora users were taken into account. + +The first thing you notice as you log into the GNOME 40 desktop is that you are now taken directly to a redesigned overview screen. You will notice that the dash bar has moved to the bottom of the screen. Another major change to GNOME 40 is the virtual work spaces are now horizontal which brings GNOME more in line with most other desktops out there and should thus make getting used to GNOME and Fedora easier for new users. + +Work has also been done to improve gesture support in the desktop with 3-finger horizontal swipes for switching workspaces, and 3-finger vertical swipes for bringing up the overview. + +![][4] + +The updated overview design brings a collection of other improvements, including: + + * The dash now separates favorite and non-favorite running apps. This makes it clear which apps have been favorited and which haven’t. + * Window thumbnails have been improved, and now have an app icon over each one, to help identification. + * When workspaces are set to be on all displays, the workspace switcher is now shown on all displays rather than just the primary one. + * App launcher drag and drop has been improved, to make it easier to customize the arrangement of the app grid. + + + +The changes in GNOME 40 underwent a good deal of user testing, and have had a very positive reaction so far, so we’re excited to be introducing them to the Fedora community. For more information, see [forty.gnome.org][3] or the [GNOME 40 release notes][5]. + +### App Improvements + +GNOME Weather has been redesigned for this release with two views, one for the hourly forecast for the next 48 hours, and one for the daily forecast for the next 10 days. + +The new version now shows more information, and is more mobile-friendly, as it supports narrower sizes. + +![][6] + +Other apps which have been improved include Files, Maps, Software and Settings. See the [GNOME 40 release notes][5] for more details. + +### **PipeWire** + +PipeWire is the new audio and video server, created by Wim Taymans, who also co-created the GStreamer multimedia framework. Until now, it has only been used for video capture, but in Fedora Workstation 34 we are making the jump to also use it for audio, replacing PulseAudio. + +PipeWire is designed to be compatible with both PulseAudio and Jack, so applications should generally work as before. We have also worked with Firefox and Chrome to ensure that they work well with PipeWire. PipeWire support is also coming soon in OBS Studio, so if you are a podcaster, we’ve got you covered. + +PipeWire has had a very positive reception from the pro-audio community. It is prudent to say that there may be pro-audio applications that will not work 100% from day one, but we are receiving a constant stream of test reports and patches, which we will be using to continue the pro-audio PipeWire experience during the Fedora Workstation 34 lifecycle. + +### **Improved Wayland support** + +Support for running Wayland on top of the proprietary NVIDIA driver is expected to be resolved within the Fedora Workstation 34 lifetime. Support for running a pure Wayland client on the NVIDIA driver already exists. However, this currently lacks support for the Xwayland compatibility layer, which is used by many applications. This is why Fedora still defaults to X.Org when you install the NVIDIA driver. + +We are [working upstream with NVIDIA][7]  to ensure Xwayland  works in Fedora with NVIDIA hardware acceleration. + +### **QtGNOME platform and Adwaita-Qt** + +Jan Grulich has continued his great work on the QtGNOME platform and Adawaita-qt themes, ensuring that  Qt applications integrate well with Fedora Workstation. The Adwaita theme that we use in Fedora has evolved over the years, but with the updates to QtGNOME platform and Adwaita-Qt in Fedora 34, Qt applications will more closely match the current GTK style in Fedora Workstation 34. + +As part of this work, the appearance and styling of Fedora Media Writer has also been improved. + +![][8] + +### **Toolbox** + +Toolbox is our great tool for creating development environments that are isolated from your host system, and it has seen lots of improvements for Fedora 34. For instance we have put a lot of work into improving the CI system integration for toolbox to avoid breakages in our stack causing Toolbox to stop working. + +A lot of work has been put into the RHEL integration in Toolbox, which means that you can easily set up a containerized RHEL environment on a Fedora system, and thus conveniently do development for RHEL servers and cloud instances. Creating a RHEL environment on Fedora is now as easy as running: toolbox create –distro rhel –release 8.4.  + +This gives you the advantage of an up to date desktop which supports the latest hardware, while being able to do RHEL-targeted development in a way that feels completely native. +![][9] + +### **Btrfs** + +Fedora Workstation has been using Btrfs as its default file system since Fedora 33. Btrfs is a modern filesystem that is developed by many companies and projects. Workstation’s adoption of Btrfs came about through fantastic collaboration between Facebook and the Fedora community. Based on user feedback so far, people feel that Btrfs provides a snappier and more responsive experience, compared with the old ext4 filesystem. + +With Fedora 34, new workstation installs now use Btrfs transparent compression by default. This saves significant disk space compared with uncompressed Btrfs, often in the range of 20-40%. It also increases the lifespan of SSDs and other flash media. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/whats-new-fedora-34-workstation/ + +作者:[Christian Fredrik Schaller][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/uraeus/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-workstation-816x345.jpg +[2]: https://getfedora.org/workstation +[3]: https://forty.gnome.org/ +[4]: https://lh3.googleusercontent.com/xDklMWAGBWvRGRp2kby-XKr6b0Jvan8Obmn11sfmkKnsnXizKePYV9aWdEgyxmJetcvwMifYRUm6TcPRCH9szZfZOE9pCpv2bkjQhnq2II05Yu6o_DjEBmqTlRUGvvUyMN_VRtq8zkk2J7GUmA +[5]: https://help.gnome.org/misc/release-notes/40.0/ +[6]: https://lh6.googleusercontent.com/pQ3IIAvJDYrdfXoTUnrOcCQBjtpXqd_5Rmbo4xwxIj2qMCXt7ZxJEQ12OoV7yUSF8zpVR0VFXkMP0M8UK1nLbU7jhgQPJAHPayzjAscQmTtqqGsohyzth6-xFDjUXogmeFmcP-yR9GWXfXv-yw +[7]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/587 +[8]: https://lh6.googleusercontent.com/PDXxFS7SBFGI-3jRtR-TmqupvJRxy_CbWTfjB4sc1CKyO1myXkqfpg4jGHQJRK2e1vUh1KD_jyBsy8TURwCIkgAJcETCOlSPFBabqB5yDeWj3cvygOOQVe3X0tLFjuOz3e-ZX6owNZJSqIEHOQ +[9]: https://lh6.googleusercontent.com/dVRCL14LGE9WpmdiH3nI97OW2C1TkiZqREvBlHClNKdVcYvR1nZpZgWfup_GP5SN17iQtSJf59FxX2GYqoajXbdXLRfOwAREn7gVJ1fa_bspmcTZ81zkUQC4tNUx3f7D7uD7Peeg2Zc9Kldpww From 6e1660d74c8b3ba14b75e1dbd148d35d32efb3e1 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:03:05 +0800 Subject: [PATCH 012/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210427=20?= =?UTF-8?q?Fedora=20Linux=2034=20is=20officially=20here!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210427 Fedora Linux 34 is officially here.md --- ...0427 Fedora Linux 34 is officially here.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sources/tech/20210427 Fedora Linux 34 is officially here.md diff --git a/sources/tech/20210427 Fedora Linux 34 is officially here.md b/sources/tech/20210427 Fedora Linux 34 is officially here.md new file mode 100644 index 0000000000..bf9d38fb2b --- /dev/null +++ b/sources/tech/20210427 Fedora Linux 34 is officially here.md @@ -0,0 +1,75 @@ +[#]: subject: (Fedora Linux 34 is officially here!) +[#]: via: (https://fedoramagazine.org/announcing-fedora-34/) +[#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora Linux 34 is officially here! +====== + +![][1] + +Today, I’m excited to share the results of the hard work of thousands of contributors to the Fedora Project: our latest release, Fedora Linux 34, is here! I know a lot of you have been waiting… I’ve seen more “is it out yet???” anticipation on social media and forums than I can remember for any previous release. So, if you want, wait no longer — [upgrade now][2] or go to [Get Fedora][3] to download an install image. Or, if you’d like to learn more first, read on.  + +The first thing you might notice is our beautiful new logo. Developed by the Fedora Design Team with input from the wider community, this new logo solves a lot of the technical problems with our old logo while keeping its Fedoraness. Stay tuned for new Fedora swag featuring the new design! + +### A Fedora Linux for every use case + +Fedora Editions are targeted outputs geared toward specific “showcase” uses on the desktop, in server & cloud environments, and the Internet of Things. + +Fedora Workstation focuses on the desktop, and in particular, it’s geared toward software developers who want a “just works” Linux operating system experience. This release features [GNOME 40][4], the next step in focused, distraction-free computing. GNOME 40 brings improvements to navigation whether you use a trackpad, a keyboard, or a mouse. The app grid and settings have been redesigned to make interaction more intuitive. You can read more about [what changed and why in a Fedora Magazine article][5] from March. + +Fedora CoreOS is an emerging Fedora Edition. It’s an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It offers several update streams that can be followed for automatic updates that occur roughly every two weeks. Currently the next stream is based on Fedora Linux 34, with the testing and stable streams to follow. You can find information about released artifacts that follow the next stream from the [download page][6] and information about how to use those artifacts in the [Fedora CoreOS Documentation][7]. + +Fedora IoT provides a strong foundation for IoT ecosystems and edge computing use cases. With this release, we’ve improved support for popular ARM devices like Pine64, RockPro64, and Jetson Xavier NX. Some i.MX8 system on a chip devices like the 96boards Thor96 and Solid Run HummingBoard-M have improved hardware support. In addition, Fedora IoT 34 improves support for hardware watchdogs for automated system recovery.” + +Of course, we produce more than just the Editions. [Fedora Spins][8] and [Labs][9] target a variety of audiences and use cases, including [Fedora Jam][10], which allows you to unleash your inner musician, and desktop environments like the new Fedora i3 Spin, which provides a tiling window manager. And, don’t forget our alternate architectures: [ARM AArch64, Power, and S390x][11]. + +### General improvements + +No matter what variant of Fedora you use, you’re getting the latest the open source world has to offer. Following our “[First][12]” foundation, we’ve updated key programming language and system library packages, including Ruby 3.0 and Golang 1.16. In Fedora KDE Plasma, we’ve switched from X11 to Wayland as the default. + +Following the introduction of BTRFS as the default filesystem on desktop variants in Fedora Linux 33, we’ve introduced [transparent compression on BTRFS filesystems][13]. + +We’re excited for you to try out the new release! Go to and download it now. Or if you’re already running Fedora Linux, follow the [easy upgrade instructions][2]. For more information on the new features in Fedora Linux 34, see the [release notes][14]. + +### In the unlikely event of a problem… + +If you run into a problem, check out the [Fedora 34 Common Bugs page][15], and if you have questions, visit our Ask Fedora user-support platform. + +### Thank you everyone + +Thanks to the thousands of people who contributed to the Fedora Project in this release cycle, and especially to those of you who worked extra hard to make this another on-time release during a pandemic. Fedora is a community, and it’s great to see how much we’ve supported each other. Be sure to join us on April 30 and May 1 for a [virtual release party][16]! + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/announcing-fedora-34/ + +作者:[Matthew Miller][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mattdm/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-final-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ +[3]: https://getfedora.org +[4]: https://forty.gnome.org/ +[5]: https://fedoramagazine.org/fedora-34-feature-focus-updated-activities-overview/ +[6]: https://getfedora.org/en/coreos +[7]: https://docs.fedoraproject.org/en-US/fedora-coreos/ +[8]: https://spins.fedoraproject.org/ +[9]: https://labs.fedoraproject.org/ +[10]: https://labs.fedoraproject.org/en/jam/ +[11]: https://alt.fedoraproject.org/alt/ +[12]: https://docs.fedoraproject.org/en-US/project/#_first +[13]: https://fedoramagazine.org/fedora-workstation-34-feature-focus-btrfs-transparent-compression/ +[14]: https://docs.fedoraproject.org/en-US/fedora/f34/release-notes/ +[15]: https://fedoraproject.org/wiki/Common_F34_bugs +[16]: https://hopin.com/events/fedora-linux-34-release-party From 96a3e765d8674aba6544edfdff6e555241e5530c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:03:27 +0800 Subject: [PATCH 013/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210427=20?= =?UTF-8?q?Upgrade=20your=20Linux=20PC=20hardware=C2=A0using=20open=20sour?= =?UTF-8?q?ce=20tools?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210427 Upgrade your Linux PC hardware-using open source tools.md --- ...nux PC hardware-using open source tools.md | 253 ++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 sources/tech/20210427 Upgrade your Linux PC hardware-using open source tools.md diff --git a/sources/tech/20210427 Upgrade your Linux PC hardware-using open source tools.md b/sources/tech/20210427 Upgrade your Linux PC hardware-using open source tools.md new file mode 100644 index 0000000000..d24bf27bd8 --- /dev/null +++ b/sources/tech/20210427 Upgrade your Linux PC hardware-using open source tools.md @@ -0,0 +1,253 @@ +[#]: subject: (Upgrade your Linux PC hardware using open source tools) +[#]: via: (https://opensource.com/article/21/4/upgrade-linux-hardware) +[#]: author: (Howard Fosdick https://opensource.com/users/howtech) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Upgrade your Linux PC hardware using open source tools +====== +Get more performance from your PC with the hardware upgrades that will +give you the biggest payback. +![Business woman on laptop sitting in front of window][1] + +In my article on [identifying Linux performance bottlenecks using open source tools][2], I explained some simple ways to monitor Linux performance using open source graphical user interface (GUI) tools. I focused on identifying _performance bottlenecks_, situations where a hardware resource reaches its limits and holds back your PC's performance. + +How can you address a performance bottleneck? You could tune the applications or system software. Or you could run more efficient apps. You could even alter your behavior using your computer, for example, by scheduling background programs for off-hours. + +You can also improve your PC's performance through a hardware upgrade. This article focuses on the upgrades that give you the biggest payback. + +Open source tools are the key. GUI tools help you monitor your system to predict which hardware improvements will be effective. Otherwise, you might buy hardware and find that it doesn't improve performance. After an upgrade, these tools also help verify that the upgrade produced the benefits you expected. + +This article outlines a simple approach to PC hardware upgrades. The "secret sauce" is open source GUI tools. + +### How to upgrade memory + +Years ago, memory upgrades were a no-brainer. Adding memory nearly always improved performance. + +Today, that's no longer the case. PCs come with much more memory, and Linux uses it very efficiently. If you buy memory your system doesn't need, you've wasted money. + +So you'll want to spend some time monitoring your computer to see if a memory upgrade will help its performance. For example, watch memory use while you go about your typical day. And be sure to check what happens during memory-intensive workloads. + +A wide variety of open source tools can help with this monitoring, but I'll use the [GNOME System Monitor][3]. It's available in most Linux repositories. + +When you start up the System Monitor, its **Resources** panel displays this output: + +![Monitoring memory with GNOME System Monitor][4] + +Fig. 1. Monitoring memory with GNOME System Monitor (Howard Fosdick, [CC BY-SA 4.0][5]) + +The middle of the screen shows memory use. [Swap][6] is disk space that Linux uses when it runs low on memory. Linux effectively increases memory by using swap as a slower extension to memory. + +Since swap is slower than memory, if swap activity becomes significant, adding memory will improve your computer's performance. How much improvement you'll get depends on the amount of swap activity and the speed of your swap device. + +If a lot of swap space is used, you'll get a bigger performance improvement by adding memory than if only a small amount of swap is used. + +And if swap resides on a slow mechanical hard drive, you'll see a greater improvement by adding memory than you will if swap resides on the fastest available solid-state disk. + +Here's an example of when to add memory. This computer shows increased swap activity after memory utilization hits 80%. It becomes unresponsive as memory use surpasses 90%: + +![System Monitor - Out Of Memory Condition][7] + +Fig. 2. A memory upgrade will help (Howard Fosdick, [CC BY-SA 4.0][5]) + +#### How to perform a memory upgrade + +Before you upgrade, you need to determine how many memory slots you have, how many are open, the kinds of memory sticks they require, and your motherboard's maximum allowable memory. + +You can read your computer's documentation to get those answers. Or, you can just enter these Linux line commands: + +_What are the characteristics of the installed memory sticks?_ | `sudo lshw -short -C memory` +---|--- +_What is the maximum allowable memory for this computer?_ | `sudo dmidecode -t memory | grep -i max` +_How many memory slots are open?_ (A null response means none are available) | `sudo lshw -short -C memory | grep -i empty` + +As with all hardware upgrades, unplug the computer beforehand. Ground yourself before you touch your hardware—even the tiniest shock can damage circuitry. Fully seat the memory sticks into the motherboard slots. + +After the upgrade, start System Monitor. Run the same programs that overloaded your memory before. + +System Monitor should show your expanded memory, and you should see better performance. + +### How to upgrade storage + +We're in an era of rapid storage improvements. Even computers that are only a few years old can benefit from disk upgrades. But first, you'll want to make sure an upgrade makes sense for your computer and workload. + +Start by finding out what disk you have. Many open source tools will tell you. [Hardinfo][8] or [GNOME Disks][9] are good options because both are widely available, and their output is easy to understand. These apps will tell you your disk's make, model, and other details. + +Next, determine your disk's performance by benchmarking it. GNOME Disks makes this easy. Just start the tool and click on its **Benchmark Disk** option. This gives you disk read and write rates and the average disk access time: + +![GNOME Disks benchmark][10] + +Fig. 3. GNOME Disks benchmark output (Howard Fosdick, [CC BY-SA 4.0][5]) + +With this information, you can compare your disk to others at benchmarking websites like [PassMark Software][11] and [UserBenchmark][12]. Those provide performance statistics, speed rankings, and even price and performance numbers. You can get an idea of how your disk compares to possible replacements. + +Here's an example of some of the detailed disk info you'll find at UserBenchmark: + +![Disk comparisons at UserBenchmark][13] + +Fig. 4. Disk comparisons at [UserBenchmark][14] + +#### Monitor disk utilization + +Just as you did with memory, monitor your disk in real time to see if a replacement would improve performance. The [`atop` line command][15] tells you how busy a disk is. + +In its output below, you can see that device `sdb` is `busy 101%`. And one of the processors is waiting on that disk to do its work 85% of the time (`cpu001 w 85%`): + +![atop command shows disk utilization][16] + +Fig. 5. atop command shows disk utilization (Howard Fosdick, [CC BY-SA 4.0][5]) + +Clearly, you could improve performance with a faster disk. + +You'll also want to know which program(s) are causing all that disk usage. Just start up the System Monitor and click on its **Processes** tab. + +Now you know how busy your disk is and what program(s) are using it, so you can make an educated judgment whether a faster disk would be worth the expense. + +#### Buying the disk + +You'll encounter three major technologies when buying a new internal disk: + + * Mechanical hard drives (HDDs) + * SATA-connected solid-state disks (SSDs) + * PCIe-connected NVMe solid-state disks (NVMe SSDs) + + + +What are their speed differences? You'll see varying numbers all over the web. Here's a typical example: + +![Relative disk speeds][17] + +Fig. 6. Relative speeds of internal disk technologies ([Unihost][18]) + + * **Red bar:** Mechanical hard disks offer the cheapest bulk storage. But in terms of performance, they're slowest by far. + * **Green bar:** SSDs are faster than mechanical hard drives. But if an SSD uses a SATA interface, that limits its performance. This is because the SATA interface was designed over a decade ago for mechanical hard drives. + * **Blue bar:** The fastest technology for internal disks is the new [PCIe-connected NVMe solid-state disk][19]. These can be roughly five times faster than SATA-connected SSDs and 20 times faster than mechanical hard disks. + + + +For external SSDs, you'll find that the [latest Thunderbolt and USB interfaces][20] are the fastest. + +#### How to install an internal disk + +Before purchasing any disk, verify that your computer can support the necessary physical interface. + +For example, many NVMe SSDs use the popular new M.2 (2280) form factor. That requires either a tailor-made motherboard slot, a PCIe adapter card, or an external USB adapter. Your choice could affect your new disk's performance. + +Always back up your data and operating system before installing a new disk. Then copy them to the new disk. Open source [tools][21] like Clonezilla, Mondo Rescue, or GParted can do the job. Or you could use Linux line commands like `dd` or `cp`. + +Be sure to use your fast new disk in situations where it will have the most impact. Employ it as a boot drive, for storing your operating system and apps, for swap space, and for your most frequently processed data. + +After the upgrade, run GNOME Disks to benchmark your new disk. This helps you verify that you got the performance boost you expected. You can verify real-time operation with the `atop` command. + +### How to upgrade USB ports + +Like disk storage, USB performance has shown great strides in the past several years. Many computers only a few years old could get a big performance boost simply by adding a cheap USB port card. + +Whether the upgrade is worthwhile depends on how frequently you use your ports. Use them rarely, and it doesn't matter if they're slow. Use them frequently, and an upgrade might really impact your work. + +Here's how dramatically maximum USB data rates vary across port standards:  + +![USB speeds][22] + +Fig. 7. USB speeds vary greatly (Howard Fosdick, [CC BY-SA 4.0][5], based on data from [Tripplite][23] and [Wikipedia][24]) + +To see the actual USB speeds you're getting, start GNOME Disks. GNOME Disks can benchmark a USB-connected device just like it can an internal disk. Select its **Benchmark Disk** option. + +The device you plug in and the USB port together determine the speed you'll get. If the port and device are mismatched, you'll experience the slower speed of the two. + +For example, connect a device that supports USB 3.1 speeds to a 2.0 port, and you'll get the 2.0 data rate. (And your system won't tell you this unless you investigate with a tool like GNOME Disks.) Conversely, connect a 2.0 device to a 3.1 port, and you'll also get the 2.0 speed. So for best results, always match your port and device speeds. + +To monitor a USB-connected device in real time, use the `atop` command and System Monitor together, the same way you did to monitor an internal disk. This helps you see if you're bumping into your current setup's limit and could benefit by upgrading. + +Upgrading your ports is easy. Just buy a USB card that fits into an open PCIe slot. + +USB 3.0 cards are only about $25. Newer, more expensive cards offer USB 3.1 and 3.2 ports. Nearly all USB cards are plug-and-play, so Linux automatically recognizes them. (But always verify before you buy.) + +Be sure to run GNOME Disks after the upgrade to verify the new speeds. + +### How to upgrade your internet connection + +Upgrading your internet bandwidth is easy. Just write a check to your ISP. + +The question is: should you? + +System Monitor shows your bandwidth use (see Figure 1). If you consistently bump against the limit you pay your ISP for, you'll benefit from buying a higher limit. + +But first, verify that you don't have a problem you could fix yourself. I've seen many cases where someone thinks they need to buy more bandwidth from their ISP when they actually just have a connection problem they could fix themselves. + +Start by testing your maximum internet speed at websites like [Speedtest][25] or [Fast.com][26]. For accurate results, close all programs and run _only_ the speed test; turn off your VPN; run tests at different times of day; and compare the results from several testing sites. If you use WiFi, test with it and without it (by directly cabling your laptop to the modem). + +If you have a separate router, test with and without it. That will tell you if your router is a bottleneck. Sometimes just repositioning the router in your home or updating its firmware will improve connection speed. + +These tests will verify that you're getting the speeds you're paying your ISP for. They'll also expose any local WiFi or router problem you could fix yourself. + +Only after you've done these tests should you conclude that you need to purchase more internet bandwidth. + +### Should you upgrade your CPU or GPU? + +What about upgrading your CPU (central processing unit) or GPU (graphics processing unit)? + +Laptop owners typically can't upgrade either because they're soldered to the motherboard. + +Most desktop motherboards support a range of CPUs and are upgradeable—assuming you're not already using the topmost processor in the series. + +Use System Monitor to watch your CPU and determine if an upgrade would help. Its **Resources** panel will show your CPU load. If all your logical processors consistently stay above 80% or 90%, you could benefit from more CPU power. + +It's a fun project to upgrade your CPU. Anyone can do it if they're careful. + +Unfortunately, it's rarely cost-effective. Most sellers charge a premium for an individual CPU chip versus the deal they'll give you on a new system unit. So for many people, a CPU upgrade doesn't make economic sense. + +If you plug your display monitor directly into your desktop's motherboard, you might benefit by upgrading your graphics processing. Just add a video card. + +The trick is to achieve a balanced workload between the new video card and your CPU. This [online tool][27] identifies exactly which video cards will best work with your CPU. [This article][28] provides a detailed explanation of how to go about upgrading your graphics processing. + +### Gather data before you upgrade + +Personal computer users sometimes upgrade their Linux hardware based on gut feel. A better way is to monitor performance and gather some data first. Open source GUI tools make this easy. They help predict whether a hardware upgrade will be worth your time and money. Then, after your upgrade, you can use them to verify that your changes had the intended effect. + +These are the most popular hardware upgrades. With a little effort and the right open source tools, any Linux user can cost-effectively upgrade a PC. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/upgrade-linux-hardware + +作者:[Howard Fosdick][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/howtech +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-concentration-focus-windows-office.png?itok=-8E2ihcF (Woman using laptop concentrating) +[2]: https://opensource.com/article/21/3/linux-performance-bottlenecks +[3]: https://vitux.com/how-to-install-and-use-task-manager-system-monitor-in-ubuntu/ +[4]: https://opensource.com/sites/default/files/uploads/system_monitor_-_resources_panel_0.jpg (Monitoring memory with GNOME System Monitor) +[5]: https://creativecommons.org/licenses/by-sa/4.0/ +[6]: https://opensource.com/article/18/9/swap-space-linux-systems +[7]: https://opensource.com/sites/default/files/uploads/system_monitor_-_out_of_memory_0.jpg (System Monitor - Out Of Memory Condition) +[8]: https://itsfoss.com/hardinfo/ +[9]: https://en.wikipedia.org/wiki/GNOME_Disks +[10]: https://opensource.com/sites/default/files/uploads/gnome_disks_-_benchmark_0.jpg (GNOME Disks benchmark) +[11]: https://www.harddrivebenchmark.net/ +[12]: https://www.userbenchmark.com/ +[13]: https://opensource.com/sites/default/files/uploads/userbenchmark_disk_comparisons_0.jpg (Disk comparisons at UserBenchmark) +[14]: https://ssd.userbenchmark.com/ +[15]: https://opensource.com/life/16/2/open-source-tools-system-monitoring +[16]: https://opensource.com/sites/default/files/uploads/atop_-_storage_bottleneck_0.jpg (atop command shows disk utilization) +[17]: https://opensource.com/sites/default/files/uploads/hdd_vs_ssd_vs_nvme_speeds_0.jpg (Relative disk speeds) +[18]: https://unihost.com/help/nvme-vs-ssd-vs-hdd-overview-and-comparison/ +[19]: https://www.trentonsystems.com/blog/pcie-gen4-vs-gen3-slots-speeds +[20]: https://www.howtogeek.com/449991/thunderbolt-3-vs.-usb-c-whats-the-difference/ +[21]: https://www.linuxlinks.com/diskcloning/ +[22]: https://opensource.com/sites/default/files/uploads/usb_standards_-_speeds_0.jpg (USB speeds) +[23]: https://www.tripplite.com/products/usb-connectivity-types-standards +[24]: https://en.wikipedia.org/wiki/USB +[25]: https://www.speedtest.net/ +[26]: https://fast.com/ +[27]: https://www.gpucheck.com/gpu-benchmark-comparison +[28]: https://helpdeskgeek.com/how-to/see-how-much-your-cpu-bottlenecks-your-gpu-before-you-buy-it/ From 772059896cb6340bfe5a0be36ee7fd62de885e7a Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:03:41 +0800 Subject: [PATCH 014/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210427=20?= =?UTF-8?q?Perform=20Linux=20memory=20forensics=20with=20this=20open=20sou?= =?UTF-8?q?rce=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210427 Perform Linux memory forensics with this open source tool.md --- ...ry forensics with this open source tool.md | 510 ++++++++++++++++++ 1 file changed, 510 insertions(+) create mode 100644 sources/tech/20210427 Perform Linux memory forensics with this open source tool.md diff --git a/sources/tech/20210427 Perform Linux memory forensics with this open source tool.md b/sources/tech/20210427 Perform Linux memory forensics with this open source tool.md new file mode 100644 index 0000000000..87f9d8aaa5 --- /dev/null +++ b/sources/tech/20210427 Perform Linux memory forensics with this open source tool.md @@ -0,0 +1,510 @@ +[#]: subject: (Perform Linux memory forensics with this open source tool) +[#]: via: (https://opensource.com/article/21/4/linux-memory-forensics) +[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Perform Linux memory forensics with this open source tool +====== +Find out what's going on with applications, network connections, kernel +modules, files, and much more with Volatility +![Brain on a computer screen][1] + +A computer's operating system and applications use the primary memory (or RAM) to perform various tasks. This volatile memory, containing a wealth of information about running applications, network connections, kernel modules, open files, and just about everything else is wiped out each time the computer restarts. + +Memory forensics is a way to find and extract this valuable information from memory. [Volatility][2] is an open source tool that uses plugins to process this type of information. However, there's a problem: Before you can process this information, you must dump the physical memory into a file, and Volatility does not have this ability. + +Therefore, this article has two parts: + + * The first part deals with acquiring the physical memory and dumping it into a file. + * The second part uses Volatility to read and process information from this memory dump. + + + +I used the following test system for this tutorial, but it will work on any Linux distribution: + + +``` +$ cat /etc/redhat-release +Red Hat Enterprise Linux release 8.3 (Ootpa) +$ +$ uname -r +4.18.0-240.el8.x86_64 +$ +``` + +> **A note of caution:** Part 1 involves compiling and loading a kernel module. Don't worry; it isn't as difficult as it sounds. Some guidelines: +> +> * Follow the steps. +> * Do not try any of these steps on a production system or your primary machine. +> * Always use a test virtual machine (VM) to try things out until you are comfortable using the tools and understand how they work. +> + + +### Install the required packages + +Before you get started, install the requisite tools. If you are using a Debian-based distro, use the equivalent `apt-get` commands. Most of these packages provide the required kernel information and tools to compile the code: + + +``` +`$ yum install kernel-headers kernel-devel gcc elfutils-libelf-devel make git libdwarf-tools python2-devel.x86_64-y` +``` + +### Part 1: Use LiME to acquire memory and dump it to a file + +Before you can begin to analyze memory, you need a memory dump at your disposal. In an actual forensics event, this could come from a compromised or hacked system. Such information is often collected and stored to analyze how the intrusion happened and its impact. Since you probably do not have a memory dump available, you can take a memory dump of your test VM and use that to perform memory forensics. + +Linux Memory Extractor ([LiME][3]) is a popular tool for acquiring memory on a Linux system. Get LiME with: + + +``` +$ git clone +$ +$ cd LiME/src/ +$ +$ ls +deflate.c  disk.c  hash.c  lime.h  main.c  Makefile  Makefile.sample  tcp.c +$ +``` + +#### Build the LiME kernel module + +Run the `make` command inside the `src` folder. This creates a kernel module with a .ko extension. Ideally, the `lime.ko` file will be renamed using the format `lime-.ko` at the end of `make`: + + +``` +$ make +make -C /lib/modules/4.18.0-240.el8.x86_64/build M="/root/LiME/src" modules +make[1]: Entering directory '/usr/src/kernels/4.18.0-240.el8.x86_64' + +<< snip >> + +make[1]: Leaving directory '/usr/src/kernels/4.18.0-240.el8.x86_64' +strip --strip-unneeded lime.ko +mv lime.ko lime-4.18.0-240.el8.x86_64.ko +$ +$ +$ ls -l lime-4.18.0-240.el8.x86_64.ko +-rw-r--r--. 1 root root 25696 Apr 17 14:45 lime-4.18.0-240.el8.x86_64.ko +$ +$ file lime-4.18.0-240.el8.x86_64.ko +lime-4.18.0-240.el8.x86_64.ko: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), BuildID[sha1]=1d0b5cf932389000d960a7e6b57c428b8e46c9cf, not stripped +$ +``` + +#### Load the LiME kernel module + +Now it's time to load the kernel module to acquire the system memory. The `insmod` command helps load the kernel module; once loaded, the module reads the primary memory (RAM) on your system and dumps the memory's contents to the file provided in the `path` directory on the command line. Another important parameter is `format`; keep the format `lime`, as shown below. After inserting the kernel module, verify that it loaded using the `lsmod` command: + + +``` +$ lsmod  | grep lime +$ +$ insmod ./lime-4.18.0-240.el8.x86_64.ko "path=../RHEL8.3_64bit.mem format=lime" +$ +$ lsmod  | grep lime +lime                   16384  0 +$ +``` + +You should see that the file given to the `path` command was created, and the file size is (not surprisingly) the same as the physical memory size (RAM) on your system. Once you have the memory dump, you can remove the kernel module using the `rmmod` command: + + +``` +$ +$ ls -l ~/LiME/RHEL8.3_64bit.mem +-r--r--r--. 1 root root 4294544480 Apr 17 14:47 /root/LiME/RHEL8.3_64bit.mem +$ +$ du -sh ~/LiME/RHEL8.3_64bit.mem +4.0G    /root/LiME/RHEL8.3_64bit.mem +$ +$ free -m +              total        used        free      shared  buff/cache   available +Mem:           3736         220         366           8        3149        3259 +Swap:          4059           8        4051 +$ +$ rmmod lime +$ +$ lsmod  | grep lime +$ +``` + +#### What's in the memory dump? + +This dump file is just raw data, as you can see using the `file` command below. You cannot make much sense out of it manually; yes, there are some ASCII strings in there somewhere, but you can't open the file in an editor and read it out. The hexdump output shows that the initial few bytes are `EmiL`; this is because your request format was "lime" in the command above: + + +``` +$ file ~/LiME/RHEL8.3_64bit.mem +/root/LiME/RHEL8.3_64bit.mem: data +$ + +$ hexdump -C ~/LiME/RHEL8.3_64bit.mem | head +00000000  45 4d 69 4c 01 00 00 00  00 10 00 00 00 00 00 00  |EMiL............| +00000010  ff fb 09 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| +00000020  b8 fe 4c cd 21 44 00 32  20 00 00 2a 2a 2a 2a 2a  |..L.!D.2 ..*****| +00000030  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************| +00000040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 00 20  |************* . | +00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| +* +00000080  00 00 00 00 00 00 00 00  00 00 00 00 70 78 65 6c  |............pxel| +00000090  69 6e 75 78 2e 30 00 00  00 00 00 00 00 00 00 00  |inux.0..........| +000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................| +$ +``` + +### Part 2: Get Volatility and use it to analyze your memory dump + +Now that you have a sample memory dump to analyze, get the Volatility software with the command below. Volatility has been rewritten in Python 3, but this tutorial uses the original Volatility package, which uses Python 2. If you want to experiment with Volatility 3, download it from the appropriate Git repo and use Python 3 instead of Python 2 in the following commands: + + +``` +$ git clone +$ +$ cd volatility/ +$ +$ ls +AUTHORS.txt    contrib      LEGAL.txt    Makefile     PKG-INFO     pyinstaller.spec  resources  tools       vol.py +CHANGELOG.txt  CREDITS.txt  LICENSE.txt  MANIFEST.in  pyinstaller  README.txt        setup.py   volatility +$ +``` + +Volatility uses two Python libraries for some functionality, so please install them using the following commands. Otherwise, you might see some import errors when you run the Volatility tool; you can ignore them unless you are running a plugin that needs these libraries; in that case, the tool will error out: + + +``` +$ pip2 install pycrypto +$ pip2 install distorm3 +``` + +#### List Volatility's Linux profiles + +The first Volatility command you'll want to run lists what Linux profiles are available. The main entry point to running any Volatility commands is the `vol.py` script. Invoke it using the Python 2 interpreter and provide the `--info` option. To narrow down the output, look for strings that begin with Linux. As you can see, not many Linux profiles are listed: + + +``` +$ python2 vol.py --info  | grep ^Linux +Volatility Foundation Volatility Framework 2.6.1 +LinuxAMD64PagedMemory          - Linux-specific AMD 64-bit address space. +$ +``` + +#### Build your own Linux profile + +Linux distros are varied and built for various architectures. This why profiles are essential—Volatility must know the system and architecture that the memory dump was acquired from before extracting information. There are Volatility commands to find this information; however, this method is time-consuming. To speed things up, build a custom Linux profile using the following commands. + +Move to the `tools/linux` directory within the Volatility repo, and run the `make` command: + + +``` +$ cd tools/linux/ +$ +$ pwd +/root/volatility/tools/linux +$ +$ ls +kcore  Makefile  Makefile.enterprise  module.c +$ +$ make +make -C //lib/modules/4.18.0-240.el8.x86_64/build CONFIG_DEBUG_INFO=y M="/root/volatility/tools/linux" modules +make[1]: Entering directory '/usr/src/kernels/4.18.0-240.el8.x86_64' +<< snip >> +make[1]: Leaving directory '/usr/src/kernels/4.18.0-240.el8.x86_64' +$ +``` + +You should see a new `module.dwarf` file. You also need the `System.map` file from the `/boot` directory, as it contains all of the symbols related to the currently running kernel: + + +``` +$ ls +kcore  Makefile  Makefile.enterprise  module.c  module.dwarf +$ +$ ls -l module.dwarf +-rw-r--r--. 1 root root 3987904 Apr 17 15:17 module.dwarf +$ +$ ls -l /boot/System.map-4.18.0-240.el8.x86_64 +-rw-------. 1 root root 4032815 Sep 23  2020 /boot/System.map-4.18.0-240.el8.x86_64 +$ +$ +``` + +To create a custom profile, move back to the Volatility directory and run the command below. The first argument provides a custom .zip with a file name of your choice. I used the operating system and kernel versions in the name. The next argument is the `module.dwarf` file created above, and the final argument is the `System.map` file from the `/boot` directory: + + +``` +$ +$ cd volatility/ +$ +$ zip volatility/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip tools/linux/module.dwarf /boot/System.map-4.18.0-240.el8.x86_64 +  adding: tools/linux/module.dwarf (deflated 91%) +  adding: boot/System.map-4.18.0-240.el8.x86_64 (deflated 79%) +$ +``` + +Your custom profile is now ready, so verify the .zip file was created at the location given above. If you want to know if Volatility detects this custom profile, run the `--info` command again. This time, you should see the new profile listed below: + + +``` +$ +$ ls -l volatility/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip +-rw-r--r--. 1 root root 1190360 Apr 17 15:20 volatility/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip +$ +$ +$ python2 vol.py --info  | grep Redhat +Volatility Foundation Volatility Framework 2.6.1 +LinuxRedhat8_3_4_18_0-240x64 - A Profile for Linux Redhat8.3_4.18.0-240 x64 +$ +$ +``` + +#### Start using Volatility + +Now you are all set to do some actual memory forensics. Remember, Volatility is made up of custom plugins that you can run against a memory dump to get information. The command's general format is: + + +``` +`python2 vol.py -f --profile=` +``` + +Armed with this information, run the **linux_banner** plugin to see if you can identify the correct distro information from the memory dump: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_banner --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +Linux version 4.18.0-240.el8.x86_64 ([mockbuild@vm09.test.com][4]) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Wed Sep 23 05:13:10 EDT 2020 +$ +``` + +#### Find Linux plugins + +That worked well, so now you're probably curious about how to find all the names of all the Linux plugins. There is an easy trick: run the `--info` command and `grep` for the `linux_` string. There are a variety of plugins available for different uses. Here is a partial list: + + +``` +$ python2 vol.py --info  | grep linux_ +Volatility Foundation Volatility Framework 2.6.1 +linux_apihooks             - Checks for userland apihooks +linux_arp                  - Print the ARP table +linux_aslr_shift           - Automatically detect the Linux ASLR shift + +<< snip >> + +linux_banner               - Prints the Linux banner information +linux_vma_cache            - Gather VMAs from the vm_area_struct cache +linux_volshell             - Shell in the memory image +linux_yarascan             - A shell in the Linux memory image +$ +``` + +Check which processes were running on the system when you took the memory dump using the **linux_psaux** plugin. Notice the last command in the list: it's the `insmod` command you ran before the dump: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_psaux --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +Pid    Uid    Gid    Arguments                                                       +1      0      0      /usr/lib/systemd/systemd --switched-root --system --deserialize 18 +2      0      0      [kthreadd]                                                       +3      0      0      [rcu_gp]                                                         +4      0      0      [rcu_par_gp]                                                     +861    0      0      /usr/libexec/platform-python -Es /usr/sbin/tuned -l -P           +869    0      0      /usr/bin/rhsmcertd                                               +875    0      0      /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files +878    0      0      /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files       + +<<< snip >>> + +11064  89     89     qmgr -l -t unix -u                                               +227148 0      0      [kworker/0:0]                                                   +227298 0      0      -bash                                                           +227374 0      0      [kworker/u2:1]                                                   +227375 0      0      [kworker/0:2]                                                   +227884 0      0      [kworker/0:3]                                                   +228573 0      0      insmod ./lime-4.18.0-240.el8.x86_64.ko path=../RHEL8.3_64bit.mem format=lime +228576 0      0                                                                       +$ +``` + +Want to know about the system's network stats? Run the **linux_netstat** plugin to find the state of the network connections during the memory dump: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_netstat --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +UNIX 18113              systemd/1     /run/systemd/private +UNIX 11411              systemd/1     /run/systemd/notify +UNIX 11413              systemd/1     /run/systemd/cgroups-agent +UNIX 11415              systemd/1     +UNIX 11416              systemd/1     +<< snip>> +$ +``` + +Next, use the **linux_mount** plugin to see which filesystems were mounted during the memory dump: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_mount --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +tmpfs                     /sys/fs/cgroup                      tmpfs        ro,nosuid,nodev,noexec                   +cgroup                    /sys/fs/cgroup/pids                 cgroup       rw,relatime,nosuid,nodev,noexec         +systemd-1                 /proc/sys/fs/binfmt_misc            autofs       rw,relatime                             +sunrpc                    /var/lib/nfs/rpc_pipefs             rpc_pipefs   rw,relatime                             +/dev/mapper/rhel_kvm--03--guest11-root /                                   xfs          rw,relatime                 +tmpfs                     /dev/shm                            tmpfs        rw,nosuid,nodev                         +selinuxfs                 /sys/fs/selinux                     selinuxfs    rw,relatime                                                       +<< snip>> + +cgroup                    /sys/fs/cgroup/net_cls,net_prio     cgroup       rw,relatime,nosuid,nodev,noexec         +cgroup                    /sys/fs/cgroup/cpu,cpuacct          cgroup       rw,relatime,nosuid,nodev,noexec         +bpf                       /sys/fs/bpf                         bpf          rw,relatime,nosuid,nodev,noexec         +cgroup                    /sys/fs/cgroup/memory               cgroup       ro,relatime,nosuid,nodev,noexec         +cgroup                    /sys/fs/cgroup/cpuset               cgroup       rw,relatime,nosuid,nodev,noexec         +mqueue                    /dev/mqueue                         mqueue       rw,relatime                             +$ +``` + +Curious what kernel modules were loaded? Volatility has a plugin for that too, aptly named **linux_lsmod**: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_lsmod --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +ffffffffc0535040 lime 20480 +ffffffffc0530540 binfmt_misc 20480 +ffffffffc05e8040 sunrpc 479232 +<< snip >> +ffffffffc04f9540 nfit 65536 +ffffffffc0266280 dm_mirror 28672 +ffffffffc025e040 dm_region_hash 20480 +ffffffffc0258180 dm_log 20480 +ffffffffc024bbc0 dm_mod 151552 +$ +``` + +Want to find all the commands the user ran that were stored in the Bash history? Run the **linux_bash** plugin: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_bash --profile=LinuxRedhat8_3_4_18_0-240x64 -v +Volatility Foundation Volatility Framework 2.6.1 +Pid      Name                 Command Time                   Command +\-------- -------------------- ------------------------------ ------- +  227221 bash                 2021-04-17 18:38:24 UTC+0000   lsmod +  227221 bash                 2021-04-17 18:38:24 UTC+0000   rm -f .log +  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls -l /etc/zzz +  227221 bash                 2021-04-17 18:38:24 UTC+0000   cat ~/.vimrc +  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls +  227221 bash                 2021-04-17 18:38:24 UTC+0000   cat /proc/817/cwd +  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls -l /proc/817/cwd +  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls /proc/817/ +<< snip >> +  227298 bash                 2021-04-17 18:40:30 UTC+0000   gcc prt.c +  227298 bash                 2021-04-17 18:40:30 UTC+0000   ls +  227298 bash                 2021-04-17 18:40:30 UTC+0000   ./a.out +  227298 bash                 2021-04-17 18:40:30 UTC+0000   vim prt.c +  227298 bash                 2021-04-17 18:40:30 UTC+0000   gcc prt.c +  227298 bash                 2021-04-17 18:40:30 UTC+0000   ./a.out +  227298 bash                 2021-04-17 18:40:30 UTC+0000   ls +$ +``` + +Want to know what files were opened by which processes? Use the **linux_lsof** plugin to list that information: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_lsof --profile=LinuxRedhat8_3_4_18_0-240x64 +Volatility Foundation Volatility Framework 2.6.1 +Offset             Name                           Pid      FD       Path +\------------------ ------------------------------ -------- -------- ---- +0xffff9c83fb1e9f40 rsyslogd                          71194        0 /dev/null +0xffff9c83fb1e9f40 rsyslogd                          71194        1 /dev/null +0xffff9c83fb1e9f40 rsyslogd                          71194        2 /dev/null +0xffff9c83fb1e9f40 rsyslogd                          71194        3 /dev/urandom +0xffff9c83fb1e9f40 rsyslogd                          71194        4 socket:[83565] +0xffff9c83fb1e9f40 rsyslogd                          71194        5 /var/log/messages +0xffff9c83fb1e9f40 rsyslogd                          71194        6 anon_inode:[9063] +0xffff9c83fb1e9f40 rsyslogd                          71194        7 /var/log/secure + +<< snip >> + +0xffff9c8365761f40 insmod                           228573        0 /dev/pts/0 +0xffff9c8365761f40 insmod                           228573        1 /dev/pts/0 +0xffff9c8365761f40 insmod                           228573        2 /dev/pts/0 +0xffff9c8365761f40 insmod                           228573        3 /root/LiME/src/lime-4.18.0-240.el8.x86_64.ko +$ +``` + +#### Access the Linux plugins scripts location + +You can get a lot more information by reading the memory dump and processing the information. If you know Python and are curious how this information was processed, go to the directory where all the plugins are stored, pick one that interests you, and see how Volatility gets this information: + + +``` +$ ls volatility/plugins/linux/ +apihooks.py              common.py            kernel_opened_files.py   malfind.py          psaux.py +apihooks.pyc             common.pyc           kernel_opened_files.pyc  malfind.pyc         psaux.pyc +arp.py                   cpuinfo.py           keyboard_notifiers.py    mount_cache.py      psenv.py +arp.pyc                  cpuinfo.pyc          keyboard_notifiers.pyc   mount_cache.pyc     psenv.pyc +aslr_shift.py            dentry_cache.py      ld_env.py                mount.py            pslist_cache.py +aslr_shift.pyc           dentry_cache.pyc     ld_env.pyc               mount.pyc           pslist_cache.pyc +<< snip >> +check_syscall_arm.py     __init__.py          lsmod.py                 proc_maps.py        tty_check.py +check_syscall_arm.pyc    __init__.pyc         lsmod.pyc                proc_maps.pyc       tty_check.pyc +check_syscall.py         iomem.py             lsof.py                  proc_maps_rb.py     vma_cache.py +check_syscall.pyc        iomem.pyc            lsof.pyc                 proc_maps_rb.pyc    vma_cache.pyc +$ +$ +``` + +One reason I like Volatility is that it provides a lot of security plugins. This information would be difficult to acquire manually: + + +``` +linux_hidden_modules       - Carves memory to find hidden kernel modules +linux_malfind              - Looks for suspicious process mappings +linux_truecrypt_passphrase - Recovers cached Truecrypt passphrases +``` + +Volatility also allows you to open a shell within the memory dump, so instead of running all the commands above, you can run shell commands instead and get the same information: + + +``` +$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_volshell --profile=LinuxRedhat8_3_4_18_0-240x64 -v +Volatility Foundation Volatility Framework 2.6.1 +Current context: process systemd, pid=1 DTB=0x1042dc000 +Welcome to volshell! Current memory image is: +file:///root/LiME/RHEL8.3_64bit.mem +To get help, type 'hh()' +>>> +>>> sc() +Current context: process systemd, pid=1 DTB=0x1042dc000 +>>> +``` + +### Next steps + +Memory forensics is a good way to learn more about Linux internals. Try all of Volatility's plugins and study their output in detail. Then think about ways this information can help you identify an intrusion or a security issue. Dive into how the plugins work, and maybe even try to improve them. And if you didn't find a plugin for what you want to do, write one and submit it to Volatility so others can use it, too. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/linux-memory-forensics + +作者:[Gaurav Kamathe][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/brain_computer_solve_fix_tool.png?itok=okq8joti (Brain on a computer screen) +[2]: https://github.com/volatilityfoundation/volatility +[3]: https://github.com/504ensicsLabs/LiME +[4]: mailto:mockbuild@vm09.test.com From 85334309b0a2cd5e75783edb64f2bcb477f1ff4b Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:04:02 +0800 Subject: [PATCH 015/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210427=20?= =?UTF-8?q?Fedora=2034=20Releases=20with=20GNOME=2040,=20Linux=20Kernel=20?= =?UTF-8?q?5.11,=20and=20a=20New=20i3=20Spin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md --- ...0, Linux Kernel 5.11, and a New i3 Spin.md | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md diff --git a/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md b/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md new file mode 100644 index 0000000000..d7a6d56c71 --- /dev/null +++ b/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md @@ -0,0 +1,118 @@ +[#]: subject: (Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin) +[#]: via: (https://news.itsfoss.com/fedora-34-release/) +[#]: author: (Arish V https://news.itsfoss.com/author/arish/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin +====== + +After the release of the [Fedora 34 beta][1] a week ago, Fedora 34 stable release is finally here with exciting changes and improvements. + +As expected this release of Fedora arrives with the latest Linux kernel 5.11 along with significant changes such as [Gnome 40][2], [PipeWire][3], availability of a [Fedora i3 Spin][4], and various other changes. + +Let’s take a look at the important changes coming to Fedora 34. + +### Major Highlights of Fedora 34 Release + +Here is an overview of the major changes in this release of Fedora. + +#### Desktop Environment Updates + +![][5] + +One of the biggest highlights is the arrival of the [GNOME 40][2] desktop. Fedora 34 is one of the few distributions in which you can experience the latest Gnome 40 right now. So, this change is worth noting. + +Taking a look at KDE Plasma, Wayland becomes the default display server for KDE Plasma in Fedora 34. Moreover, KDE Plasma Desktop image is available for AArch64 ARM devices as well. + +Coming to other Desktop Environments, the latest Xfce 4.16 is available with this release of Fedora and LXQT also receives an update to the latest version LXQT 0.16. + +#### PipeWire to Replace PulseAudio + +A noteworthy change happening with this release of Fedora is the replacement of PulseAudio by PipeWire. It replaces PulseAudio and JACK by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. + +![][6] + +Besides, with this release, there’s also a Fedora i3 Spin that provides the popular i3 tiling window manager and offers a complete experience with a minimalist user interface. + +####  Zstd Compression by Default + +BTRSF file system was made default with Fedora 34, with this release zstd algorithm is made default for transparent compression when using BTRSF. The developers hope that this would increase the life span of flash-based media by reducing write amplification. + +#### Other Changes + +Some of the other changes include package the following package updates. + + * Binutils 2.53 + * Golang 1.16 + * Ruby 3.0 + * BIND 9.16 + *  MariaDB 10.5 + * Ruby on Rails 6.1 + * Stratis 2.3.0 + + + +Other changes include replacement of The ntp package with ntpsec. Also, the collection packages xorg-x11 are revoked, and the individual utilities within them will be packaged separately. + +If you want to see the entire list of changes in Fedora 34, please take a look at the [official announcement post][7] and the [changeset][8] for more technical details. + +### Wrapping up + +Most of the above changes in Fedora 34 were expected changes, and fortunately nothing went south after the beta release last week. Above all Fedora 34 in powered by the latest Linux kernel 5.11, and you can experience the latest GNOME desktop as well. + +_So, what do you think about these exciting additions to Fedora 34? Let me know in the comments below._ + +  + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +#### _Related_ + + * [Fedora 34 Beta Arrives With Awesome GNOME 40 (Unlike Ubuntu 21.04)][1] + * ![][9] ![][10] + + + * [Linux Release Roundup #21.13: GNOME 40, Manjaro 21.0, Fedora 34 and More New Releases][11] + * ![][9] ![Linux Release Roundups][12] + + + * [Manjaro 21.0 Ornara Comes Packed With GNOME 3.38, KDE Plasma 5.21, Xfce 4.16 and Linux Kernel 5.10][13] + * ![][9] ![][14] + + + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/fedora-34-release/ + +作者:[Arish V][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/arish/ +[b]: https://github.com/lujun9972 +[1]: https://news.itsfoss.com/fedora-34-beta-release/ +[2]: https://news.itsfoss.com/gnome-40-release/ +[3]: https://pipewire.org/ +[4]: https://spins.fedoraproject.org/i3/ +[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ2OCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzNicgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[7]: https://fedoramagazine.org/announcing-fedora-34/ +[8]: https://fedoraproject.org/wiki/Releases/34/ChangeSet#i3_Spin +[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/fedora-34-beta-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[11]: https://news.itsfoss.com/linux-release-roundup-2021-13/ +[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 +[13]: https://news.itsfoss.com/manjaro-21-0-ornara-release/ +[14]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/manjaro-21.png?fit=1200%2C675&ssl=1&resize=350%2C200 From 4978488c61307e8f5eed3654cf43cf12ecb00637 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 28 Apr 2021 05:04:16 +0800 Subject: [PATCH 016/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210427=20?= =?UTF-8?q?CloudLinux=20Announces=20Commercial=20Support=20for=20its=20Cen?= =?UTF-8?q?tOS=20Alternative=20AlmaLinux=20OS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md --- ...for its CentOS Alternative AlmaLinux OS.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md diff --git a/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md b/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md new file mode 100644 index 0000000000..98bdb1ce07 --- /dev/null +++ b/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md @@ -0,0 +1,90 @@ +[#]: subject: (CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS) +[#]: via: (https://news.itsfoss.com/almalinux-commercial-support/) +[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS +====== + +CentOS alternative [AlmaLinux][1] announced the availability of their [first stable release][2] a month back. + +If you are planning to replace your CentOS deployments or have already started to utilize AlmaLinux OS, you will be happy to know that you are about to get commercial support and premium support soon. + +CloudLinux, the sponsor of the project announced that it will start providing multiple support options next month. + +### More About the Support Options + +According to the press release, they aim to offer reasonable pricing for the support tiers: + +> “Support services for AlmaLinux OS from CloudLinux provides both the highest quality support from the OS sponsor along with the benefits of an independent technology partnership,” said Jim Jackson, president and chief revenue officer, CloudLinux. “Reasonably priced and flexible support services keep systems running on AlmaLinux OS continuously updated and secure for production workloads.” + +They also clarify that the support tiers will include update delivery commitments and 24/7 incident response services. + +This means that you will be getting regular patches and updates for the Linux kernel and core packages, patch delivery service-level agreements (SLAs), and 24/7 incident support. + +For any business or enterprise, this should be the perfect incentive to start replacing CentOS on their server if looking for a [CentOS alternative][3]. + +In addition to the plans for the next month, they also plan to offer a premium support option for enterprise use-cases and more: + +> CloudLinux is also planning to introduce a premium support tier for enterprises that require enhanced services, as well as Product NodeOS Support for AlmaLinux OS, explicitly tailored to the needs of vendors and OEMs that are planning to use AlmaLinux as a node OS underlying their commercial products and services. + +This is definitely exciting and should grab the attention of OEMs, and businesses looking for a CentOS alternative with a long-term support until 2029 at least. + +They also added what the community manager of AlmaLinux OS thinks about it going forward: + +> “Since launch, we’ve received tremendous interest and support from both the community as well as many commercial vendors, many of whom have begun using AlmaLinux OS for some pretty amazing use cases,” said Jack Aboutboul, community manager of AlmaLinux. “Our thriving community has supported each other since day one which led to rapid adoption amongst organizations and requests for commercial support.” + +The support service options should start rolling out in **May 2021** (next month). If you want to know more about it before the release or how you can use it for your AlmaLinux OS deployments, fill up the form in the [official support page][4]. + +[Commercial Support for AlmaLinux OS][4] + +_So, what do you think about AlmaLinux OS as a CentOS alternative now with the imminent availability of commercial support? Do you have big hopes for it? Feel free to share what you think!_ + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +#### _Related_ + + * [Much-Anticipated CentOS Alternative 'AlmaLinux' Beta Released for Testing][5] + * ![][6] ![][7] + + + * [AlmaLinux OS First Stable Release is Here to Replace CentOS][2] + * ![][6] ![][8] + + + * [After Rocky Linux, We Have Another RHEL Fork in Works to Replace CentOS][9] + * ![][6] ![CloudLinux][10] + + + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/almalinux-commercial-support/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://almalinux.org/ +[2]: https://news.itsfoss.com/almalinux-first-stable-release/ +[3]: https://itsfoss.com/rhel-based-server-distributions/ +[4]: https://almalinux.org/support/ +[5]: https://news.itsfoss.com/almalinux-beta-released/ +[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[7]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/almalinux-ft.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 +[8]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/almalinux-first-iso-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[9]: https://news.itsfoss.com/rhel-fork-by-cloudlinux/ +[10]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Untitled-design-2.png?fit=800%2C450&ssl=1&resize=350%2C200 From 63623e4e9f1620976f9ba5307ab9f23c0f948748 Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 28 Apr 2021 08:45:20 +0800 Subject: [PATCH 017/170] translated --- ...e accessible and sustainable with Linux.md | 73 ------------------- ...e accessible and sustainable with Linux.md | 72 ++++++++++++++++++ 2 files changed, 72 insertions(+), 73 deletions(-) delete mode 100644 sources/tech/20210424 Making computers more accessible and sustainable with Linux.md create mode 100644 translated/tech/20210424 Making computers more accessible and sustainable with Linux.md diff --git a/sources/tech/20210424 Making computers more accessible and sustainable with Linux.md b/sources/tech/20210424 Making computers more accessible and sustainable with Linux.md deleted file mode 100644 index 0646d7b75c..0000000000 --- a/sources/tech/20210424 Making computers more accessible and sustainable with Linux.md +++ /dev/null @@ -1,73 +0,0 @@ -[#]: subject: (Making computers more accessible and sustainable with Linux) -[#]: via: (https://opensource.com/article/21/4/linux-free-geek) -[#]: author: (Don Watkins https://opensource.com/users/don-watkins) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Making computers more accessible and sustainable with Linux -====== -Free Geek is a nonprofit organization that helps decrease the digital -divide by providing Linux computers to people and groups in need. -![Working from home at a laptop][1] - -There are many reasons to choose Linux for your desktop operating system. In [_Why everyone should choose Linux_][2], Opensource.com's Seth Kenlon highlighted many of the best reasons to select Linux and provided lots of ways for people to get started with the operating system. - -This also got me thinking about how I usually introduce folks to Linux. The pandemic has increased the need for people to go online for shopping, doing remote education, and connecting with family and friends [over video conferencing][3]. - -I work with a lot of retirees who have fixed incomes and are not particularly tech-savvy. For most of these folks, buying a computer is a major investment fraught with concern. Some of my friends and clients are uncomfortable going to a retail store during a pandemic, and they're completely unfamiliar with what to look for in a computer, whether it's a desktop or laptop, even in non-pandemic times. They come to me with questions about where to buy one and what to look for. - -I'm always eager to see them get a Linux computer. Many of them cannot afford the Linux units sold by name-brand vendors. Until recently, I've been purchasing refurbished units for them and refitting them with Linux. - -But that all changed when I discovered [Free Geek][4], a nonprofit organization based in Portland, Ore., with the mission "to sustainably reuse technology, enable digital access, and provide education to create a community that empowers people to realize their potential." - -Free Geek has an eBay store where I have purchased several refurbished laptops at affordable prices. Their computers come with [Linux Mint][5] installed. The fact that a computer comes ready-to-use makes it easy to introduce [new users to Linux][6] and help them quickly experience the operating system's power. - -### Keeping computers in service and out of landfills - -Oso Martin launched Free Geek on Earth Day 2000. The organization provides classes and work programs to its volunteers, who are trained to refurbish and rebuild donated computers. Volunteers also receive a donated computer after 24 hours of service. - -The computers are sold in Free Geek's brick-and-mortar store in Portland and [online][7]. The organization also provides computers to people and entities in need through its programs [Plug Into Portland][8], [Gift a Geekbox][9], and [organizational][10] and [community grants][11]. - -The organization says it has "diverted over 2 million items from landfills, granted over 75,000 technology devices to nonprofits, schools, community change organizations, and individuals, and plugged over 5,000 classroom hours from Free Geek learners." - -### Get involved - -Since its inception, Free Geek has grown from a staff of three to almost 50 and has been recognized around the world. It is a member of the City of Portland's [Digital Inclusion Network][12]. - -You can connect with Free Geek on [Twitter][13], [Facebook][14], [LinkedIn][15], [YouTube][16], and [Instagram][17]. You can also subscribe to its [newsletter][18]. Purchasing items from Free Geek's [shop][19] directly supports its work and reduces the digital divide. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/4/linux-free-geek - -作者:[Don Watkins][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/don-watkins -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) -[2]: https://opensource.com/article/21/2/try-linux -[3]: https://opensource.com/article/20/8/linux-laptop-video-conferencing -[4]: https://www.freegeek.org/ -[5]: https://opensource.com/article/21/4/restore-macbook-linux -[6]: https://opensource.com/article/18/12/help-non-techies -[7]: https://www.ebay.com/str/freegeekbasicsstore -[8]: https://www.freegeek.org/our-programs/plug-portland -[9]: https://www.freegeek.org/our-programs/gift-geekbox -[10]: https://www.freegeek.org/our-programs-grants/organizational-hardware-grants -[11]: https://www.freegeek.org/our-programs-grants/community-hardware-grants -[12]: https://www.portlandoregon.gov/oct/73860 -[13]: https://twitter.com/freegeekpdx -[14]: https://www.facebook.com/freegeekmothership -[15]: https://www.linkedin.com/company/free-geek/ -[16]: https://www.youtube.com/user/FreeGeekMothership -[17]: https://www.instagram.com/freegeekmothership/ -[18]: https://app.e2ma.net/app2/audience/signup/1766417/1738557/?v=a -[19]: https://www.freegeek.org/shop diff --git a/translated/tech/20210424 Making computers more accessible and sustainable with Linux.md b/translated/tech/20210424 Making computers more accessible and sustainable with Linux.md new file mode 100644 index 0000000000..1fc0ad6745 --- /dev/null +++ b/translated/tech/20210424 Making computers more accessible and sustainable with Linux.md @@ -0,0 +1,72 @@ +[#]: subject: (Making computers more accessible and sustainable with Linux) +[#]: via: (https://opensource.com/article/21/4/linux-free-geek) +[#]: author: (Don Watkins https://opensource.com/users/don-watkins) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +用 Linux 使计算机更容易使用和可持续 +====== +Free Geek 是一个非营利组织,通过向有需要的人和团体提供 Linux 电脑,帮助减少数字鸿沟。 +![Working from home at a laptop][1] + +有很多理由选择 Linux 作为你的桌面操作系统。在[_为什么每个人都应该选择 Linux_][2]中,Opensource.com 的 Seth Kenlon 强调了许多选择 Linux 的最佳理由,并为人们提供了许多开始使用该操作系统的方法。 + +这也让我想到了我通常向人们介绍 Linux 的方式。这场大流行增加了人们上网购物、远程教育以及与家人和朋友[通过视频会议][3]联系的需求。 + +我和很多有固定收入的退休人员一起工作,他们并不特别精通技术。对于这些人中的大多数人来说,购买电脑是一项充满担忧的大投资。我的一些朋友和客户对在大流行期间去零售店感到不舒服,而且他们完全不熟悉在电脑中寻找什么,无论是台式机还是笔记本电脑,即使在非大流行时期。他们来找我,询问在哪里买,要注意些什么。 + +我总是急于看到他们得到一台 Linux 电脑。他们中的许多人买不起名牌供应商出售的 Linux 设备。直到最近,我一直在为他们购买翻新的设备,然后用 Linux 改装它们。 + +但是,当我发现 [Free Geek][4] 时,这一切都改变了,这是一个位于俄勒冈州波特兰的非营利组织,它的使命是“可持续地重复使用技术,实现数字访问,并提供教育,以创建一个使人们能够实现其潜力的社区。” + +Free Geek 有一个 eBay 商店,我在那里以可承受的价格购买了几台翻新的笔记本电脑。他们的电脑都安装了 [Linux Mint][5]。 事实上,电脑可以立即使用,这使得向[新用户介绍 Linux][6] 很容易,并帮助他们快速体验操作系统的力量。 + +### 让电脑继续使用,远离垃圾填埋场 + +Oso Martin 在 2000 年地球日发起了 Free Geek。该组织为其志愿者提供课程和工作计划,对他们进行翻新和重建捐赠电脑的培训。志愿者们在服务 24 小时后还会收到一台捐赠的电脑。 + +这些电脑在波特兰的 Free Geek 实体店和[网上][7]出售。该组织还通过其项目 [Plug Into Portland][8]、[Gift a Geekbox][9] 以及[组织][10]和[社区资助][11]向有需要的人和实体提供电脑。 + +该组织表示,它已经“从垃圾填埋场转移了 200 多万件物品,向非营利组织、学校、社区变革组织和个人提供了 75000 多件技术设备,并从 Free Geek 学习者那里插入了 5000 多课时”。 + +### 参与其中 + +自成立以来,Free Geek 已经从 3 名员工发展到近 50 名员工,并得到了世界各地的认可。它是波特兰市的[数字包容网络][12]的成员。 + +你可以在 [Twitter][13]、[Facebook][14]、[LinkedIn][15]、[YouTube][16] 和 [Instagram][17] 上与 Free Geek 联系。你也可以订阅它的[通讯][18]。从 Free Geek 的[商店][19]购买物品,可以直接支持其工作,减少数字鸿沟。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/linux-free-geek + +作者:[Don Watkins][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop) +[2]: https://opensource.com/article/21/2/try-linux +[3]: https://opensource.com/article/20/8/linux-laptop-video-conferencing +[4]: https://www.freegeek.org/ +[5]: https://opensource.com/article/21/4/restore-macbook-linux +[6]: https://opensource.com/article/18/12/help-non-techies +[7]: https://www.ebay.com/str/freegeekbasicsstore +[8]: https://www.freegeek.org/our-programs/plug-portland +[9]: https://www.freegeek.org/our-programs/gift-geekbox +[10]: https://www.freegeek.org/our-programs-grants/organizational-hardware-grants +[11]: https://www.freegeek.org/our-programs-grants/community-hardware-grants +[12]: https://www.portlandoregon.gov/oct/73860 +[13]: https://twitter.com/freegeekpdx +[14]: https://www.facebook.com/freegeekmothership +[15]: https://www.linkedin.com/company/free-geek/ +[16]: https://www.youtube.com/user/FreeGeekMothership +[17]: https://www.instagram.com/freegeekmothership/ +[18]: https://app.e2ma.net/app2/audience/signup/1766417/1738557/?v=a +[19]: https://www.freegeek.org/shop From a8b0c4b71d1f8b86682562465a4a21d7305916af Mon Sep 17 00:00:00 2001 From: geekpi Date: Wed, 28 Apr 2021 08:57:10 +0800 Subject: [PATCH 018/170] translating --- sources/tech/20210426 3 beloved USB drive Linux distros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210426 3 beloved USB drive Linux distros.md b/sources/tech/20210426 3 beloved USB drive Linux distros.md index 99247ee961..2e35d8cd7e 100644 --- a/sources/tech/20210426 3 beloved USB drive Linux distros.md +++ b/sources/tech/20210426 3 beloved USB drive Linux distros.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/usb-drive-linux-distro) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 267a22471c71ffb01a35b3ef6697ca73fcf3e970 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 29 Apr 2021 05:02:58 +0800 Subject: [PATCH 019/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210429=20?= =?UTF-8?q?Experiencing=20the=20/e/=20OS:=20The=20Open=20Source=20De-Googl?= =?UTF-8?q?ed=20Android=20Version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210429 Experiencing the -e- OS- The Open Source De-Googled Android Version.md --- ... Open Source De-Googled Android Version.md | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 sources/tech/20210429 Experiencing the -e- OS- The Open Source De-Googled Android Version.md diff --git a/sources/tech/20210429 Experiencing the -e- OS- The Open Source De-Googled Android Version.md b/sources/tech/20210429 Experiencing the -e- OS- The Open Source De-Googled Android Version.md new file mode 100644 index 0000000000..80541c80bd --- /dev/null +++ b/sources/tech/20210429 Experiencing the -e- OS- The Open Source De-Googled Android Version.md @@ -0,0 +1,133 @@ +[#]: subject: (Experiencing the /e/ OS: The Open Source De-Googled Android Version) +[#]: via: (https://itsfoss.com/e-os-review/) +[#]: author: (Dimitrios https://itsfoss.com/author/dimitrios/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Experiencing the /e/ OS: The Open Source De-Googled Android Version +====== + +/e/ Android operating system is a privacy oriented, Google-free mobile operating system, fork of Lineage OS and was founded in mid-2018 by [Gaël Duval][1], creator of Mandrake Linux (now [Mandriva Linux)][2]. + +Despite making Android an open source project in 2007, Google replaced some OS elements with proprietary software when Android gained popularity. /e/ Foundation has replaced the proprietary apps and services with [MicroG][3], an open source alternative framework which minimizes tracking and device activity. + +It’s FOSS received [Fairphone 3][4] with /e/ OS preinstalled, an [ethically created smartphone][5] from the /e/ Foundation. I used the device for a month before returning it to them and I am going to share my experience with this privacy device. I forgot to take screenshots so I’ll be sharing the generic images from the official website. + +### Experiencing the /e/ mobile operating system on the ethical Fairphone device + +Before I go any further, let me clear that Fairphone 3 is not the only option to get /e/ in your hands. The /e/ foundation gives you [a few smartphone options to choose][6] if you are buying a device from them. + +You don’t have to buy a device to use /e/ OS. As per the /e/ Foundation, you can [use it on over 100 supported devices][7]. + +Despite I enjoyed using the Fairphone 3, and my personal beliefs are in line with the Fairphone manifesto, I won’t focus my attention on the device but to the /e/ operating system only. + +#### Apps with rated privacy + +![][8] + +I used Fairphone 3 as my daily driver for a couple of days, to compare the usage with my “ordinary” Android phone in reality. + +First and foremost I wanted to see if all the apps that I use, are available at the “[App Store][9]” /e/ foundation has created. The /e/ App Store contains apps with privacy ratings. + +![/e/ OS app store has privacy ratings of the apps][10] + +I could find many applications, including apps from Google. This means that if someone really wants to use some Google service, it is still available as an option to download. Though unlike other Andriod devices, Google services are not forced down your throat. + +Though there are lot of apps available, I could not find the mobile banking app I use in the UK. I have to admit that the mobile banking app can contribute to a level of convenience. As an alternative, I had to access a computer to use the online banking platform if needed. + +From a usability point of view, /e/ OS could replace my “standard” Android OS with minor hiccups like the banking apps. + +#### If not Google, then what? + +Wondering what essential apps /e/ OS uses instead of the ones from Google? Here’s a quick list: + + * [Magic Earth][11] – Turn by turn navigation + * Web-browser – an ungoogled fork of Chromium + * Mail – a fork of [K9-mail][12] + * SMS – a fork of QKSMS + * Camera – a fork of OpenCamera + * Weather – a fork of GoodWeather + * OpenTasks – Task organizer + * Calendar -Calendar: a fork of [Etar calendar][13] + + + +#### Bliss Launcher and overall design + +![][14] + +The default launcher application of /e/ OS is called “Bliss Launcher” which aims to an attractive look and feel. To me, the design felt similar to iOS. + +By Swiping to the left panel, you can access a few useful widgets /e/ has selected. + +![][15] + + * Search: Quick search of pre-installed apps or search the web + * APP Suggestions: The top 4 most used apps will appear on this widget + * Weather: The weather widget is showing the local weather. It doesn’t automatically detect the location and it needs to be configured. + * Edit: If you want more widgets on the screen, you can add them by clicking the edit button + + + +All in all, the user interface is clean and neat. Being simple and straightforward enhances a pleasant user experience. + +#### DeGoogled and privacy oriented OS + +As mentioned earlier /e/ OS is a Google-free operating system which is based on an open source core of [Lineage OS][16]. All the Google apps have been removed and the Google services have been replaced with the Micro G framework. The /e/ OS is still compatible with all Android apps. + +##### Key privacy features: + + * Google search engine has been replaced with alternatives such as DuckDuckGo + * Google Services have been replaced by microG framework + * Alternative default apps are used instead of Google Apps + * Connectivity check against Google servers is removed + * NTP servers have been replaced with the standard NTP service: pool.ntp.orgs + * DNS default servers are replaced by 9.9.9.9 and can be edited to user’s choice + * Geolocation is using Mozilla Location Services on top of GPS + + + +Privacy notice + +Please be mindful that using a smartphone, provided by /e/ foundation doesn’t automatically mean that your privacy is guaranteed no matter what you do. Social media apps that share your personal information should be used under your awareness. + +#### Conclusion + +I have been an Android user for more than a decade. /e/ OS surprised me positively. A privacy concerned user can find this solution very appealing, and depending on the selected apps and settings can feel secure again using a smartphone. + +I could recommend it to you if you are a privacy aware tech-savvy and can find your way around things on your own. The /e/ ecosystem is likely to be overwhelming for people who are used to of mainstream Google services. + +Have you used /e/ OS? How was your experience with it? What do you think of projects like these that focus on privacy? + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/e-os-review/ + +作者:[Dimitrios][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/dimitrios/ +[b]: https://github.com/lujun9972 +[1]: https://en.wikipedia.org/wiki/Ga%C3%ABl_Duval +[2]: https://en.wikipedia.org/wiki/Mandriva_Linux +[3]: https://en.wikipedia.org/wiki/MicroG +[4]: https://esolutions.shop/shop/e-os-fairphone-3-fr/ +[5]: https://www.fairphone.com/en/story/?ref=header +[6]: https://esolutions.shop/shop/ +[7]: https://doc.e.foundation/devices/ +[8]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/e-ecosystem.png?resize=768%2C510&ssl=1 +[9]: https://e.foundation/e-os-available-applications/ +[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/e-os-apps-privacy-ratings.png?resize=300%2C539&ssl=1 +[11]: https://www.magicearth.com/ +[12]: https://k9mail.app/ +[13]: https://github.com/Etar-Group/Etar-Calendar +[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/fairphone.jpg?resize=600%2C367&ssl=1 +[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/e-bliss-launcher.jpg?resize=300%2C533&ssl=1 +[16]: https://lineageos.org/ From 3b3b56a0c80b8f4b9a8fa4d5accb7551c957390f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 29 Apr 2021 05:03:17 +0800 Subject: [PATCH 020/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210428=20?= =?UTF-8?q?Share=20files=20between=20Linux=20and=20Windows=20computers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210428 Share files between Linux and Windows computers.md --- ...les between Linux and Windows computers.md | 274 ++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 sources/tech/20210428 Share files between Linux and Windows computers.md diff --git a/sources/tech/20210428 Share files between Linux and Windows computers.md b/sources/tech/20210428 Share files between Linux and Windows computers.md new file mode 100644 index 0000000000..8ba6282397 --- /dev/null +++ b/sources/tech/20210428 Share files between Linux and Windows computers.md @@ -0,0 +1,274 @@ +[#]: subject: (Share files between Linux and Windows computers) +[#]: via: (https://opensource.com/article/21/4/share-files-linux-windows) +[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Share files between Linux and Windows computers +====== +Set up cross-platform file sharing with Samba. +![Blue folders flying in the clouds above a city skyline][1] + +If you work with different operating systems, it's handy to be able to share files between them. This article explains how to set up file access between Linux ([Fedora 33][2]) and Windows 10 using [Samba][3] and [mount.cifs][4]. + +Samba is the Linux implementation of the [SMB/CIFS][5] protocol, allowing direct access to shared folders and printers over a network. Mount.cifs is part of the Samba suite and allows you to mount the [CIFS][5] filesystem under Linux. + +> **Caution**: These instructions are for sharing files within your private local network or in a virtualized host-only network between a Linux host machine and a virtualized Windows guest. Don't consider this article a guideline for your corporate network, as it doesn't implement the necessary cybersecurity considerations. + +### Access Linux from Windows + +This section explains how to access a user's Linux home directory from Windows File Explorer. + +#### 1\. Install and configure Samba + +Start on your Linux system by installing Samba: + + +``` +`dnf install samba` +``` + +Samba is a system daemon, and its configuration file is located in `/etc/samba/smb.conf`. Its default configuration should work. If not, this minimal configuration should do the job: + + +``` +[global] +        workgroup = SAMBA +        server string = %h server (Samba %v) +        invalid users = root +        security = user +[homes] +        comment = Home Directories +        browseable = no +        valid users = %S +        writable = yes +``` + +You can find a detailed description of the parameters in the [smb.conf][6] section of the project's website. + +#### 2\. Modify LinuxSE + +If your Linux distribution is protected by [SELinux][7] (as Fedora is), you have to enable Samba to be able to access the user's home directory: + + +``` +`setsebool -P samba_enable_home_dirs on` +``` + +Check that the value is set by typing: + + +``` +`getsebool samba_enable_home_dirs` +``` + +Your output should look like this: + +![Sebool][8] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +#### 3\. Enable your user + +Samba uses a set of users and passwords that have permission to connect. Add your Linux user to the set by typing: + + +``` +`smbpasswd -a ` +``` + +You will be prompted for a password. This is a _completely new_ password; it is not the current password for your account. Enter the password you want to use to log in to Samba. + +To get a list of allowed user types: + + +``` +`pdbedit -L -v` +``` + +Remove a user by typing: + + +``` +`smbpasswd -x ` +``` + +#### 4\. Start Samba + +Because Samba is a system daemon, you can start it on Fedora with: + + +``` +`systemctl start smb` +``` + +This starts Samba for the current session. If you want Samba to start automatically on system startup, enter: + + +``` +`systemctl enable smb` +``` + +On some systems, the Samba daemon is registered as `smbd`. + +#### 4\. Configure the firewall + +By default, Samba is blocked by your firewall. Allow Samba to access the network permanently by configuring the firewall. + +You can do it on the command line with: + + +``` +`firewall-cmd --add-service=samba --permanent` +``` + +Or you do it graphically with the firewall-config tool: + +![firewall-config][10] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +#### 5\. Access Samba from Windows + +In Windows, open File Explorer. On the address line, type in two backslashes followed by your Linux machine's address (IP address or hostname): + +![Accessing Linux machine from Windows][11] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +You will be prompted for your login information. Type in the username and password combination from step 3. You should now be able to access your home directory on your Linux machine: + +![Accessing Linux machine from Windows][12] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +### Access Windows from Linux + +The following steps explain how to access a shared Windows folder from Linux. To implement them, you need Administrator rights on your Windows user account. + +#### 1\. Enable file sharing + +Open the** Network and Sharing Center** either by clicking on the + +**Windows Button > Settings > Network & Internet** + +or by right-clicking the little monitor icon on the bottom-right of your taskbar: + +![Open network and sharing center][13] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +In the window that opens, find the connection you want to use and note its profile. I used **Ethernet 3**, which is tagged as a **Public network**. + +> **Caution**: Consider changing your local machine's connection profile to **Private** if your PC is frequently connected to public networks. + +Remember your network profile and click on **Change advanced sharing settings**: + +![Change advanced sharing settings][14] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +Select the profile that corresponds to your connection and turn on **network discovery** and **file and printer sharing**: + +![Network sharing settings][15] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +#### 2\. Define a shared folder + +Open the context menu by right-clicking on the folder you want to share, navigate to **Give access to**, and select **Specific people...** : + +![Give access][16] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +Check whether your current username is on the list. Click on **Share** to tag this folder as shared: + +![Tag as shared][17] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +You can display a list of all shared folders by entering `\\localhost` in File Explorer's address line: + +![Shared folders][18] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +![Shared folders][19] + +(Stephan Avenwedde, [CC BY-SA 4.0][9]) + +#### 3\. Mount the shared folder under Linux + +Go back to your Linux system, open a command shell, and create a new folder where you want to mount the Windows share: + + +``` +`mkdir ~/WindowsShare` +``` + +Mounting Windows shares is done with mount.cifs, which should be installed by default. To mount your shared folder temporarily, use: + + +``` +`sudo mount.cifs ///MySharedFolder ~/WindowsShare/ -o user=,uid=$UID` +``` + +In this command: + + * `` is the Windows PC's address info (IP or hostname) + * ``is the user that is allowed to access the shared folder (from step 2) + + + +You will be prompted for your Windows password. Enter it, and you will be able to access the shared folder on Windows with your normal Linux user. + +To unmount the shared folder: + + +``` +`sudo umount ~/WindowsShare/` +``` + +You can also mount a Windows shared folder on system startup. Follow [these steps][20] to configure your system accordingly. + +### Summary + +This shows how to establish temporary shared folder access that must be renewed after each boot. It is relatively easy to modify this configuration for permanent access. I often switch back and forth between different systems, so I consider it incredibly practical to set up direct file access. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/share-files-linux-windows + +作者:[Stephan Avenwedde][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hansic99 +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003499_01_cloud21x_cc.png?itok=5UwC92dO (Blue folders flying in the clouds above a city skyline) +[2]: https://getfedora.org/en/workstation/download/ +[3]: https://www.samba.org/ +[4]: https://linux.die.net/man/8/mount.cifs +[5]: https://en.wikipedia.org/wiki/Server_Message_Block +[6]: https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html +[7]: https://www.redhat.com/en/topics/linux/what-is-selinux +[8]: https://opensource.com/sites/default/files/uploads/sebool.png (Enabling Samba to enable user directory access) +[9]: https://creativecommons.org/licenses/by-sa/4.0/ +[10]: https://opensource.com/sites/default/files/uploads/firewall_configuration.png (firewall-config tool) +[11]: https://opensource.com/sites/default/files/uploads/windows_access_shared_1.png (Accessing Linux machine from Windows) +[12]: https://opensource.com/sites/default/files/uploads/windows_acess_shared_2.png (Accessing Linux machine from Windows) +[13]: https://opensource.com/sites/default/files/uploads/open_network_and_sharing_center.png (Open network and sharing center) +[14]: https://opensource.com/sites/default/files/uploads/network_and_sharing_center_2.png (Change advanced sharing settings) +[15]: https://opensource.com/sites/default/files/uploads/network_sharing.png (Network sharing settings) +[16]: https://opensource.com/sites/default/files/pictures/give_access_to.png (Give access) +[17]: https://opensource.com/sites/default/files/pictures/tag_as_shared.png (Tag as shared) +[18]: https://opensource.com/sites/default/files/uploads/show_shared_folder_1.png (Shared folders) +[19]: https://opensource.com/sites/default/files/uploads/show_shared_folder_2.png (Shared folders) +[20]: https://timlehr.com/auto-mount-samba-cifs-shares-via-fstab-on-linux/ From b3a43ea0a869ef78ee51c6848d8586b774d15829 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 29 Apr 2021 05:03:30 +0800 Subject: [PATCH 021/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210428=20?= =?UTF-8?q?5=20ways=20to=20process=20JSON=20data=20in=20Ansible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210428 5 ways to process JSON data in Ansible.md --- ... 5 ways to process JSON data in Ansible.md | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 sources/tech/20210428 5 ways to process JSON data in Ansible.md diff --git a/sources/tech/20210428 5 ways to process JSON data in Ansible.md b/sources/tech/20210428 5 ways to process JSON data in Ansible.md new file mode 100644 index 0000000000..ea61f1f7f3 --- /dev/null +++ b/sources/tech/20210428 5 ways to process JSON data in Ansible.md @@ -0,0 +1,347 @@ +[#]: subject: (5 ways to process JSON data in Ansible) +[#]: via: (https://opensource.com/article/21/4/process-json-data-ansible) +[#]: author: (Nicolas Leiva https://opensource.com/users/nicolas-leiva) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +5 ways to process JSON data in Ansible +====== +Structured data is friendly for automation, and you can take full +advantage of it with Ansible. +![Net catching 1s and 0s or data in the clouds][1] + +Exploring and validating data from an environment is a common practice for preventing service disruptions. You can choose to run the process periodically or on-demand, and the data you're checking can come from different sources: telemetry, command outputs, etc. + +If the data is _unstructured_, you must do some custom regex magic to retrieve key performance indicators (KPIs) relevant for specific scenarios. If the data is _structured_, you can leverage a wide array of options to make parsing it simpler and more consistent. Structured data conforms to a data model, which allows access to each data field separately. The data for these models is exchanged as key/value pairs and encoded using different formats. JSON, which is widely used in Ansible, is one of them. + +There are many resources available in Ansible to work with JSON data, and this article presents five of them. While all these resources are used together in sequence in the examples, it is probably sufficient to use just one or two in most real-life scenarios. + +![Magnifying glass looking at 0's and 1's][2] + +([Geralt][3], Pixabay License) + +The following code snippet is a short JSON document used as input for the examples in this article. If you just want to see the code, it's available in my [GitHub repository][4]. + +This is sample [pyATS][5] output from a `show ip ospf neighbors` command on a Cisco IOS-XE device: + + +``` +{ +   "parsed": { +      "interfaces": { +          "Tunnel0": { +              "neighbors": { +                  "203.0.113.2": { +                      "address": "198.51.100.2", +                      "dead_time": "00:00:39", +                      "priority": 0, +                      "state": "FULL/  -" +                  } +              } +          }, +          "Tunnel1": { +              "neighbors": { +                  "203.0.113.2": { +                      "address": "192.0.2.2", +                      "dead_time": "00:00:36", +                      "priority": 0, +                      "state": "INIT/  -" +                  } +              } +          } +      } +   } +} +``` + +This document lists various interfaces from a networking device describing the Open Shortest Path First ([OSPF][6]) state of any OSPF neighbor present per interface. The goal is to validate that the state of all these OSPF sessions is good (i.e., **FULL**). + +This goal is visually simple, but if you have a lot of entries, it wouldn't be. Fortunately, as the following examples demonstrate, you can do this at scale with Ansible. + +### 1\. Access a subset of the data + +If you are only interested in a specific branch of the data tree, a reference to its path will take you down the JSON structure hierarchy and allow you to select only that portion of the JSON object. The path is made of dot-separated key names. + +To begin, create a variable (`input`) in Ansible that reads the JSON-formatted message from a file. + +To go two levels down, for example, you need to follow the hierarchy of the key names to that point, which translates to `input.parsed.interfaces`, in this case. `input` is the variable that stores the JSON data, `parsed` the top-level key, and `interfaces` is the subsequent one. In a playbook, this will looks like: + + +``` +\- name: Go down the JSON file 2 levels +  hosts: localhost +  vars: +    input: "{{ lookup('file','output.json') | from_json }}" + +  tasks: +   - name: Create interfaces Dictionary +     set_fact: +       interfaces: "{{ input.parsed.interfaces }}" + +   - name: Print out interfaces +     debug: +       var: interfaces +``` + +It gives the following output: + + +``` +TASK [Print out interfaces] ************************************************************************************************************************************* +ok: [localhost] => { +    "msg": { +        "Tunnel0": { +            "neighbors": { +                "203.0.113.2": { +                    "address": "198.51.100.2", +                    "dead_time": "00:00:39", +                    "priority": 0, +                    "state": "FULL/  -" +                } +            } +        }, +        "Tunnel1": { +            "neighbors": { +                "203.0.113.2": { +                    "address": "192.0.2.2", +                    "dead_time": "00:00:36", +                    "priority": 0, +                    "state": "INIT/  -" +                } +            } +        } +    } +} +``` + +The view hasn't changed much; you only trimmed the edges. Baby steps! + +### 2\. Flatten out the content + +If the previous output doesn't help or you want a better understanding of the data hierarchy, you can produce a more compact output with the `to_paths` filter: + + +``` +\- name: Print out flatten interfaces input +  debug: +    msg: "{{ lookup('ansible.utils.to_paths', interfaces) }}" +``` + +This will print out as: + + +``` +TASK [Print out flatten interfaces input] *********************************************************************************************************************** +ok: [localhost] => { +    "msg": { +        "Tunnel0.neighbors['203.0.113.2'].address": "198.51.100.2", +        "Tunnel0.neighbors['203.0.113.2'].dead_time": "00:00:39", +        "Tunnel0.neighbors['203.0.113.2'].priority": 0, +        "Tunnel0.neighbors['203.0.113.2'].state": "FULL/  -", +        "Tunnel1.neighbors['203.0.113.2'].address": "192.0.2.2", +        "Tunnel1.neighbors['203.0.113.2'].dead_time": "00:00:36", +        "Tunnel1.neighbors['203.0.113.2'].priority": 0, +        "Tunnel1.neighbors['203.0.113.2'].state": "INIT/  -" +    } +} +``` + +### 3\. Use json_query filter (JMESPath) + +If you are familiar with a JSON query language such as [JMESPath][7], then Ansible's json_query filter is your friend because it is built upon JMESPath, and you can use the same syntax. If this is new to you, there are plenty of JMESPath examples you can learn from in [JMESPath examples][8]. It is a good resource to have in your toolbox. + +Here's how to use it to create a list of the neighbors for all interfaces. The query executed in this is `*.neighbors`: + + +``` +\- name: Create neighbors dictionary (this is now per interface) +  set_fact: +    neighbors: "{{ interfaces | json_query('*.neighbors') }}" + +\- name: Print out neighbors +  debug: +    msg: "{{ neighbors }}" +``` + +Which returns a list you can iterate over: + + +``` +TASK [Print out neighbors] ************************************************************************************************************************************** +ok: [localhost] => { +    "msg": [ +        { +            "203.0.113.2": { +                "address": "198.51.100.2", +                "dead_time": "00:00:39", +                "priority": 0, +                "state": "FULL/  -" +            } +        }, +        { +            "203.0.113.2": { +                "address": "192.0.2.2", +                "dead_time": "00:00:36", +                "priority": 0, +                "state": "INIT/  -" +            } +        } +    ] +} +``` + +Other options to query JSON are [jq][9] or [Dq][10] (for pyATS). + +### 4\. Access specific data fields + +Now you can go through the list of neighbors in a loop to access individual data. This example is interested in the `state` of each one. Based on the field's value, you can trigger an action. + +This will generate a message to alert the user if the state of a session isn't **FULL**. Typically, you would notify users through mechanisms like email or a chat message rather than just a log entry, as in this example. + +As you loop over the `neighbors` list generated in the previous step, it executes the tasks described in `tasks.yml` to instruct Ansible to print out a **WARNING** message only if the state of the neighbor isn't **FULL** (i.e., `info.value.state is not match("FULL.*")`): + + +``` +\- name: Loop over neighbors +  include_tasks: tasks.yml +  with_items: "{{ neighbors }}" +``` + +The `tasks.yml` file considers `info` as the dictionary item produced for each neighbor in the list you iterate over: + + +``` +\- name: Print out a WARNING if OSPF state is not FULL + debug: +   msg: "WARNING: Neighbor {{ info.key }}, with address {{ info.value.address }} is in state {{ info.value.state[0:4]  }}" + vars: +   info: "{{ lookup('dict', item) }}" + when: info.value.state is not match("FULL.*") +``` + +This produces a custom-generated message with different data fields for each neighbor that isn't operational: + + +``` +TASK [Print out a WARNING if OSPF state is not FULL] ************************************************************************************************************ +ok: [localhost] => { +    "msg": "WARNING: Neighbor 203.0.113.2, with address 192.0.2.2 is in state INIT" +} +``` + +> Note: Filter JSON data in Ansible using [json_query][11]. + +### 5\. Use a JSON schema to validate your data + +A more sophisticated way to validate the data from a JSON message is by using a JSON schema. This gives you more flexibility and a wider array of options to validate different types of data. A schema for this example would need to specify `state` is a `string` that starts with **FULL** if that's the only state you want to be valid (you can access this code in my [GitHub repository][12]): + + +``` +{ + "$schema": "", + "definitions": { +     "neighbor" : { +         "type" : "object", +         "properties" : { +             "address" : {"type" : "string"}, +             "dead_time" : {"type" : "string"}, +             "priority" : {"type" : "number"}, +             "state" : { +                 "type" : "string", +                 "pattern" : "^FULL" +                 } +             }, +         "required" : [ "address","state" ] +     } + }, + "type": "object", + "patternProperties": { +     ".*" : { "$ref" : "#/definitions/neighbor" } + } +} +``` + +As you loop over the neighbors, it reads this schema (`schema.json`) and uses it to validate each neighbor item with the module `validate` and engine `jsonschema`: + + +``` +\- name: Validate state of the neighbor is FULL +  ansible.utils.validate: +    data: "{{ item }}" +    criteria: +     - "{{ lookup('file',  'schema.json') | from_json }}" +    engine: ansible.utils.jsonschema +  ignore_errors: true +  register: result + +\- name: Print the neighbor that does not satisfy the desired state +  ansible.builtin.debug: +    msg: +     - "WARNING: Neighbor {{ info.key }}, with address {{ info.value.address }} is in state {{ info.value.state[0:4] }}" +     - "{{ error.data_path }}, found: {{ error.found }}, expected: {{ error.expected }}" +  when: "'errors' in result" +  vars: +    info: "{{ lookup('dict', item) }}" +    error: "{{ result['errors'][0] }}" +``` + +Save the output of the ones that fail the validation so that you can alert the user with a message: + + +``` +TASK [Validate state of the neighbor is FULL] ******************************************************************************************************************* +fatal: [localhost]: FAILED! => {"changed": false, "errors": [{"data_path": "203.0.113.2.state", "expected": "^FULL", "found": "INIT/  -", "json_path": "$.203.0.113.2.state", "message": "'INIT/  -' does not match '^FULL'", "relative_schema": {"pattern": "^FULL", "type": "string"}, "schema_path": "patternProperties..*.properties.state.pattern", "validator": "pattern"}], "msg": "Validation errors were found.\nAt 'patternProperties..*.properties.state.pattern' 'INIT/  -' does not match '^FULL'. "} +...ignoring + +TASK [Print the neighbor that does not satisfy the desired state] *********************************************************************************************** +ok: [localhost] => { +    "msg": [ +        "WARNING: Neighbor 203.0.113.2, with address 192.0.2.2 is in state INIT", +        "203.0.113.2.state, found: INIT/  -, expected: ^FULL" +    ] +} +``` + +If you'd like a deeper dive: + + * You can find a more elaborated example and references in [Using new Ansible utilities for operational state management and remediation][13]. + * A good resource to practice JSON schema generation is the [JSON Schema Validator and Generator][14]. + * A similar approach is the [Schema Enforcer][15], which lets you create the schema in YAML (helpful if you prefer that syntax). + + + +### Conclusion + +Structured data is friendly for automation, and you can take full advantage of it with Ansible. As you determine your KPIs, you can automate checks on them to give you peace of mind in situations such as before and after a maintenance window. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/process-json-data-ansible + +作者:[Nicolas Leiva][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/nicolas-leiva +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/data_analytics_cloud.png?itok=eE4uIoaB (Net catching 1s and 0s or data in the clouds) +[2]: https://opensource.com/sites/default/files/uploads/data_pixabay.jpg (Magnifying glass looking at 0's and 1's) +[3]: https://pixabay.com/illustrations/window-hand-magnifying-glass-binary-4354467/ +[4]: https://github.com/nleiva/ansible-networking/blob/master/test-json.md#parsing-json-outputs +[5]: https://pypi.org/project/pyats/ +[6]: https://en.wikipedia.org/wiki/Open_Shortest_Path_First +[7]: https://jmespath.org/ +[8]: https://jmespath.org/examples.html +[9]: https://stedolan.github.io/jq/ +[10]: https://pubhub.devnetcloud.com/media/genie-docs/docs/userguide/utils/index.html +[11]: https://blog.networktocode.com/post/ansible-filtering-json-query/ +[12]: https://github.com/nleiva/ansible-networking/blob/master/files/schema.json +[13]: https://www.ansible.com/blog/using-new-ansible-utilities-for-operational-state-management-and-remediation +[14]: https://extendsclass.com/json-schema-validator.html +[15]: https://blog.networktocode.com/post/introducing_schema_enforcer/ From ab701029d4a1dedcf306d30a2104d6e4bcaba5e3 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Thu, 29 Apr 2021 08:04:36 +0800 Subject: [PATCH 022/170] Update 20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md --- ...0210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md b/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md index 825ad149af..116213a55c 100644 --- a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md +++ b/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/ubuntu-21-04-release/) [#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Kevin3599) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 0b8396ba8813ae5394f4d26e5d518c76080d5498 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Thu, 29 Apr 2021 08:17:21 +0800 Subject: [PATCH 023/170] Update 20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md --- ...0210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md b/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md index 116213a55c..825ad149af 100644 --- a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md +++ b/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/ubuntu-21-04-release/) [#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) [#]: collector: (lujun9972) -[#]: translator: (Kevin3599) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From d3010b3912f6c89415b210d504216804a90ad1ef Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Thu, 29 Apr 2021 08:17:54 +0800 Subject: [PATCH 024/170] Update 20210423 What-s New in Ubuntu MATE 21.04.md --- sources/news/20210423 What-s New in Ubuntu MATE 21.04.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md b/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md index ff6ebd416a..7c793ba25c 100644 --- a/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md +++ b/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/ubuntu-mate-21-04-release/) [#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Kevin3599 ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 30318ad708c1c2f15ae1f6d7c92e22658bd29c57 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 29 Apr 2021 08:48:30 +0800 Subject: [PATCH 025/170] translated --- ...lay a fun math game with Linux commands.md | 209 ------------------ ...lay a fun math game with Linux commands.md | 209 ++++++++++++++++++ 2 files changed, 209 insertions(+), 209 deletions(-) delete mode 100644 sources/tech/20210416 Play a fun math game with Linux commands.md create mode 100644 translated/tech/20210416 Play a fun math game with Linux commands.md diff --git a/sources/tech/20210416 Play a fun math game with Linux commands.md b/sources/tech/20210416 Play a fun math game with Linux commands.md deleted file mode 100644 index cbb55f7f4e..0000000000 --- a/sources/tech/20210416 Play a fun math game with Linux commands.md +++ /dev/null @@ -1,209 +0,0 @@ -[#]: subject: (Play a fun math game with Linux commands) -[#]: via: (https://opensource.com/article/21/4/math-game-linux-commands) -[#]: author: (Jim Hall https://opensource.com/users/jim-hall) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Play a fun math game with Linux commands -====== -Play the numbers game from the popular British game show "Countdown" at -home. -![Math formulas in green writing][1] - -Like many people, I've been exploring lots of new TV shows during the pandemic. I recently discovered a British game show called _[Countdown][2]_, where contestants play two types of games: a _words_ game, where they try to make the longest word out of a jumble of letters, and a _numbers_ game, where they calculate a target number from a random selection of numbers. Because I enjoy mathematics, I've found myself drawn to the numbers game. - -The numbers game can be a fun addition to your next family game night, so I wanted to share my own variation of it. You start with a collection of random numbers, divided into "small" numbers from 1 to 10 and "large" numbers that are 15, 20, 25, and so on until 100. You pick any combination of six numbers from both large and small numbers. - -Next, you generate a random "target" number between 200 and 999. Then use simple arithmetic operations with your six numbers to try to calculate the target number using each "small" and "large" number no more than once. You get the highest number of points if you calculate the target number exactly and fewer points if you can get within 10 of the target number. - -For example, if your random numbers were 75, 100, 2, 3, 4, and 1, and your target number was 505, you might say _2+3=5_, _5×100=500_, _4+1=5_, and _5+500=505_. Or more directly: (**2**+**3**)×**100** \+ **4** \+ **1** = **505**. - -### Randomize lists on the command line - -I've found the best way to play this game at home is to pull four "small" numbers from a pool of 1 to 10 and two "large" numbers from multiples of five from 15 to 100. You can use the Linux command line to create these random numbers for you. - -Let's start with the "small" numbers. I want these to be in the range of 1 to 10. You can generate a sequence of numbers using the Linux `seq` command. You can run `seq` a few different ways, but the simplest form is to provide the starting and ending numbers for the sequence. To generate a list from 1 to 10, you might run this command: - - -``` -$ seq 1 10 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -``` - -To randomize this list, you can use the Linux `shuf` ("shuffle") command. `shuf` will randomize the order of whatever you give it, usually a file. For example, if you send the output of the `seq` command to the `shuf` command, you will receive a randomized list of numbers between 1 and 10: - - -``` -$ seq 1 10 | shuf -3 -6 -8 -10 -7 -4 -5 -2 -1 -9 -``` - -To select just four random numbers from a list of 1 to 10, you can send the output to the `head` command, which prints out the first few lines of its input. Use the `-4` option to specify that `head` should print only the first four lines: - - -``` -$ seq 1 10 | shuf | head -4 -6 -1 -8 -4 -``` - -Note that this list is different from the earlier example because `shuf` will generate a random order every time. - -Now you can take the next step to generate the random list of "large" numbers. The first step is to generate a list of possible numbers starting at 15, incrementing by five, until you reach 100. You can generate this list with the Linux `seq` command. To increment each number by five, insert another option for the `seq` command to indicate the _step_: - - -``` -$ seq 15 5 100 -15 -20 -25 -30 -35 -40 -45 -50 -55 -60 -65 -70 -75 -80 -85 -90 -95 -100 -``` - -And just as before, you can randomize this list and select two of the "large" numbers: - - -``` -$ seq 15 5 100 | shuf | head -2 -75 -40 -``` - -### Generate a random number with Bash - -I suppose you could use a similar method to select the game's target number from the range 200 to 999. But the simplest solution to generate a single random value is to use the `RANDOM` variable directly in Bash. When you reference this built-in variable, Bash generates a large random number. To put this in the range of 200 to 999, you need to put the random number into the range 0 to 799 first, then add 200. - -To put a random number into a specific range starting at 0, you can use the **modulo** arithmetic operation. Modulo calculates the _remainder_ after dividing two numbers. If I started with 801 and divided by 800, the result is 1 _with a remainder of_ 1 (the modulo is 1). Dividing 800 by 800 gives 1 _with a remainder of_ 0 (the modulo is 0). And dividing 799 by 800 results in 0 _with a remainder of_ 799 (the modulo is 799). - -Bash supports arithmetic expansion with the `$(( ))` construct. Between the double parentheses, Bash will perform arithmetic operations on the values you provide. To calculate the modulo of 801 divided by 800, then add 200, you would type: - - -``` -$ echo $(( 801 % 800 + 200 )) -201 -``` - -With that operation, you can calculate a random target number between 200 and 999: - - -``` -$ echo $(( RANDOM % 800 + 200 )) -673 -``` - -You might wonder why I used `RANDOM` instead of `$RANDOM` in my Bash statement. In arithmetic expansion, Bash will automatically expand any variables within the double parentheses. You don't need the `$` on the `$RANDOM` variable to reference the value of the variable because Bash will do it for you. - -### Playing the numbers game - -Let's put all that together to play the numbers game. Generate two random "large" numbers, four random "small" values, and the target value: - - -``` -$ seq 15 5 100 | shuf | head -2 -75 -100 -$ seq 1 10 | shuf | head -4 -4 -3 -10 -2 -$ echo $(( RANDOM % 800 + 200 )) -868 -``` - -My numbers are **75**, **100**, **4**, **3**, **10**, and **2**, and my target number is **868**. - -I can get close to the target number if I do these arithmetic operations using each of the "small" and "large" numbers no more than once: - - -``` -10×75 = 750 -750+100 = 850 - -and: - -4×3 = 12 -850+12 = 862 -862+2 = 864 -``` - -That's only four away—not bad! But I found this way to calculate the exact number using each random number no more than once: - - -``` -4×2 = 8 -8×100 = 800 - -and: - -75-10+3 = 68 -800+68 = 868 -``` - -Or I could perform _these_ calculations to get the target number exactly. This uses only five of the six random numbers: - - -``` -4×3 = 12 -75+12 = 87 - -and: - -87×10 = 870 -870-2 = 868 -``` - -Give the _Countdown_ numbers game a try, and let us know how well you did in the comments. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/4/math-game-linux-commands - -作者:[Jim Hall][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/jim-hall -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/edu_math_formulas.png?itok=B59mYTG3 (Math formulas in green writing) -[2]: https://en.wikipedia.org/wiki/Countdown_%28game_show%29 diff --git a/translated/tech/20210416 Play a fun math game with Linux commands.md b/translated/tech/20210416 Play a fun math game with Linux commands.md new file mode 100644 index 0000000000..c4aad23a15 --- /dev/null +++ b/translated/tech/20210416 Play a fun math game with Linux commands.md @@ -0,0 +1,209 @@ +[#]: subject: (Play a fun math game with Linux commands) +[#]: via: (https://opensource.com/article/21/4/math-game-linux-commands) +[#]: author: (Jim Hall https://opensource.com/users/jim-hall) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +用 Linux 命令玩一个有趣的数学游戏 +====== +在家玩流行的英国游戏节目 “Countdown” 中的数字游戏。 +![Math formulas in green writing][1] + +像许多人一样,我在大流行期间探索了许多新的电视节目。我最近发现了一个英国的游戏节目,叫做 _[Countdown][2]_,参赛者在其中玩两种游戏:一种是_单词_游戏,他们试图从杂乱的字母中找出最长的单词;另一种是_数字_游戏,他们从随机选择的数字中计算出一个目标数字。因为我喜欢数学,我发现自己被数字游戏所吸引。 + +数字游戏可以为你的下一个家庭游戏之夜增添乐趣,所以我想分享我自己的变化。你以一组随机数字开始,分为 1 到 10 的“小”数字和 15、20、25 的“大”数字,以此类推,直到 100。你从大数字和小数字中挑选六个数字的任何组合。 + +接下来,你生成一个 200 到 999 之间的随机“目标”数字。然后用你的六个数字进行简单的算术运算,尝试用每个“小”和“大”数字计算出目标数字,但使用不能超过一次。如果你能准确地计算出目标数字,你就能得到最高分,如果距离目标数字 10 以内就得到较低的分数。 + +例如,如果你的随机数是 75、100、2、3、4 和 1,而你的目标数是 505,你可以说 _2+3=5_,_5×100=500_,_4+1=5_,以及 _5+500=505_。或者更直接地:(**2**+**3**)×**100** \+ **4** \+ **1** = **505**. + +### 在命令行中随机化列表 + +我发现在家里玩这个游戏的最好方法是从 1 到 10 的池子里抽出四个“小”数字,从 15 到 100 的 5 的倍数中抽出两个“大”数字。你可以使用 Linux 命令行来为你创建这些随机数。 + +让我们从“小”数字开始。我希望这些数字在 1 到 10 的范围内。你可以使用 Linux 的 `seq` 命令生成一个数字序列。你可以用几种不同的方式运行 `seq`,但最简单的形式是提供序列的起始和结束数字。要生成一个从 1 到 10 的列表,你可以运行这个命令: + +``` +$ seq 1 10 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +``` + +为了随机化这个列表,你可以使用 Linux 的 `shuf`("shuffle")命令。`shuf` 将随机化你给它的东西的顺序,通常是一个文件。例如,如果你把 `seq` 命令的输出发送到 `shuf` 命令,你会收到一个 1 到 10 之间的随机数字列表: + + +``` +$ seq 1 10 | shuf +3 +6 +8 +10 +7 +4 +5 +2 +1 +9 +``` + +要从 1 到 10 的列表中只选择四个随机数,你可以将输出发送到 `head` 命令,它将打印出输入的前几行。使用 `-4` 选项来指定 `head` 只打印前四行: + + +``` +$ seq 1 10 | shuf | head -4 +6 +1 +8 +4 +``` + +注意,这个列表与前面的例子不同,因为 `shuf` 每次都会生成一个随机顺序。 + +现在你可以采取下一步措施来生成”大“数字的随机列表。第一步是生成一个可能的数字列表,从 15 开始,以 5 为单位递增,直到达到 100。你可以用 Linux 的 `seq` 命令生成这个列表。为了使每个数字以 5 为单位递增,在 `seq` 命令中插入另一个选项来表示_步进_: + + +``` +$ seq 15 5 100 +15 +20 +25 +30 +35 +40 +45 +50 +55 +60 +65 +70 +75 +80 +85 +90 +95 +100 +``` + +就像以前一样,你可以随机化这个列表,选择两个”大“数字: + + +``` +$ seq 15 5 100 | shuf | head -2 +75 +40 +``` + +### 用 Bash 生成一个随机数 + +我想你可以用类似的方法从 200 到 999 的范围内选择游戏的目标数字。但是生成单个随机数的最简单的方案是直接在 Bash 中使用 `RANDOM` 变量。当你引用这个内置变量时,Bash 会生成一个大的随机数。要把它放到 200 到 999 的范围内,你需要先把随机数放到 0 到 799 的范围内,然后加上 200。 + +要把随机数放到从 0 开始的特定范围内,你可以使用**模数**算术运算符。模数计算的是两个数字相除后的_余数_。如果我用 801 除以 800,结果是 1,余数是 1(模数是 1)。800 除以 800 的结果是 1,余数是 0(模数是 0)。而用 799 除以 800 的结果是 0,余数是 799(模数是 799)。 + +Bash 通过 `$(())` 结构支持算术扩展。在双括号之间,Bash 将对你提供的数值进行算术运算。要计算 801 除以 800 的模数,然后加上 200,你可以输入: + + + +``` +$ echo $(( 801 % 800 + 200 )) +201 +``` + +通过这个操作,你可以计算出一个 200 到 999 之间的随机目标数: + + +``` +$ echo $(( RANDOM % 800 + 200 )) +673 +``` + +你可能想知道为什么我在 Bash 语句中使用 `RANDOM` 而不是 `$RANDOM`。在算术扩展中, Bash 会自动扩展双括号内的任何变量. 你不需要在 `$RANDOM` 变量上的 `$` 来引用该变量的值, 因为 Bash 会帮你做这件事。 + +### 玩数字游戏 + +让我们把所有这些放在一起,玩玩数字游戏。产生两个随机的”大“数字, 四个随机的”小“数值,以及目标值: + + +``` +$ seq 15 5 100 | shuf | head -2 +75 +100 +$ seq 1 10 | shuf | head -4 +4 +3 +10 +2 +$ echo $(( RANDOM % 800 + 200 )) +868 +``` + +我的数字是 **75**、**100**、**4**、**3**、**10** 和 **2**,而我的目标数字是 **868**。 + +如果我用每个”小“和”大“数字做这些算术运算,并不超过一次,我就能接近目标数字了: + + +``` +10×75 = 750 +750+100 = 850 + +然后: + +4×3 = 12 +850+12 = 862 +862+2 = 864 +``` + +That's only four away—not bad! But I found this way to calculate the exact number using each random number no more than once: +只相差 4 了,不错!但我发现这样可以用每个随机数不超过一次来计算出准确的数字: + + +``` +4×2 = 8 +8×100 = 800 + +然后: + +75-10+3 = 68 +800+68 = 868 +``` + +或者我可以做_这些_计算来准确地得到目标数字。这只用了六个随机数中的五个: + + +``` +4×3 = 12 +75+12 = 87 + +然后: + +87×10 = 870 +870-2 = 868 +``` + +试一试 _Countdown_ 数字游戏,并在评论中告诉我们你做得如何。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/math-game-linux-commands + +作者:[Jim Hall][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jim-hall +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/edu_math_formulas.png?itok=B59mYTG3 (Math formulas in green writing) +[2]: https://en.wikipedia.org/wiki/Countdown_%28game_show%29 From 57ed7376693c95b8d2d3c93f950564753f35d095 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 29 Apr 2021 08:53:05 +0800 Subject: [PATCH 026/170] tanslating --- sources/tech/20210427 Fedora Linux 34 is officially here.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210427 Fedora Linux 34 is officially here.md b/sources/tech/20210427 Fedora Linux 34 is officially here.md index bf9d38fb2b..f7b4396726 100644 --- a/sources/tech/20210427 Fedora Linux 34 is officially here.md +++ b/sources/tech/20210427 Fedora Linux 34 is officially here.md @@ -2,7 +2,7 @@ [#]: via: (https://fedoramagazine.org/announcing-fedora-34/) [#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From ab1dfd028e9482383b338d03c680fee9b8833631 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Apr 2021 09:48:40 +0800 Subject: [PATCH 027/170] PRF @geekpi --- ...e App With Variety of Sounds to Stay Focused.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md b/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md index 146a292ad9..17c011e7c3 100644 --- a/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md +++ b/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md @@ -3,14 +3,16 @@ [#]: author: (Ankush Das https://itsfoss.com/author/ankush/) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) Blanket:拥有各种环境噪音的应用,帮助保持注意力集中 ====== -_**简介:一个开源的环境噪音播放器,提供各种声音,帮助你集中注意力或入睡。**_ +> 一个开源的环境噪音播放器,提供各种声音,帮助你集中注意力或入睡。 + +![](https://img.linux.net.cn/data/attachment/album/202104/29/094813oxcitipetajxjiex.jpg) 随着你周围活动的增加,要保持冷静和专注往往是很困难的。 @@ -44,13 +46,13 @@ flatpak install flathub com.rafaelmardojai.Blanket 如果你是 Flatpak 的新手,你可能想通过我们的 [Flatpak 指南][5]了解。 -如果你不喜欢使用 Flatpaks,你可以使用该项目中的贡献者维护的 PPA 来安装它。对于 Arch Linux 用户,你可以在 [AUR][6] 中找到它,以方便安装。 +如果你不喜欢使用 Flatpak,你可以使用该项目中的贡献者维护的 PPA 来安装它。对于 Arch Linux 用户,你可以在 [AUR][6] 中找到它,以方便安装。 -此外,你还可以找到 Fedora 和 openSUSE 的软件包。要探索所有可用的软件包,你可以前往其 [GitHub 页面][7]。 +此外,你还可以找到 Fedora 和 openSUSE 的软件包。要探索所有现成的软件包,你可以前往其 [GitHub 页面][7]。 ### 结束语 -对于一个简单的环境噪音播放器来说,用户体验是相当好的。我有一副 HyperX Alpha S 耳机,我必须要说声音的质量很好。 +对于一个简单的环境噪音播放器来说,用户体验是相当好的。我有一副 HyperX Alpha S 耳机,我必须要说,声音的质量很好。 换句话说,它听起来很舒缓,如果你想体验环境声音来集中注意力,摆脱焦虑或只是睡着,我建议你试试。 @@ -63,7 +65,7 @@ via: https://itsfoss.com/blanket-ambient-noise-app/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7b733fd694d47a977e6d044192f9f47f9da2cd5c Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Apr 2021 09:50:35 +0800 Subject: [PATCH 028/170] PUB @geekpi https://linux.cn/article-13343-1.html --- ...mbient Noise App With Variety of Sounds to Stay Focused.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md (98%) diff --git a/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md b/published/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md similarity index 98% rename from translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md rename to published/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md index 17c011e7c3..5c9c76d025 100644 --- a/translated/tech/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md +++ b/published/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13343-1.html) Blanket:拥有各种环境噪音的应用,帮助保持注意力集中 ====== From dd8f0a136e6b7319bf9297d35584b348e68cd1c5 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Thu, 29 Apr 2021 10:43:54 +0800 Subject: [PATCH 029/170] Update 20210423 What-s New in Ubuntu MATE 21.04.md --- ...0210423 What-s New in Ubuntu MATE 21.04.md | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md b/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md index 7c793ba25c..34195f0f90 100644 --- a/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md +++ b/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md @@ -7,104 +7,104 @@ [#]: publisher: ( ) [#]: url: ( ) -What’s New in Ubuntu MATE 21.04 +Ubuntu MATE 21.04更新,多项新功能来袭 ====== -Since 18.10, Yaru has been the default user interface. This year, the Yaru team along with the Canonical Design and Ubuntu Desktop Teams joined forces to create a new visual look for Ubuntu MATE 21.04. +自从18.10发行版以来,yaru一直都是Ubuntu的默认用户桌面,今年,Yaru团队与Canonical Design和Ubuntu桌面团队携手合作,为Ubuntu MATE 21.04创建了新的外观界面。 -### What’s New in Ubuntu MATE 21.04? +### Ubuntu21.04有什么新变化? -Here are all the key changes that comes with this release. +以下就是Ubuntu MATE 21.04此次发布中的主要变更 -### MATE Desktop +### MATE桌面 -This time there are no new features but just bug fixes and translation updates. The MATE packaging in Debian has been updated to receive all the new bug fixes and updates. +此次更新的MATE桌面相比以往并没有较大改动,此次更更新只是修复了错误BUG同时更新了语言翻译,Debian中的MATE软件包已经更新,用户可以下载所有的BUG修复和更新。 -### Ayatana Indicators +### Avatana指示器 ![][1] -It is a system that controls the action, layout, behaviour of the panel indicator area that is also known as your system tray. You can now change settings of Ayatana Indicators from Control Center. +这是一个控制面板指示器(也称为系统托盘),面板指示区域也就是您的系统托盘。现在,您可以从控制中心更改Ayatana指示器的设置。 -A new printer indication has been added and RedShift has been removed to maintain stability. +添加了新的打印机标识,并删除了RedShift以保持稳定。 -### Yaru MATE Theme +### Yaru MATE主题 -Yaru MATE is now a derivative of the Yaru theme. Yaru MATE will now be provided with a light and dark theme, the light theme being the default one. This should ensure better application compatibility. +Yaru MATE现在是Yaru主题的派生产品。 Yaru MATE将提供浅色和深色主题,浅色作为默认主题。来确保更好的应用程序兼容性。 -Users will now have access to GTK 2.x, 3.x, 4.x light and dark themes collectively. You can also use Suru icons along with some new icons. +从现在开始,用户可以使用GTK 2.x,3.x,4.x浅色和深色主题。也可以将Suru图标和某些新图标一起使用。 -LibreOffice will have a new Yaru MATE icon theming applied by default. Font contrast has been improved as well. As a result of this, you will find it easier to read tiny texts and/or reading from a distance. +LibreOffice在MATE上会有新的默认桌面图标,字体对比度也得到了改善。您会发现阅读小字体文本或远距离阅读更加容易。 -Websites will now maintain the Dark Mode, if selected, at an Operating System level. To get dark theme in websites along with the rest of your system, just enable the Yaru MATE Dark theme. +网页依旧是深色模式,要在网站以及其他发行版中使用深色主题,只需启用Yaru MATE深色主题即可。 -Windows manager themes for Macro, Metacity, Compiz now have SVG icons. What this means is that if you have a large screen, the icons won’t look pixelated, that’s a subtle but useful addition! +现在,Macro,Metacity和Compiz的管理器主题使用了矢量图标。这意味着,如果您的屏幕较大,图标将不会像素画,又是一个小细节! -### Yaru MATE Snaps +### Yaru MATE 快照 -Although you can’t install Yaru MATE themes right now, you will soon be able to! The gtk-theme-yaru-mate and icon-theme-yaru-mate snaps are pre-installed and ready to be used when you need to connect the themes to compatible snaps. +尽管您现在无法真正安装MATE主题,但是不要着急,它马上就来了!gtk-theme-yaru-mate和icon-theme-yaru-mate快照已经是预安装的,可以在需要将主题连接到兼容快照使用。 -As per the announcement, snapd will automatically connect your theme to compatible snaps soon: +根据官方发布的公告,该功能将很快自动将您的主题连接到兼容的快照: -> `snapd` will soon be able to automatically install snaps of themes that match your currently active theme. The snaps we’ve created are ready to integrate with that capability when it is available. +> 快照功能很快将能够自动安装与您当前主题匹配的主题快照。创建的快照可以随时与该功能集成。 +> +### Mutiny Layout的新变化 -### Mutiny Layout Changes +![Mutiny Layout实装深色主题][2] -![Mutiny Layout with dark Yaru theme applied.][2] +Mutiny布局模仿Unity的桌面布局。删除了MATE Dock Applet,并且对Mutiny Layout进行了优化以使用Plank。Plank主题被系统自动应用。操作是通过Mate Tweak切换到Mutiny Layout。Plank的深色和浅色Yaru主题都包含在内。 -Mutiny layout mimics the desktop layout of Unity. The MATE Dock Applet has been removed and the Mutiny Layout has been optimized to use Plank. Plank theming will be applied automatically. This will be done when switching to Mutiny Layout via Mate Tweak. Both dark and light Yaru themes of Plank are provided. +其他调整和更新使得mutiny在不改变整体风格的前提下具备了更高的可靠性 -Other tweaks and updates have made the Mutiny much more reliability while the look and feel remains the same. +### 主要应用升级 -### Major Application Upgrades - - * Firefox 87 - * LibreOffice 7.1.2.2 - * Evolution 3.40 - * Celluloid 0.20 + * Firefox 87(火狐浏览器) + * LibreOffice 7.1.2.2(办公软件) + * Evolution 3.40(邮件) + * Celluloid 0.20(视频播放器) -### Other Changes +### 其他更改 - * Linux command line fans will appreciate commands like neofetch, htop and inxi being included in the default Ubuntu MATE install. - * A Raspberry Pi 21.04 version will be released soon. - * There are no offline upgrade options in Ubuntu MATE. - * New Plank themes introduced for side and bottom docks that matches with the color scheme of Yaru MATE. - * A clean edge styling is applied to Yaru MATE windows manager for side tiled windows. - * It is available in various colors in Ubuntu MATE Welcome. - * Yaru MATE theme snap and icon theme snap has been published in Snap Store - * Yaru MATE PPA published for users of Ubunut MATE 20.04 LTS. + * Linux命令的忠实用户会喜欢在Ubuntu MATEZ中默认安装的neofetch,htop和inxi之类的命令。 + * 树莓派版本很快将会发布。 + * Ubuntu MATE上没有离线更新选项 + * 针对侧边软件坞和底部软件坞引入了新的Plank主题,使其与Yaru MATE的配色方案相匹配。 + * 简洁的边缘样式已应用于Yaru MATE窗口管理器,用于侧面窗口。 + * 多彩的Ubuntu MATE欢迎界面现在已启用。 + * Yaru MATE主题快照和图标主题快照已在Snap Store中发布 + * 为Ubuntu MATE 20.04 LTS的用户发行了Yaru MATE PPA。 -### Download Ubuntu MATE 21.04 +### 下载Ubuntu MATE 21.04 -You can download the ISO from the official website. +你可以从官网上下载镜像 [Ubuntu MATE 21.04][3] -If you’re curious to learn more about it, [check out the release notes.][4] +如果你对此感兴趣, [请查看发行说明][4] -_Are you excited to try out the new Yaru MATE theme? What do you think? Let us know in the comments below._ +你对尝试Yaru MATE感到兴奋吗?你怎么看?请看评论区。 -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! +#### 大科技网站获得数百万收入! -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. +如果您喜欢我们在这里所做的事情,请考虑捐赠以支持我们的独立出版物。您的支持将帮助我们继续发布专注于桌面Linux和开源软件的内容。 -I'm not interested +我不感兴趣 -#### _Related_ +#### _关联_ - * [Ubuntu 21.04 is Releasing This Week! Take a Look at the New Features][5] - * ![][6] ![Ubuntu 21.04 New Features][7] + * [Ubuntu 21.04本周正在发布!看看新功能][5] + * ![][6] ![Ubuntu 21.04 新特征][7] - * [No GNOME 40 for Ubuntu 21.04 [And That's a Good Thing]][8] - * ![][6] ![No GNOME 40 in Ubuntu 21.04][9] + * [Ubuntu 21.04没有Gnome 40 [这是一件好事]][8] + * ![][6] ![Ubuntu 21.04没有GNOME40][9] - * [Ubuntu 21.04 Beta is Now Available to Download][10] + * [Ubuntu 21.04 Beta 现在已经可以下载了!][10] * ![][6] ![][11] @@ -115,7 +115,7 @@ via: https://news.itsfoss.com/ubuntu-mate-21-04-release/ 作者:[Asesh Basu][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Kevin3599](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cf21526136960408d7e8cda37e884b020af334bf Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Thu, 29 Apr 2021 10:44:38 +0800 Subject: [PATCH 030/170] Rename sources/news/20210423 What-s New in Ubuntu MATE 21.04.md to translated/news/20210423 What-s New in Ubuntu MATE 21.04.md --- .../news/20210423 What-s New in Ubuntu MATE 21.04.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20210423 What-s New in Ubuntu MATE 21.04.md (100%) diff --git a/sources/news/20210423 What-s New in Ubuntu MATE 21.04.md b/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md similarity index 100% rename from sources/news/20210423 What-s New in Ubuntu MATE 21.04.md rename to translated/news/20210423 What-s New in Ubuntu MATE 21.04.md From 83dd06f5a5007c6a5b8d6bd15dd3dd4366eaf49d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Apr 2021 15:00:08 +0800 Subject: [PATCH 031/170] PRF @stevenzdg988 --- ...te open source project management tools.md | 116 ++++++++---------- 1 file changed, 51 insertions(+), 65 deletions(-) diff --git a/translated/tech/20210317 My favorite open source project management tools.md b/translated/tech/20210317 My favorite open source project management tools.md index 36f94cf09f..699eb3a06b 100644 --- a/translated/tech/20210317 My favorite open source project management tools.md +++ b/translated/tech/20210317 My favorite open source project management tools.md @@ -3,141 +3,127 @@ [#]: author: (Frank Bergmann https://opensource.com/users/fraber) [#]: collector: (lujun9972) [#]: translator: (stevenzdg988) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) 我最喜欢的开源项目管理工具 ====== -如果您要管理大型复杂的项目,请尝试利用开源选项替换 Microsoft Project(微软项目管理软件)。 -![看板式组织活动][1] -诸如建造卫星,开发机器人或推出新产品之类的项目都是昂贵的,涉及不同的提供商,并且包含必须跟踪的硬依赖性。 +> 如果你要管理大型复杂的项目,请尝试利用开源选择替换 MS-Project。 -大型项目领域中的项目管理方法非常简单(至少在理论上如此)。您可以创建项目计划并将其拆分为较小的部分,直到您可以合理地将成本,持续时间,资源和依赖性分配给各种活动。一旦项目计划获得负责人的批准,您就可以使用它来跟踪项目的执行情况。在时间轴上绘制项目的所有活动将产生一个称为[Gantt chart(甘特图表)][2]的条形图。 +![](https://img.linux.net.cn/data/attachment/album/202104/29/145942py6qcc3lz1dyt1s6.jpg) -Gantt(甘特)图一直用于[瀑布项目方法][3],也可以被灵活地使用。例如,大型项目可能将 Gantt chart (甘特图)用于 Scrum 冲刺,而忽略其他像用户需求这样的细节,从而嵌入灵活的阶段。其他大型项目可能包括多个产品版本(例如,最低可行产品 [MVP],第二版本,第三版本等)。在这种情况下,上层结构对灵活性友善,用每个阶段计划作为 Gantt chart (甘特图)处理预算和复杂的依赖关系。 +诸如建造卫星、开发机器人或推出新产品之类的项目都是昂贵的,涉及不同的提供商,并且包含必须跟踪的硬依赖性。 + +大型项目领域中的项目管理方法非常简单(至少在理论上如此)。你可以创建项目计划并将其拆分为较小的部分,直到你可以合理地将成本、持续时间、资源和依赖性分配给各种活动。一旦项目计划获得负责人的批准,你就可以使用它来跟踪项目的执行情况。在时间轴上绘制项目的所有活动将产生一个称为[甘特图][2]Gantt chart的条形图。 + +甘特图一直被用于 [瀑布项目方法][3],也可以用于敏捷方法。例如,大型项目可能将甘特图用于 Scrum 冲刺,而忽略其他像用户需求这样的细节,从而嵌入敏捷阶段。其他大型项目可能包括多个产品版本(例如,最低可行产品 [MVP]、第二版本、第三版本等)。在这种情况下,上层结构是一种敏捷方法,而每个阶段都计划为甘特图,以处理预算和复杂的依赖关系。 ### 项目管理工具 -不夸张地说,有数百种可用工具使用 Gantt chart (甘特图)管理大型项目,Microsoft Project(微软项目管理软件)可能是最受欢迎的工具。它是 Microsoft Office(微软办公软件)系列(家族)的一部分,可扩展到成千上万的活动,并且具有众多(难以置信的数量)功能,可支持几乎所有可能的方式来管理项目进度表。对于 Project(微软项目管理软件)并不总是清楚什么更昂贵:软件许可或如何使用该工具的培训课程。 +不夸张地说,有数百种现成的工具使用甘特图管理大型项目,而 MS-Project 可能是最受欢迎的工具。它是微软办公软件家族的一部分,可支持到成千上万的活动,并且有大量的功能,支持几乎所有可以想象到的管理项目进度的方式。对于 MS-Project,有时候你并不知道什么更昂贵:是软件许可证还是该工具的培训课程。 -另一个缺点是 Microsoft Project 是一个独立的桌面应用程序,只有一个人可以更新进度表。如果要多个用户进行协作,则需要购买 Microsoft Project Server,Web 版的 Project(微软项目管理软件) 或 Microsoft Planner 的许可证。 +另一个缺点是 MS-Project 是一个独立的桌面应用程序,只有一个人可以更新进度表。如果要多个用户进行协作,则需要购买微软 Project 服务器、Web 版的 Project 或 Planner 的许可证。 -幸运的是,专有工具还有开源的替代品,包括本文中的应用程序。所有这些都是开源的,并且包括用于安排基于资源和依赖项分层活动的 Gantt (甘特图)。 ProjectLibre,GanttProject 和 TaskJuggler 是单个项目管理的桌面应用程序。ProjeQtOr 和 Redmine 是用于项目团队的 Web 应用程序,而 ]project-open[ 是用于管理整个组织的 Web 应用程序。 +幸运的是,专有工具还有开源的替代品,包括本文中提及的应用程序。所有这些都是开源的,并且包括基于资源和依赖项的分层活动调度的甘特图。ProjectLibre、GanttProject 和 TaskJuggler 都针对单个项目经理的桌面应用程序。ProjeQtOr 和 Redmine 是用于项目团队的 Web 应用程序,而 ]project-open[ 是用于管理整个组织的 Web 应用程序。 -我根据一个单用户计划并跟踪一个大型项目评估了这些工具。我的评估标准包括 Gantt 编辑器功能,Windows,Linux 和 macOS 上的可用性,可扩展性,导入/导出和报告。(完全披露:我是 ]project-open[ 的创始人,并且我在多个开源社区中活跃了很多年。此列表包括我们的产品,因此我的观点可能有偏见,但我尝试着眼于每个产品的最佳功能。) +我根据一个单用户计划和对一个大型项目的跟踪评估了这些工具。我的评估标准包括甘特图编辑器功能、Windows/Linux/macOS 上的可用性、可扩展性、导入/导出和报告。(背景披露:我是 ]project-open[ 的创始人,我在多个开源社区中活跃了很多年。此列表包括我们的产品,因此我的观点可能有偏见,但我尝试着眼于每个产品的最佳功能。) ### Redmine 4.1.0 ![Redmine][4] -(Frank Bergmann, [CC BY-SA 4.0][5]) +[Redmine][6] 是一个基于 Web 的专注于敏捷方法论的项目管理工具。 -[Redmine][6]是一个基于 Web 的专注于灵活原则的项目管理工具。 +其标准安装包括一个甘特图时间轴视图,但缺少诸如调度、拖放、缩进(缩排和凸排)以及资源分配之类的基本功能。你必须单独编辑任务属性才能更改任务树的结构。 -标准安装包括 Gantt (甘特图)时间轴视图,但缺少诸如调度,拖放,缩进(缩排和凸排)以及资源分配之类的基本功能。您必须单独编辑任务属性才能更改任务树的结构。 +Redmine 具有甘特图编辑器插件,但是它们要么已经过时(例如 [Plus Gantt][7]),要么是专有的(例如 [ANKO 甘特图][8])。如果你知道其他开源的甘特图编辑器插件,请在评论中分享它们。 -Redmine 具有 Gantt (甘特图)编辑器插件,但是它们已经过时(例如 [Plus Gantt][7])或专有(例如 [ANKO Gantt 图表][8])。如果您知道其他开源 Gantt 编辑器插件,请在评论中分享它们。 +Redmine 用 Ruby on Rails 框架编写,可用于 Windows、Linux 和 macOS。其核心部分采用 GPLv2 许可证。 -Redmine 用 Ruby 的 Rails 框架编写,可用于 Windows,Linux 和 macOS。该内核已获得 GPLv2 许可。 - - * **最适合:** 使用灵活方法的 IT 团队 - * **独特的销售主张:** 这是 OpenProject 和 EasyRedmine 的最初“上游”父项目。 + * **适合于:** 使用敏捷方法的 IT 团队。 + * **独特卖点:** 这是 OpenProject 和 EasyRedmine 的原始“上游”父项目。 ### ]project-open[ 5.1 ![\]project-open\[][9] -(Frank Bergmann, [CC BY-SA 4.0][5]) +[\]project-open\[][10] 是一个基于 Web 的项目管理系统,从整个组织的角度看类似于企业资源计划enterprise resource planning(ERP)系统。它还可以管理项目档案、预算、发票、销售、人力资源和其他功能领域。有一些不同的变体,如用于管理项目公司的专业服务自动化professional services automation(PSA)、用于管理企业战略项目的项目管理办公室project management office(PMO)和用于管理部门项目的企业项目管理enterprise project management(EPM)。 -[]project-open[][10]是一个基于 Web 的项目管理系统,它具有整个组织的透视图,类似于企业资源计划(ERP)系统。它还可以管理项目档案,预算,发票,销售,人力资源和其他功能领域。存在用于运行项目公司的专业服务自动化(PSA),用于管理企业战略项目的项目管理办公室(PMO)和用于管理部门项目的企业项目管理(EPM)的特定变体。 +]project-open[ 甘特图编辑器包括按等级划分的任务、依赖关系和基于计划工作和分配资源的调度。它不支持资源日历和非人力资源。]project-open[ 系统非常复杂,其 GUI 可能需要刷新。 -Gantt 编辑器包括按等级划分的任务,依赖关系和基于计划的工作和分配资源的计划。它不支持资源日历和非人力资源。]po[ 系统非常复杂,GUI 可能需要刷新。 - -]project-open[ 用 TCL 和 JavaScript 编写,可用于 Windows 和 Linux。 ]po[ 核心已获得 GPLv2 许可,并具有适用于大公司的专有扩展。 - - * **最适合:** 需要大量财务项目报告的中大型项目组织 - * **独特的销售主张:** ]po[ 是运行整个项目公司或部门的集成系统。 +]project-open[ 是用 TCL 和 JavaScript 编写的,可用于 Windows 和 Linux。 ]project-open[ 核心采用 GPLv2 许可证,并具有适用于大公司的专有扩展。 + * **适合于:** 需要大量财务项目报告的大中型项目组织。 + * **独特卖点:** ]project-open[ 是一个综合系统,可以运行整个项目公司或部门。 ### ProjectLibre 1.9.3 ![ProjectLibre][11] -(Frank Bergmann, [CC BY-SA 4.0][5]) - -在开源世界中,[ProjectLibre][12] 可能是最接近 Microsoft Project 的产品。它是一个桌面应用程序,支持所有重要的项目计划功能,包括资源日历,基线和成本管理。它还允许您使用 MS-Project 的文件格式导入和导出计划。 +在开源世界中,[ProjectLibre][12] 可能是最接近 MS-Project 的产品。它是一个桌面应用程序,支持所有重要的项目计划功能,包括资源日历、基线和成本管理。它还允许你使用 MS-Project 的文件格式导入和导出计划。 ProjectLibre 非常适合计划和执行中小型项目。然而,它缺少 MS-Project 中的一些高级功能,并且它的 GUI 并不是最漂亮的。 -ProjectLibre 用 Java 编写,可用于 Windows,Linux 和macOS,并已获得开放源代码通用公共属性(CPAL)许可证。ProjectLibre 团队目前正在专有许可下开发名为 ProjectLibre Cloud 的 Web 产品。 +ProjectLibre 用 Java 编写,可用于 Windows、Linux 和macOS,并在开源的通用公共署名许可证Common Public Attribution License(CPAL)下授权。ProjectLibre 团队目前正在开发一个名为 ProjectLibre Cloud 的 Web 产品,并采用专有许可证。 - * **最适合:** 个人项目经理,负责中小型项目,或者作为没有完整的 MS-Project 许可证的项目成员的查看者 - * **独特的销售主张:** 这是使用开源软件可以最接近 MS-Project。 + * **适合于:** 负责中小型项目的个人项目管理者,或者作为没有完整的 MS-Project 许可证的项目成员的查看器。 + * **独特卖点:** 这是最接近 MS-Project 的开源软件。 ### GanttProject 2.8.11 ![GanttProject][13] -(Frank Bergmann, [CC BY-SA 4.0][5]) +[GanttProject][14] 与 ProjectLibre 类似,它是一个桌面甘特图编辑器,但功能集更为有限。它不支持基线,也不支持非人力资源,并且报告功能比较有限。 -[GanttProject][14] 与 ProjectLibre 类似,但它是桌面 Gantt (甘特图)编辑器,但功能集更为有限。 它不支持基线,也不支持非人力资源,并且报告功能受到更多限制。 +GanttProject 是一个用 Java 编写的桌面应用程序,可在 GPLv3 许可下用于 Windows、Linux 和 macOS。 -GanttProject 是一个用 Java 编写的桌面应用程序,可在 GPLv3 许可下用于 Windows,Linux 和 macOS。 - - * **最适合:** Simple Gantt (甘特图)或学习基于 Gantt 的项目管理技术。 - * **独特的销售主张:** 它支持程序评估和审阅技术([PERT][15])图表以及使用 WebDAV 的协作。 + * **适合于:** 简单的甘特图或学习基于甘特图的项目管理技术。 + * **独特卖点:** 它支持流程评估和审阅技术program evaluation and review technique([PERT][15])图表,并使用 WebDAV 的协作。 ### TaskJuggler 3.7.1 ![TaskJuggler][16] -(Frank Bergmann, [CC BY-SA 4.0][5]) +[TaskJuggler][17] 用于在大型组织中安排多个并行项目,重点是自动解决资源分配冲突(即资源均衡)。 -[TaskJuggler][17]在大型组织中安排多个并行项目,重点是自动解决资源分配冲突(即资源均衡)。 +它不是交互式的甘特图编辑器,而是一个命令行工具,其工作方式类似于一个编译器:它从文本文件中读取任务列表,并生成一系列报告,这些报告根据分配的资源、依赖项、优先级和许多其他参数为每个任务提供最佳的开始和结束时间。它支持多个项目、基线、资源日历、班次和时区,并且被设计为可扩展到具有许多项目和资源的企业场景。 -它不是交互式的 Gantt 编辑器,而是类似于编译器的命令行工具:它从文本文件中读取任务列表,并生成一系列报告,这些报告根据分配的资源,依赖项,优先级和许多其他参数为每个任务提供最佳的开始和结束时间。它支持多个项目,基线,资源日历,班次和时区,并且已设计为可扩展到具有许多项目和资源的企业方案。 +使用特定语法编写 TaskJuggler 输入文件可能超出了普通项目经理的能力。但是,你可以使用 ]project-open[ 作为 TaskJuggler 的图形前端来生成输入,包括缺勤、任务进度和记录的工作时间。当以这种方式使用时,TaskJuggler 就成为了功能强大的假设情景规划器。 -使用特定语法编写 TaskJuggler 输入文件可能超出了普通项目经理的能力。但是,您可以使用 ]project-open[ 作为 TaskJuggler 的图形前端来生成输入,包括缺勤,任务进度和记录的工作时间。当以这种方式使用时,TaskJuggler 成为功能强大的假设情景规划师。 +TaskJuggler 用 Ruby 编写,并且在 GPLv2 许可证下可用于 Windows、Linux 和 macOS。 -TaskJuggler 用 Ruby 编写,并且在 GPLv2 许可下可用于 Windows,Linux 和 macOS。 - - * **最适合:** 由真正的书呆子管理的中大型部门 - * **独特的销售主张:** 它在自动资源均衡方面表现出色。 + * **适合于:** 由真正的技术极客管理的中大型部门。 + * **独特卖点:** 它在自动资源均衡方面表现出色。 ### ProjeQtOr 9.0.4 ![ProjeQtOr][18] -(Frank Bergmann, [CC BY-SA 4.0][5]) +[ProjeQtOr][19] 是适用于 IT 项目的、基于 Web 的项目管理应用程序。除了项目、工单和活动外,它还支持风险、预算、可交付成果和财务文件,以将项目管理的许多方面集成到单个系统中。 -[ProjeQtOr][19] 是适用于 IT 项目的基于 Web 的项目管理应用程序。除项目,工单和活动外,它还支持风险,预算,可交付成果和财务文件,以将项目管理的许多方面集成到单个系统中。 +ProjeQtOr 提供了一个甘特图编辑器,与 ProjectLibre 功能类似,包括按等级划分的任务、依赖关系以及基于计划工作和分配资源。但是,它不支持取值的就地编辑(例如,任务名称、估计时间等);用户必须在甘特图视图下方的输入表单中更改取值,然后保存。 -ProjeQtOr 为 Gantt 编辑器提供了与 ProjectLibre 类似的功能集,包括按等级划分的任务,依赖关系以及基于计划工作和分配资源。但是,它不支持值的就地编辑(例如,任务名称,估计时间等);用户必须在 Gantt 视图下方的输入表单中更改值,然后保存值。 +ProjeQtOr 用 PHP 编写,并且在 Affero GPL3 许可下可用于 Windows、Linux 和 macOS。 -ProjeQtOr 用 PHP 编写,并且在 Affero GPL3 许可下可用于 Windows,Linux 和 macOS。 - - * **最适合:** IT 部门跟踪项目列表 - * **独特的销售主张:** 让您为每个项目存储大量信息,将所有信息保存在一个地方。 + * **适合于:** 跟踪项目列表的 IT 部门。 + * **独特卖点:** 让你为存储每个项目的大量信息,将所有信息保存在一个地方。 ### 其他工具 -对于特定的用例,以下系统可能是有效的选项,但由于各种原因,它们被排除在主列表之外。 +对于特定的用例,以下系统可能是有效的选择,但由于各种原因,它们被排除在主列表之外。 ![LIbrePlan][20] -(Frank Bergmann, [CC BY-SA 4.0][5]) + * [LibrePlan][21] 是一个基于 Web 的项目管理应用程序,专注于甘特图。由于其功能集,它本来会在上面的列表中会占主导地位,但是没有可用于最新 Linux 版本(CentOS 7 或 8)的安装。作者说,更新的说明将很快推出。 + * [dotProject][22] 是一个用 PHP 编写的基于 Web 的项目管理系统,可在 GPLv2.x 许可证下使用。它包含一个甘特图时间轴报告,但是没有编辑它的选项,并且依赖项还不起作用(它们“仅部分起作用”)。 + * [Leantime][23] 是一个基于 Web 的项目管理系统,具有漂亮的用 PHP 编写的 GUI,并且可以在 GPLv2 许可证下使用。它包括一个里程碑的甘特时间线,但没有依赖性。 + * [Orangescrum][24] 是基于 Web 的项目管理工具。甘特图图可以作为付费附件或付费订阅使用。 + * [Talaia/OpenPPM][25] 是一个基于 Web 的项目组合管理系统。但是,版本 4.6.1 仍显示“即将推出:交互式甘特图”。 + * [Odoo][26] 和 [OpenProject][27] 都将某些重要功能限制在付费企业版中。 - * [**LibrePlan**][21] 是一个基于 Web 的项目管理应用程序,致力于 Gantt 图。由于其功能集,它在上面的列表中会占主导地位,但是没有可用于最新 Linux 版本(CentOS 7 或 8)的安装。作者说,更新的说明将很快推出。 - * [**dotProject**][22] 是一个用 PHP 编写的基于 Web 的项目管理系统,可在 GPLv2.x 许可下使用。它包含一个 Gantt 时间轴报告,但是没有编辑它的选项,并且依赖项还不起作用(它们“仅部分起作用”)。 - - * [**Leantime**][23] 是一个基于 Web 的项目管理系统,具有漂亮的用 PHP 编写的 GUI,并且可以在 GPLv2 许可下使用。它包括用于时间表的没有依赖关系 Gantt 时间线。 - * [**Orangescrum**][24] 是基于 Web 的项目管理工具。Gantt 图可以作为付费附件或付费订阅使用。 - * [**Talaia/OpenPPM**][25] 是一个基于 Web 的项目组合管理系统。但是,版本 4.6.1 仍显示“即将推出:交互式 Gantt 图”。 - * [**Odoo**][26] 和 [**OpenProject**][27]都将某些重要功能限制在付费企业版中。 - -在这篇评论中,目的是包括所有带有 Gantt 编辑器和依赖调度的开源项目管理系统。如果我错过了一个项目或歪曲了一些东西,请在评论中让我知道。 +在这篇评论中,目的是包括所有带有甘特图编辑器和依赖调度的开源项目管理系统。如果我错过了一个项目或误导了什么,请在评论中让我知道。 -------------------------------------------------------------------------------- @@ -146,7 +132,7 @@ via: https://opensource.com/article/21/3/open-source-project-management 作者:[Frank Bergmann][a] 选题:[lujun9972][b] 译者:[stevenzdg988](https://github.com/stevenzdg988) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 39d757fb1f00bd9063c0bd7914f81b568916ad69 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 29 Apr 2021 15:01:38 +0800 Subject: [PATCH 032/170] PUB @stevenzdg988 https://linux.cn/article-13344-1.html --- ...210317 My favorite open source project management tools.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210317 My favorite open source project management tools.md (99%) diff --git a/translated/tech/20210317 My favorite open source project management tools.md b/published/20210317 My favorite open source project management tools.md similarity index 99% rename from translated/tech/20210317 My favorite open source project management tools.md rename to published/20210317 My favorite open source project management tools.md index 699eb3a06b..e52c2a9a92 100644 --- a/translated/tech/20210317 My favorite open source project management tools.md +++ b/published/20210317 My favorite open source project management tools.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (stevenzdg988) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13344-1.html) 我最喜欢的开源项目管理工具 ====== From 485d0c39f95ec4cac58686aa6453b3463d163a38 Mon Sep 17 00:00:00 2001 From: wyxplus <32919297+wyxplus@users.noreply.github.com> Date: Thu, 29 Apr 2021 16:31:02 +0800 Subject: [PATCH 033/170] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ool to spy on your DNS queries- dnspeep.md | 125 +++++++++--------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md b/sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md index 15d1cad2b8..5d1dd31915 100644 --- a/sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md +++ b/sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md @@ -7,18 +7,19 @@ [#]: publisher: ( ) [#]: url: ( ) -A tool to spy on your DNS queries: dnspeep +监控你所进行 DNS 查询的工具:dnspeep ====== -Hello! Over the last few days I made a little tool called [dnspeep][1] that lets you see what DNS queries your computer is making, and what responses it’s getting. It’s about [250 lines of Rust right now][2]. -I’ll talk about how you can try it, what it’s for, why I made it, and some problems I ran into while writing it. +你好啊!在过去的几天中,我编写了一个叫作 [dnspeep][1] 的小工具,它能让你看到你电脑中正进行的 DNS 查询,并且还能看得到其响应。现在只需 [250 行 Rust 代码][2] 即可实现。 -### how to try it +我将讨论你如何去尝试它、能做什么、为什么我要编写它,以及当我在开发时所遇到的问题。 -I built some binaries so you can quickly try it out. +### 如何尝试 -For Linux (x86): +我构建了一些二进制文件,因此你可以快速尝试一下。 + +对于 Linux(x86): ``` wget https://github.com/jvns/dnspeep/releases/download/v0.1.0/dnspeep-linux.tar.gz @@ -26,7 +27,7 @@ tar -xf dnspeep-linux.tar.gz sudo ./dnspeep ``` -For Mac: +对于 Mac: ``` wget https://github.com/jvns/dnspeep/releases/download/v0.1.0/dnspeep-macos.tar.gz @@ -34,13 +35,13 @@ tar -xf dnspeep-macos.tar.gz sudo ./dnspeep ``` -It needs to run as root because it needs access to all the DNS packets your computer is sending. This is the same reason `tcpdump` needs to run as root – it uses `libpcap` which is the same library that tcpdump uses. +它需要以超级用户root身份运行,因为它需要访问计算机正在发送的所有 DNS 数据包。 这与 `tcpdump` 需要以超级身份运行的原因相同——它使用 `libpcap`,这与 tcpdump 使用的库相同。 -You can also read the source and build it yourself at if you don’t want to just download binaries and run them as root :). +如果你不想下载二进制文件在超级用户下运行,你也能在 查看源码并且自行编译。 -### what the output looks like +### 输出结果是什么样的 -Here’s what the output looks like. Each line is a DNS query and the response. +以下是输出结果。每行都是一次 DNS 查询和响应。 ``` $ sudo dnspeep @@ -50,94 +51,92 @@ AAAA firefox.com 192.168.1.1 NOERROR A bolt.dropbox.com 192.168.1.1 CNAME: bolt.v.dropbox.com, A: 162.125.19.131 ``` -Those queries are from me going to `neopets.com` in my browser, and the `bolt.dropbox.com` query is because I’m running a Dropbox agent and I guess it phones home behind the scenes from time to time because it needs to sync. +这些查询是来自于我打算在浏览器中访问 `neopets.com`,而 `bolt.dropbox.com` 查询是因为我正在运行 Dropbox 代理,并且我猜它不时会在后台运行,因为其需要同步。 -### why make another DNS tool? +### 为什么我要再开发一个 DNS 工具? -I made this because I think DNS can seem really mysterious when you don’t know a lot about it! +之所以这样做,是因为我认为当你不太了解 DNS 时,DNS 似乎真的很神秘! -Your browser (and other software on your computer) is making DNS queries all the time, and I think it makes it seem a lot more “real” when you can actually see the queries and responses. +你的浏览器(和其他在你电脑上的软件)始终在进行 DNS 查询,我认为当你能真正看到请求和响应时,似乎会有更多的真实感。 -I also wrote this to be used as a debugging tool. I think the question “is this a DNS problem?” is harder to answer than it should be – I get the impression that when trying to check if a problem is caused by DNS people often use trial and error or guess instead of just looking at the DNS responses that their computer is getting. -### you can see which software is “secretly” using the Internet +我也把其当做一个调试工具。我想“这是 DNS 的问题?”的时候,往往很难回答。我得到的印象是,当尝试检查问题是否由 DNS 引起时,人们经常使用试错法或猜测,而不是仅仅查看计算机所获得的 DNS 响应。 -One thing I like about this tool is that it gives me a sense for what programs on my computer are using the Internet! For example, I found out that something on my computer is making requests to `ping.manjaro.org` from time to time for some reason, probably to check I’m connected to the internet. -A friend of mine actually discovered using this tool that he had some corporate monitoring software installed on his computer from an old job that he’d forgotten to uninstall, so you might even find something you want to remove. +### 你可以使用互联网查看“秘密”使用的软件 -### tcpdump is confusing if you’re not used to it +我喜欢该工具的一方面是,它给我在我电脑上的程序正使用互联网的感觉!例如,我发现在我电脑上,某些软件正因为某些理由不断地发送请求到 `ping.manjaro.org`,可能是检查我是否已经连上互联网了。 -My first instinct when trying to show people the DNS queries their computer is making was to say “well, use tcpdump”! And `tcpdump` does parse DNS packets! -For example, here’s what a DNS query for `incoming.telemetry.mozilla.org.` looks like: +实际上,我的一个朋友使用该工具发现,他的电脑上安装了一些公司监控软件,这些软件是他在以前的工作中安装的,但是他忘记卸载了,因此你甚至可能发现一些你想要移动的东西。 +### 如果你不习惯 tcpdump,则会感到困惑 + +当试图向人们展示 DNS 查询他们的计算机时,我的第一感是想“好吧,使用 tcpdump”!而且 `tcpdump` 可以解析 DNS 数据包! + +例如,下方是一次对 `incoming.telemetry.mozilla.org.` 的 DNS 查询结果: ``` 11:36:38.973512 wlp3s0 Out IP 192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? incoming.telemetry.mozilla.org. (48) 11:36:38.996060 wlp3s0 In IP 192.168.1.1.53 > 192.168.1.181.42281: 56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 35.244.247.133 (180) ``` -This is definitely possible to learn to read, for example let’s break down the query: +绝对可以学习阅读,例如,让我们分解一下查询: `192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? incoming.telemetry.mozilla.org. (48)` - * `A?` means it’s a DNS **query** of type A - * `incoming.telemetry.mozilla.org.` is the name being qeried - * `56271` is the DNS query’s ID - * `192.168.1.181.42281` is the source IP/port - * `192.168.1.1.53` is the destination IP/port - * `(48)` is the length of the DNS packet + * `A?` 意味着这是一次 A 类的 DNS **查询** + * `incoming.telemetry.mozilla.org.` 是被查询的名称 + * `56271` 是 DNS 查询的 ID + * `192.168.1.181.42281` 是源 IP/端口 + * `192.168.1.1.53` 是目的 IP/端口 + * `(48)` 是 DNS 报文长度 - - -And in the response breaks down like this: +在响应报文中,我们可以这样分解: `56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 35.244.247.133 (180)` - * `3/0/0` is the number of records in the response: 3 answers, 0 authority, 0 additional. I think tcpdump will only ever print out the answer responses though. - * `CNAME telemetry-incoming.r53-2.services.mozilla.com`, `CNAME prod.data-ingestion.prod.dataops.mozgcp.net.`, and `A 35.244.247.133` are the three answers - * `56271` is the responses ID, which matches up with the query’s ID. That’s how you can tell it’s a response to the request in the previous line. + * `3/0/0` 是在响应报文中的记录数:3 个回答, 0 个授权, 0 个附加。我认为 tcpdump 甚至只打印出回答响应报文。 + * `CNAME telemetry-incoming.r53-2.services.mozilla.com`, `CNAME prod.data-ingestion.prod.dataops.mozgcp.net.` 和 `A 35.244.247.133` 是三个响应方。 + * `56271` 是响应报文 ID,和查询报文的 ID 相对应。这便是你能在前一行分辨出对于请求报文的响应报文。 +我认为,这种格式最难处理的原因(作为一个只想查看一些 DNS 流量的人)是,你必须手动匹配请求和响应,而且它们并不总是相邻的。这就是计算机擅长的事情! -I think what makes this format the most difficult to deal with (as a human who just wants to look at some DNS traffic) though is that you have to manually match up the requests and responses, and they’re not always on adjacent lines. That’s the kind of thing computers are good at! +因此,我决定编写一个小程序(`dnspeep`)来进行匹配,并删除一些我认为多余的信息。 -So I decided to write a little program (`dnspeep`) which would do this matching up and also remove some of the information I felt was extraneous. +### 当编写时我所遇到的问题 -### problems I ran into while writing it +在撰写本文时,我遇到了一些问题。 -When writing this I ran into a few problems. + * 我必须修补 `pcap` 包,使其能在 Tokio 和 Mac 的操作系统上正常工作([此更改][3])。这是需要花费大量时间找出并修复一行的错误之一。 + * 不同的 Linux 发行版似乎有不同的 `libpcap.so` 版本。所以我不能轻易地分发一个 libpcap 动态链接的二进制文件(你可以看到其他人 [在这里][4] 也有同样的问题)。因此,我决定将 libpcap 静态编译到 Linux 上的工具中。但我仍然不太了解如何在 Rust 中正确执行此操作,但我知道如何让它运行,将 `libpcap.a` 文件拷贝到 `target/release/deps` 目录下,然后运行 `cargo build`。 + * 我使用的 `dns_parser` 不支持所有 DNS 查询类型,只支持最常见的。我可能需要更换一个不同的工具包来解析 DNS 数据包,但目前为止还没有找到合适的。 + * 因为 `pcap` 接口只提供原始字节(包括以太网帧),所以我需要 [编写代码来计算从一开始要剥离多少字节才能获得数据包的 IP 报头][5]。我很肯定我还遗漏了某些点。 - * I had to patch the `pcap` crate to make it work properly with Tokio on Mac OS ([this change][3]). This was one of those bugs which took many hours to figure out and 1 line to fix :) - * Different Linux distros seem to have different versions of `libpcap.so`, so I couldn’t easily distribute a binary that dynamically links libpcap (you can see other people having the same problem [here][4]). So I decided to statically compile libpcap into the tool on Linux. I still don’t really know how to do this properly in Rust, but I got it to work by copying the `libpcap.a` file into `target/release/deps` and then just running `cargo build`. - * The `dns_parser` crate I’m using doesn’t support all DNS query types, only the most common ones. I probably need to switch to a different crate for parsing DNS packets but I haven’t found the right one yet. - * Becuase the `pcap` interface just gives you raw bytes (including the Ethernet frame), I needed to [write code to figure out how many bytes to strip from the beginning to get the packet’s IP header][5]. I’m pretty sure there are some cases I’m still missing there. +我对于取名也有过一段艰难的时光,因为已经有许多 DNS 工具了(dnsspy!dnssnoop!dnssniff!dnswatch!)我基本上只是查了下有关“监听”的每个同义词,然后选择了一个看起来很有趣并且还没有被其他 DNS 工具所占用的名称。 + +该程序没有做的一件事就是告诉你哪个进程进行了 DNS 查询,我发现有一个名为 [dnssnoop][6] 的工具可以做到这一点。它使用 eBPF,看上去很酷,但我还没有尝试过。 + +### 可能会有许多 bug + +我仅仅简单的在 Linux 和 Mac 上测试,并且我已知至少一个 bug(因为其不支持足够多的 DNS 查询类型),所以请在遇到问题时告知我! + +尽管这个 bug 没什么危害,因为这 libpcap 接口是只读的。所以可能发生的最糟糕的事情是它得到一些它无法解析的输入,最后打印出错误或是崩溃。 +### 编写小型教育工具很有趣 -I also had a hard time naming it because there are SO MANY DNS tools already (dnsspy! dnssnoop! dnssniff! dnswatch!). I basically just looked at every synonym for “spy” and then picked one that seemed fun and did not already have a DNS tool attached to it. +最近,我对编写小型教育的 DNS 工具十分感兴趣。 -One thing this program doesn’t do is tell you which process made the DNS query, there’s a tool called [dnssnoop][6] I found that does that. It uses eBPF and it looks cool but I haven’t tried it. +到目前为止我所编写的工具: -### there are probably still lots of bugs + * (一种进行 DNS 查询的简单方法) + * (向你显示在进行 DNS 查询时内部发生的情况) + * 本工具(`dnspeep`) + -I’ve only tested this briefly on Linux and Mac and I already know of at least one bug (caused by not supporting enough DNS query types), so please report problems you run into! +以前我尽力阐述现存工具(如 `dig` 或 `tcpdump`)而不是编写自己的工具,但是经常我发现这些工具的输出结果让人费解,所以我非常关注以更加友好的方式来看这些相同的信息,以至于每个人都能明白他们电脑正在进行的 DNS 查询,来替换 tcmdump。 -The bugs aren’t dangerous though – because the libpcap interface is read-only the worst thing that can happen is that it’ll get some input it doesn’t understand and print out an error or crash. - -### writing small educational tools is fun - -I’ve been having a lot of fun writing small educational DNS tools recently. - -So far I’ve made: - - * (a simple way to make DNS queries) - * (shows you exactly what happens behind the scenes when you make a DNS query) - * this tool (`dnspeep`) - - - -Historically I’ve mostly tried to explain existing tools (like `dig` or `tcpdump`) instead of writing my own tools, but often I find that the output of those tools is confusing, so I’m interested in making more friendly ways to see the same information so that everyone can understand what DNS queries their computer is making instead of just tcpdump wizards :). -------------------------------------------------------------------------------- @@ -145,7 +144,7 @@ via: https://jvns.ca/blog/2021/03/31/dnspeep-tool/ 作者:[Julia Evans][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[wyxplus](https://github.com/wyxplus) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c2d8dc59e281c90fb8c413251e445facf8ff08f7 Mon Sep 17 00:00:00 2001 From: wyxplus <32919297+wyxplus@users.noreply.github.com> Date: Thu, 29 Apr 2021 16:31:43 +0800 Subject: [PATCH 034/170] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 路径更改 --- .../tech/20210331 A tool to spy on your DNS queries- dnspeep.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210331 A tool to spy on your DNS queries- dnspeep.md (100%) diff --git a/sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md b/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md similarity index 100% rename from sources/tech/20210331 A tool to spy on your DNS queries- dnspeep.md rename to translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md From 7fbf05744511474fd4b4692bcccd8ce8fc189eb4 Mon Sep 17 00:00:00 2001 From: wyxplus <32919297+wyxplus@users.noreply.github.com> Date: Thu, 29 Apr 2021 16:35:32 +0800 Subject: [PATCH 035/170] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20210428 Share files between Linux and Windows computers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210428 Share files between Linux and Windows computers.md b/sources/tech/20210428 Share files between Linux and Windows computers.md index 8ba6282397..1a0de1a9fa 100644 --- a/sources/tech/20210428 Share files between Linux and Windows computers.md +++ b/sources/tech/20210428 Share files between Linux and Windows computers.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/share-files-linux-windows) [#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wyxplus) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 5812bd3f75c127aa4c943365e14cb5d50186ba83 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 30 Apr 2021 05:02:58 +0800 Subject: [PATCH 036/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210429=20?= =?UTF-8?q?Linux=20tips=20for=20using=20GNU=20Screen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210429 Linux tips for using GNU Screen.md --- ...0210429 Linux tips for using GNU Screen.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 sources/tech/20210429 Linux tips for using GNU Screen.md diff --git a/sources/tech/20210429 Linux tips for using GNU Screen.md b/sources/tech/20210429 Linux tips for using GNU Screen.md new file mode 100644 index 0000000000..fdc7462bd0 --- /dev/null +++ b/sources/tech/20210429 Linux tips for using GNU Screen.md @@ -0,0 +1,97 @@ +[#]: subject: (Linux tips for using GNU Screen) +[#]: via: (https://opensource.com/article/21/4/gnu-screen-cheat-sheet) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Linux tips for using GNU Screen +====== +Learn the basics of terminal multiplexing with GNU Screen, then download +our cheat sheet so you always have the essential shortcuts at hand. +![Terminal command prompt on orange background][1] + +To the average user, a terminal window can be baffling and cryptic. But as you learn more about the Linux terminal, it doesn't take long before you realize how efficient and powerful it is. It also doesn't take long for you to want it to be even _more_ efficient, though, and what better way to make your terminal better than to put more terminals into your terminal? + +### Terminal multiplexing + +One of the many advantages to the terminal is that it's a centralized interface with centralized controls. It's one window that affords you access to hundreds of applications, and all you need to interact with each one of them is a keyboard. But modern computers almost always have processing power to spare, and modern computerists love to multitask, so one window for hundreds of applications can be pretty limiting. + +A common answer for this flaw is terminal multiplexing: the ability to layer virtual terminal windows on top of one another and then move between them all. With a multiplexer, you retain your centralized control, but you gain the ability to swap out the interface as you multitask. Better yet, you can split your virtual screens within your terminal so you can have multiple screens up at the same time. + +### Choose the right multiplexer + +Some terminals offer similar features, with tabbed interfaces and split views, but there are subtle differences. First of all, these terminals' features depend on a graphical desktop environment. Second, many graphical terminal features require mouse interaction or use inconvenient keyboard shortcuts. A terminal multiplexer's features work just as well in a text console as on a graphical desktop, and the keybindings are conveniently designed around common terminal sequences. + +There are two popular multiplexers: [tmux][2] and [GNU Screen][3]. They do the same thing and mostly have the same features, although the way you interact with each is slightly different. This article is a getting-started guide for GNU Screen. For information about tmux, read Kevin Sonney's [introduction to tmux][4]. + +### Using GNU Screen + +GNU Screen's basic usage is simple. Launch it with the `screen` command, and you're placed into the zeroeth window in a Screen session. You may hardly notice anything's changed until you decide you need a new prompt. + +When one terminal window is occupied with an activity (for instance, you've launched a text editor like [Vim][5] or [Jove][6], or you're processing video or audio, or running a batch job), you can just open a new one. To open a new window, press **Ctrl+A**, release, and then press **c**. This creates a new window on top of your existing window. + +You'll know you're in a new window because your terminal appears to be clear of anything aside from its default prompt. Your other terminal still exists, of course; it's just hiding behind the new one. To traverse through your open windows, press **Ctrl+A**, release, and then **n** for _next_ or **p** for _previous_. With just two windows open, **n** and **p** functionally do the same thing, but you can always open more windows (**Ctrl+A** then **c**) and walk through them. + +### Split screen + +GNU Screen's default behavior is more like a mobile device screen than a desktop: you can only see one window at a time. If you're using GNU Screen because you love to multitask, being able to focus on only one window may seem like a step backward. Luckily, GNU Screen lets you split your terminal into windows within windows. + +To create a horizontal split, press **Ctrl+A** and then **s**. This places one window above another, just like window panes. The split space is, however, left unpurposed until you tell it what to display. So after creating a split, you can move into the split pane with **Ctrl+A** and then **Tab**. Once there, use **Ctrl+A** then **n** to navigate through all your available windows until the content you want to be displayed is in the split pane. + +You can also create vertical splits with **Ctrl+A** then **|** (that's a pipe character, or the **Shift** option of the **\** key on most keyboards). + +### Make GNU Screen your own + +GNU Screen uses shortcuts based around **Ctrl+A**. Depending on your habits, this can either feel very natural or be supremely inconvenient because you use **Ctrl+A** to move to the beginning of a line anyway. Either way, GNU Screen permits all manner of customization through the `.screenrc` configuration file. You can change the trigger keybinding (called the "escape" keybinding) with this: + + +``` +`escape ^jJ` +``` + +You can also add a status line to help you keep yourself oriented during a Screen session: + + +``` +# status bar, with current window highlighted +hardstatus alwayslastline +hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]' +  +# enable 256 colors +attrcolor b ".I" +termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' +defbce on +``` + +Having an always-on reminder of what window has focus activity and which windows have background activity is especially useful during a session with multiple windows open. It's a sort of task manager for your terminal. + +### Download the cheat sheet + +When you're learning GNU Screen, you'll have a lot of new keyboard commands to remember. Some you'll remember right away, but the ones you use less often might be difficult to keep track of. You can always access a Help screen within GNU Screen with **Ctrl+A** then **?**, but if you prefer something you can print out and keep by your keyboard, **[download our GNU Screen cheat sheet][7]**. + +Learning GNU Screen is a great way to increase your efficiency and alacrity with your favorite [terminal emulator][8]. Give it a try! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/gnu-screen-cheat-sheet + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/terminal_command_linux_desktop_code.jpg?itok=p5sQ6ODE (Terminal command prompt on orange background) +[2]: https://github.com/tmux/tmux/wiki +[3]: https://www.gnu.org/software/screen/ +[4]: https://opensource.com/article/20/1/tmux-console +[5]: https://opensource.com/tags/vim +[6]: https://opensource.com/article/17/1/jove-lightweight-alternative-vim +[7]: https://opensource.com/downloads/gnu-screen-cheat-sheet +[8]: https://opensource.com/article/21/2/linux-terminals From 96a482fd80ef94d70fdad248971dd8740ea71a09 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 30 Apr 2021 05:03:11 +0800 Subject: [PATCH 037/170] add done: 20210429 Linux tips for using GNU Screen.md --- ...o create your first Quarkus application.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20210428 How to create your first Quarkus application.md diff --git a/sources/tech/20210428 How to create your first Quarkus application.md b/sources/tech/20210428 How to create your first Quarkus application.md new file mode 100644 index 0000000000..ea9a77e73b --- /dev/null +++ b/sources/tech/20210428 How to create your first Quarkus application.md @@ -0,0 +1,99 @@ +[#]: subject: (How to create your first Quarkus application) +[#]: via: (https://opensource.com/article/21/4/quarkus-tutorial) +[#]: author: (Saumya Singh https://opensource.com/users/saumyasingh) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +How to create your first Quarkus application +====== +The Quarkus framework is considered the rising star for +Kubernetes-native Java. +![woman on laptop sitting at the window][1] + +Programming languages and frameworks continuously evolve to help developers who want to develop and deploy applications with even faster speeds, better performance, and lower footprint. Engineers push themselves to develop the "next big thing" to satisfy developers' demands for faster deployments. + +[Quarkus][2] is the latest addition to the Java world and considered the rising star for Kubernetes-native Java. It came into the picture in 2019 to optimize Java and commonly used open source frameworks for cloud-native environments. With the Quarkus framework, you can easily go serverless with Java. This article explains why this open source framework is grabbing lots of attention these days and how to create your first Quarkus app. + +## What is Quarkus? + +Quarkus reimagines the Java stack to give the performance characteristics and developer experience needed to create efficient, high-speed applications. It is a container-first and cloud-native framework for writing Java apps. + +You can use your existing skills to code in new ways with Quarkus. It also helps reduce the technical burden in moving to a Kubernetes-centric environment. High-density deployment platforms like Kubernetes need apps with a faster boot time and lower memory usage. Java is still a popular language for developing software but suffers from its focus on productivity at the cost of RAM and CPU. + +In the world of virtualization, serverless, and cloud, many developers find Java is not the best fit for developing cloud-native apps. However, the introduction of Quarkus (also known as "Supersonic and Subatomic Java") helps to resolve these issues. + +## What are the benefits of Quarkus? + +![Quarkus benefits][3] + +(Saumya Singh, [CC BY-SA 4.0][4]) + +Quarkus improves start-up times, execution costs, and productivity. Its main objective is to reduce applications' startup time and memory footprint while providing "developer joy." It fulfills these objectives with native compilation and hot reload features. + +### Runtime benefits + +![How Quarkus uses memory][5] + +(Saumya Singh, [CC BY-SA 4.0][4]) + + * Lowers memory footprint + * Reduces RSS memory, using 10% of the memory needed for a traditional cloud-native stack + * Offers very fast startup + * Provides a container-first framework, as it is designed to run in a container + Kubernetes environment. + * Focuses heavily on making things work in Kubernetes + + + +### Development benefits + +![Developers love Quarkus][6] + +(Saumya Singh, [CC BY-SA 4.0][4]) + + * Provides very fast, live reload during development and coding + * Uses "best of breed" libraries and standards + * Brings specifications and great support + * Unifies and supports imperative and reactive (non-blocking) styles + + + +## Create a Quarkus application in 10 minutes + +Now that you have an idea about why you may want to try Quarkus, I'll show you how to use it. + +First, ensure you have the prerequisites for creating a Quarkus application + + * An IDE like Eclipse, IntelliJ IDEA, VS Code, or Vim + * JDK 8 or 11+ installed with JAVA_HOME configured correctly + * Apache Maven 3.6.2+ + + + +You can create a project with either a Maven command or by using code.quarkus.io. + +### Use a Maven command: + +One of the easiest ways to create a new Quarkus project is to open a terminal and run the following commands, as outlined in the [getting started guide][7].  + +**Linux and macOS users:** + + +``` +mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create \ +    -DprojectGroupId=org.acme \ +    -DprojectArtifactId=getting-started \ +    -DclassName="org.acme.getting.started.GreetingResource" \ +    -Dpath="/hello" +cd getting-started +``` + +**Windows users:** + + * If you are using `cmd`, don't use the backward slash (`\`): [code]`mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DclassName="org.acme.getting.started.GreetingResource" -Dpath="/hello"` +``` +* If you are using PowerShell, wrap `-D` parameters in double-quotes: +``` +`mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create " \ No newline at end of file From 3fb4acceb7a8d5f749188dea6309e984f10e81de Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 30 Apr 2021 05:03:26 +0800 Subject: [PATCH 038/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210429=20?= =?UTF-8?q?Encrypting=20and=20decrypting=20files=20with=20OpenSSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md --- ...pting and decrypting files with OpenSSL.md | 468 ++++++++++++++++++ 1 file changed, 468 insertions(+) create mode 100644 sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md diff --git a/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md b/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md new file mode 100644 index 0000000000..bc5925dcf2 --- /dev/null +++ b/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md @@ -0,0 +1,468 @@ +[#]: subject: (Encrypting and decrypting files with OpenSSL) +[#]: via: (https://opensource.com/article/21/4/encryption-decryption-openssl) +[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Encrypting and decrypting files with OpenSSL +====== +OpenSSL is a practical tool for ensuring your sensitive and secret +messages can't be opened by outsiders. +![A secure lock.][1] + +Encryption is a way to encode a message so that its contents are protected from prying eyes. There are two general types: + + 1. Secret-key or symmetric encryption + 2. Public-key or asymmetric encryption + + + +Secret-key encryption uses the same key for encryption and decryption, while public-key encryption uses different keys for encryption and decryption. There are pros and cons to each method. Secret-key encryption is faster, and public-key encryption is more secure since it addresses concerns around securely sharing the keys. Using them together makes optimal use of each type's strengths. + +### Public-key encryption + +Public-key encryption uses two sets of keys, called a key pair. One is the public key and can be freely shared with anyone you want to communicate with secretly. The other, the private key, is supposed to be a secret and never shared. + +Public keys are used for encryption. If someone wants to communicate sensitive information with you, you can send them your public key, which they can use to encrypt their messages or files before sending them to you. Private keys are used for decryption. The only way you can decrypt your sender's encrypted message is by using your private key. Hence the descriptor "key-pair"; the set of keys goes hand-in-hand. + +### How to encrypt files with OpenSSL + +[OpenSSL][2] is an amazing tool that does a variety of tasks, including encrypting files. This demo uses a Fedora machine with OpenSSL installed. The tool is usually installed by default by most Linux distributions; if not, you can use your package manager to install it: + + +``` +$ cat /etc/fedora-release +Fedora release 33 (Thirty Three) +$ +alice $ openssl version +OpenSSL 1.1.1i FIPS  8 Dec 2020 +alice $ +``` + +To explore file encryption and decryption, imagine two users, Alice and Bob, who want to communicate with each other by exchanging encrypted files using OpenSSL. + +#### Step 1: Generate key pairs + +Before you can encrypt files, you need to generate a pair of keys. You will also need a passphrase, which you must use whenever you use OpenSSL, so make sure to remember it. + +Alice generates her set of key pairs with: + + +``` +`alice $ openssl genrsa -aes128 -out alice_private.pem 1024` +``` + +This command uses OpenSSL's [genrsa][3] command to generate a 1024-bit public/private key pair. This is possible because the RSA algorithm is asymmetric. It also uses aes128, a symmetric key algorithm, to encrypt the private key that Alice generates using genrsa. + +After entering the command, OpenSSL prompts Alice for a passphrase, which she must enter each time she wants to use the keys: + + +``` +alice $ openssl genrsa -aes128 -out alice_private.pem 1024 +Generating RSA private key, 1024 bit long modulus (2 primes) +..........+++++ +..................................+++++ +e is 65537 (0x010001) +Enter pass phrase for alice_private.pem: +Verifying - Enter pass phrase for alice_private.pem: +alice $ +alice $ +alice $ ls -l alice_private.pem +-rw-------. 1 alice alice 966 Mar 22 17:44 alice_private.pem +alice $ +alice $ file alice_private.pem +alice_private.pem: PEM RSA private key +alice $ +``` + +Bob follows the same procedure to create his key pair: + + +``` +bob $ openssl genrsa -aes128 -out bob_private.pem 1024 +Generating RSA private key, 1024 bit long modulus (2 primes) +..................+++++ +............................+++++ +e is 65537 (0x010001) +Enter pass phrase for bob_private.pem: +Verifying - Enter pass phrase for bob_private.pem: +bob $ +bob $ ls -l bob_private.pem +-rw-------. 1 bob bob 986 Mar 22 13:48 bob_private.pem +bob $ +bob $ file bob_private.pem +bob_private.pem: PEM RSA private key +bob $ +``` + +If you are curious about what the key file looks like, you can open the .pem file that the command generated—but all you will see is a bunch of text on the screen: + + +``` +alice $ head alice_private.pem +\-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,E26FAC1F143A30632203F09C259200B9 + +pdKj8Gm5eeAOF0RHzBx8l1tjmA1HSSvy0RF42bOeb7sEVZtJ6pMnrJ26ouwTQnkL +JJjUVPPHoKZ7j4QpwzbPGrz/hVeMXVT/y33ZEEA+3nrobwisLKz+Q+C9TVJU3m7M +/veiBO9xHMGV01YBNeic7MqXBkhIrNZW6pPRfrbjsBMBGSsL8nwJbb3wvHhzPkeM +e+wtt9S5PWhcnGMj3T+2mtFfW6HWpd8Kdp60z7Nh5mhA9+5aDWREfJhJYzl1zfcv +Bmxjf2wZ3sFJNty+sQVajYfk6UXMyJIuWgAjnqjw6c3vxQi0KE3NUNZYO93GQgEF +pyAnN9uGUTBCDYeTwdw8TEzkyaL08FkzLfFbS2N9BDksA3rpI1cxpxRVFr9+jDBz +alice $ +``` + +To view the key's details, you can use the following OpenSSL command to input the .pem file and display the contents. You may be wondering where to find the other key since this is a single file. This is a good observation. Here's how to get the public key: + + +``` +alice $ openssl rsa -in alice_private.pem -noout -text +Enter pass phrase for alice_private.pem: +RSA Private-Key: (1024 bit, 2 primes) +modulus: +    00:bd:e8:61:72:f8:f6:c8:f2:cc:05:fa:07:aa:99: +    47:a6:d8:06:cf:09:bf:d1:66:b7:f9:37:29:5d:dc: +    c7:11:56:59:d7:83:b4:81:f6:cf:e2:5f:16:0d:47: +    81:fe:62:9a:63:c5:20:df:ee:d3:95:73:dc:0a:3f: +    65:d3:36:1d:c1:7d:8b:7d:0f:79🇩🇪80:fc:d2:c0: +    e4:27:fc:e9:66:2d:e2:7e:fc:e6:73:d1:c9:28:6b: +    6a:8a:e8:96:9d:65:a0:8a:46:e0:b8:1f:b0:48:d4: +    db:d4:a3:7f:0d:53:36:9a:7d:2e:e7:d8:f2:16:d3: +    ff:1b:12:af:53:22:c0:41:51 +publicExponent: 65537 (0x10001) + +<< snip >> + +exponent2: +    6e:aa:8c:6e:37:d0:57:37:13:c0:08:7e:75:43:96: +    33:01:99:25:24:75:9c:0b:45:3c:a2:39:44:69:84: +    a4:64:48:f4:5c:bc:40:40:bf:84:b8:f8:0f:1d:7b: +    96:7e:16:00:eb:49:da:6b:20:65:fc:a9:20:d9:98: +    76:ca:59:e1 +coefficient: +    68:9e:2e:fa:a3:a4:72:1d:2b:60:61:11:b1:8b:30: +    6e:7e:2d:f9:79:79:f2:27🆎a0:a0:b6:45:08:df: +    12:f7:a4:3b:d9:df:c5:6e:c7:e8:81:29:07💿7e: +    47:99:5d:33:8c:b7:fb:3b:a9:bb:52:c0:47:7a:1c: +    e3:64:90:26 +alice $ +``` + +#### Step 2: Extract the public keys + +Remember, the public key is the one you can freely share with others, whereas you must keep your private key secret. So, Alice must extract her public key and save it to a file using the following command: + + +``` +alice $ openssl rsa -in alice_private.pem -pubout > alice_public.pem +Enter pass phrase for alice_private.pem: +writing RSA key +alice $ +alice $ ls -l *.pem +-rw-------. 1 alice alice 966 Mar 22 17:44 alice_private.pem +-rw-rw-r--. 1 alice alice 272 Mar 22 17:47 alice_public.pem +alice $ +``` + +You can view the public key details the same way as before, but this time, input the public key .pem file instead: + + +``` +alice $ +alice $ openssl rsa -in alice_public.pem -pubin -text -noout +RSA Public-Key: (1024 bit) +Modulus: +    00:bd:e8:61:72:f8:f6:c8:f2:cc:05:fa:07:aa:99: +    47:a6:d8:06:cf:09:bf:d1:66:b7:f9:37:29:5d:dc: +    c7:11:56:59:d7:83:b4:81:f6:cf:e2:5f:16:0d:47: +    81:fe:62:9a:63:c5:20:df:ee:d3:95:73:dc:0a:3f: +$ +``` + +Bob can follow the same process to extract his public key and save it to a file: + + +``` +bob $ openssl rsa -in bob_private.pem -pubout > bob_public.pem +Enter pass phrase for bob_private.pem: +writing RSA key +bob $ +bob $ ls -l *.pem +-rw-------. 1 bob bob 986 Mar 22 13:48 bob_private.pem +-rw-r--r--. 1 bob bob 272 Mar 22 13:51 bob_public.pem +bob $ +``` + +#### Step 3: Exchange public keys + +These public keys are not much use to Alice and Bob until they exchange them with each other. Several methods are available for sharing public keys, including copying the keys to each other's workstations using the `scp` command. + +To send Alice's public key to Bob's workstation: + + +``` +` alice $ scp alice_public.pem bob@bob-machine-or-ip:/path/` +``` + +To send Bob's public key to Alice's workstation: + + +``` +`bob $ scp bob_public.pem alice@alice-machine-or-ip:/path/` +``` + +Now, Alice has Bob's public key and vice versa: + + +``` +alice $ ls -l bob_public.pem +-rw-r--r--. 1 alice alice 272 Mar 22 17:51 bob_public.pem +alice $ + +[/code] [code] + +bob $ ls -l alice_public.pem +-rw-r--r--. 1 bob bob 272 Mar 22 13:54 alice_public.pem +bob $ +``` + +#### Step 4: Exchange encrypted messages with a public key + +Say Alice needs to communicate secretly with Bob. She writes her secret message in a file and saves it to `top_secret.txt`. Since this is a regular file, anybody can open it and see its contents. There isn't much protection here: + + +``` +alice $ +alice $ echo "vim or emacs ?" > top_secret.txt +alice $ +alice $ cat top_secret.txt +vim or emacs ? +alice $ +``` + +To encrypt this secret message, Alice needs to use the `openssls -encrypt` command. She needs to provide three inputs to the tool: + + 1. The name of the file that contains the secret message + 2. Bob's public key (file) + 3. The name of a file where the encrypted message will be stored + + + + +``` +alice $ openssl rsautl -encrypt -inkey bob_public.pem -pubin -in top_secret.txt -out top_secret.enc +alice $ +alice $ ls -l top_secret.* +-rw-rw-r--. 1 alice alice 128 Mar 22 17:54 top_secret.enc +-rw-rw-r--. 1 alice alice  15 Mar 22 17:53 top_secret.txt +alice $ +alice $ +``` + +After encryption, the original file is still viewable, whereas the newly created encrypted file looks like gibberish on the screen. You can be assured that the secret message has been encrypted: + + +``` +alice $ cat top_secret.txt +vim or emacs ? +alice $ +alice $ cat top_secret.enc +�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��alice $ +alice $ +alice $ +alice $ hexdump -C ./top_secret.enc +00000000  9e 73 12 8f e3 75 4d 29  4d 26 3e bf 80 4e a0 c5  |.s...uM)M&>..N..| +00000010  7d 64 6d 43 79 39 32 23  31 58 ce 71 f3 ba 95 a6  |}dmCy92#1X.q....| +00000020  c0 c0 76 17 fb f7 bf 4d  ce fc 40 e6 f4 45 7f db  |..v....M..@..E..| +00000030  7e ae c0 31 f8 6b 10 06  7e 26 50 55 b5 05 56 68  |~..1.k..~&PU..Vh| +00000040  48 4c eb 40 5e 50 fe 19  ea 28 a8 b8 7a 13 69 d7  |HL.@^P...(..z.i.| +00000050  4d b0 34 70 d8 65 d5 07  95 67 2b 52 ea 31 aa d4  |M.4p.e...g+R.1..| +00000060  80 b3 a8 ec a1 73 ed a7  f9 17 c3 13 d4 fa c1 71  |.....s.........q| +00000070  5f 38 b9 6c 07 72 81 a6  fe af 43 a6 49 2d c4 ee  |_8.l.r....C.I-..| +00000080 +alice $ +alice $ file top_secret.enc +top_secret.enc: data +alice $ +``` + +It's safe to delete the original file with the secret message to remove any traces of it: + + +``` +`alice $ rm -f top_secret.txt` +``` + +Now Alice needs to send this encrypted file to Bob over a network, once again, using the `scp` command to copy the file to Bob's workstation. Remember, even if the file is intercepted, its contents are encrypted, so the contents can't be revealed: + + +``` +`alice $  scp top_secret.enc bob@bob-machine-or-ip:/path/` +``` + +If Bob uses the usual methods to try to open and view the encrypted message, he won't be able to read it: + + +``` +bob $ ls -l top_secret.enc +-rw-r--r--. 1 bob bob 128 Mar 22 13:59 top_secret.enc +bob $ +bob $ cat top_secret.enc +�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��bob $ +bob $ +bob $ hexdump -C top_secret.enc +00000000  9e 73 12 8f e3 75 4d 29  4d 26 3e bf 80 4e a0 c5  |.s...uM)M&>..N..| +00000010  7d 64 6d 43 79 39 32 23  31 58 ce 71 f3 ba 95 a6  |}dmCy92#1X.q....| +00000020  c0 c0 76 17 fb f7 bf 4d  ce fc 40 e6 f4 45 7f db  |..v....M..@..E..| +00000030  7e ae c0 31 f8 6b 10 06  7e 26 50 55 b5 05 56 68  |~..1.k..~&PU..Vh| +00000040  48 4c eb 40 5e 50 fe 19  ea 28 a8 b8 7a 13 69 d7  |HL.@^P...(..z.i.| +00000050  4d b0 34 70 d8 65 d5 07  95 67 2b 52 ea 31 aa d4  |M.4p.e...g+R.1..| +00000060  80 b3 a8 ec a1 73 ed a7  f9 17 c3 13 d4 fa c1 71  |.....s.........q| +00000070  5f 38 b9 6c 07 72 81 a6  fe af 43 a6 49 2d c4 ee  |_8.l.r....C.I-..| +00000080 +bob $ +``` + +#### Step 5: Decrypt the file using a private key + +Bob needs to do his part by decrypting the message using OpenSSL, but this time using the `-decrypt` command-line argument. He needs to provide the following information to the utility: + + 1. The encrypted file (which he got from Alice) + 2. Bob's own private key (for decryption, since it was encrypted using Bob's public key) + 3. A file name to save the decrypted output to via redirection + + + + +``` +bob $ openssl rsautl -decrypt -inkey bob_private.pem -in top_secret.enc > top_secret.txt +Enter pass phrase for bob_private.pem: +bob $ +``` + +Bob can now read the secret message that Alice sent him: + + +``` +bob $ ls -l top_secret.txt +-rw-r--r--. 1 bob bob 15 Mar 22 14:02 top_secret.txt +bob $ +bob $ cat top_secret.txt +vim or emacs ? +bob $ +``` + +Bob needs to reply to Alice, so he writes his secret reply in a file: + + +``` +bob $ echo "nano for life" > reply_secret.txt +bob $ +bob $ cat reply_secret.txt +nano for life +bob $ +``` + +#### Step 6: Repeat the process with the other key + +To send his message, Bob follows the same process Alice used, but since the message is intended for Alice, he uses Alice's public key to encrypt the file: + + +``` +bob $ openssl rsautl -encrypt -inkey alice_public.pem -pubin -in reply_secret.txt -out reply_secret.enc +bob $ +bob $ ls -l reply_secret.enc +-rw-r--r--. 1 bob bob 128 Mar 22 14:03 reply_secret.enc +bob $ +bob $ cat reply_secret.enc +�F݇��.4"f�1��\��{o԰$�M��I{5�|�\�l͂�e��Y�V��{�|!$c^a +                                                 �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:bob $ +bob $ +bob $ hexdump -C ./reply_secret.enc +00000000  92 46 dd 87 04 bc a7 2e  34 22 01 66 1a 13 31 db  |.F......4".f..1.| +00000010  c4 5c b4 8e 7b 6f d4 b0  24 d2 4d 92 9b 49 7b 35  |.\\..{o..$.M..I{5| +00000020  da 7c ee 5c bb 6c cd 82  f1 1b 92 65 f1 8d f2 59  |.|.\\.l.....e...Y| +00000030  82 56 81 80 7b 89 07 7c  21 24 63 5e 61 0c ae 2a  |.V..{..|!$c^a..*| +00000040  d4 aa 5c 76 51 8d cf a0  39 04 c1 d7 dc f0 ad 99  |..\vQ...9.......| +00000050  27 ed 8e de d9 ae 02 73  50 e0 dd 27 13 ae 8e 5a  |'......sP..'...Z| +00000060  12 e4 9a 31 57 b3 03 6e  dd e1 16 7f 6b c0 b3 8b  |...1W..n....k...| +00000070  4a cf 30 b8 49 3b 50 38  e0 9f 84 f6 83 da 26 3a  |J.0.I;P8......&:| +00000080 +bob $ +bob $ # remove clear text secret message file +bob $ rm -f reply_secret.txt +``` + +Bob sends the encrypted file back to Alice's workstation via `scp`: + + +``` +`$ scp reply_secret.enc alice@alice-machine-or-ip:/path/` +``` + +Alice cannot make sense of the encrypted text if she tries to read it using normal tools: + + +``` +alice $ +alice $ ls -l reply_secret.enc +-rw-r--r--. 1 alice alice 128 Mar 22 18:01 reply_secret.enc +alice $ +alice $ cat reply_secret.enc +�F݇��.4"f�1��\��{o԰$�M��I{5�|�\�l͂�e��Y�V��{�|!$c^a +                                                 �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:alice $ +alice $ +alice $ +alice $ hexdump -C ./reply_secret.enc +00000000  92 46 dd 87 04 bc a7 2e  34 22 01 66 1a 13 31 db  |.F......4".f..1.| +00000010  c4 5c b4 8e 7b 6f d4 b0  24 d2 4d 92 9b 49 7b 35  |.\\..{o..$.M..I{5| +00000020  da 7c ee 5c bb 6c cd 82  f1 1b 92 65 f1 8d f2 59  |.|.\\.l.....e...Y| +00000030  82 56 81 80 7b 89 07 7c  21 24 63 5e 61 0c ae 2a  |.V..{..|!$c^a..*| +00000040  d4 aa 5c 76 51 8d cf a0  39 04 c1 d7 dc f0 ad 99  |..\vQ...9.......| +00000050  27 ed 8e de d9 ae 02 73  50 e0 dd 27 13 ae 8e 5a  |'......sP..'...Z| +00000060  12 e4 9a 31 57 b3 03 6e  dd e1 16 7f 6b c0 b3 8b  |...1W..n....k...| +00000070  4a cf 30 b8 49 3b 50 38  e0 9f 84 f6 83 da 26 3a  |J.0.I;P8......&:| +00000080 +alice $ +``` + +So she decrypts the message with OpenSSL, only this time she provides her secret key and saves the output to a file: + + +``` +alice $ openssl rsautl -decrypt -inkey alice_private.pem -in reply_secret.enc > reply_secret.txt +Enter pass phrase for alice_private.pem: +alice $ +alice $ ls -l reply_secret.txt +-rw-rw-r--. 1 alice alice 14 Mar 22 18:02 reply_secret.txt +alice $ +alice $ cat reply_secret.txt +nano for life +alice $ +``` + +### Learn more about OpenSSL + +OpenSSL is a true Swiss Army knife utility for cryptography-related use cases. It can do many tasks besides encrypting files. You can find out all the ways you can use it by accessing the OpenSSL [docs page][4], which includes links to the manual, the _OpenSSL Cookbook_, frequently asked questions, and more. To learn more, play around with its various included encryption algorithms to see how it works. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/encryption-decryption-openssl + +作者:[Gaurav Kamathe][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook2016_security_cc.png?itok=3V07Lpko (A secure lock.) +[2]: https://www.openssl.org/ +[3]: https://www.openssl.org/docs/man1.0.2/man1/genrsa.html +[4]: https://www.openssl.org/docs/ From fc2dbd6de5d04f95c1eb47c69c8665e5a8f8b0dd Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 30 Apr 2021 08:47:39 +0800 Subject: [PATCH 039/170] translating --- ...10426 3 beloved USB drive Linux distros.md | 87 ------------------ ...10426 3 beloved USB drive Linux distros.md | 88 +++++++++++++++++++ 2 files changed, 88 insertions(+), 87 deletions(-) delete mode 100644 sources/tech/20210426 3 beloved USB drive Linux distros.md create mode 100644 translated/tech/20210426 3 beloved USB drive Linux distros.md diff --git a/sources/tech/20210426 3 beloved USB drive Linux distros.md b/sources/tech/20210426 3 beloved USB drive Linux distros.md deleted file mode 100644 index 2e35d8cd7e..0000000000 --- a/sources/tech/20210426 3 beloved USB drive Linux distros.md +++ /dev/null @@ -1,87 +0,0 @@ -[#]: subject: (3 beloved USB drive Linux distros) -[#]: via: (https://opensource.com/article/21/4/usb-drive-linux-distro) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -3 beloved USB drive Linux distros -====== -Open source technologists weigh in. -![Linux keys on the keyboard for a desktop computer][1] - -There are few Linux users who don't remember the first time they discovered you could boot a computer and run Linux on it without ever actually installing it. Sure, many users are aware that you can boot a computer to an operating system installer, but with Linux it's different: there doesn't need to be an install at all! Your computer doesn't even need to have a hard drive in it. You can run Linux for months or even _years_ off of a USB drive. - -Naturally, there are a few different "live" Linux distributions to choose from. We asked our writers for their favourites, and their responses represent the full spectrum of what's available. - -### 1\. Puppy Linux - -"As a prior **Puppy Linux** ****developer, my views on this are rather biased. But what originally attracted me to Puppy was: - - * its focus on lower-end and older hardware which is readily available in 3rd world countries; this opens up computing for disadvantaged areas that can't afford the latest modern systems - * its ability to run in RAM, which when utilized can offer some interesting security benefits - * the way it handles user files and sessions in a single SFS file making backing up, restoring, or moving your existing desktop/applications/files to another install with a single copy command" - - - -—[JT Pennington][2] - -"It has always been **Puppy Linux** for me. It boots up quickly and supports old hardware. The GUI is super easy to convince someone to try Linux for the first time." —[Sachin Patil][3] - -"Puppy is the live distro that truly runs on anything. I had an old discarded microATX tower with a broken optical drive, literally no hard drive (it had been removed for data security), and hardly any RAM. I slotted Puppy into its SD card slot and ran it for years." —[Seth Kenlon][4] - -"I don't have that much experience in using USB drive Linux distros but my vote goes to **Puppy Linux**. It's light and perfectly suitable for old machines." —[Sergey Zarubin][5] - -### 2\. Fedora and Red Hat - -"My favourite USB distro is actually just the **Fedora Live USB**. It has a browser, disk utilities, and a terminal emulator so I can use it to rescue data from a machine or I can browse the web or ssh to other machines to do some work if needed. All this without storing any data on the stick or the machine in use to be exposed if compromised." —[Steve Morris][6] - -"I used to use Puppy and DSL. These days I have two USB Keys: **RHEL7 and RHEL8**. These are both configured as full working environments with the ability to boot for UEFI and BIOS. These have been real-life and time savers when I'm faced with a random piece of hardware where we're having issues troubleshooting an issue." —[Steven Ellis][7] - -### 3\. Porteus - -"Not long ago, I installed VMs of every version of Porteus OS. That was fun, so maybe I'll take another look at them. Whenever the topic of tiny distros comes up, I'm always reminded of the first one that I can remember using: **tomsrtbt**. It was always designed to fit on a floppy. I'm not sure how useful it is these days, but just thought I'd throw it in the mix." —[Alan Formy-Duval][8] - -"As a longtime Slackware user, I appreciate **Porteus** for providing a current build of Slack, and a flexible environment. You can boot with Porteus running in RAM so there's no need to keep the USB drive attached to your computer, or you can run it off the drive so you can retain your changes. Packaging applications is easy, and there are lots of existing packages available from the Slacker community. It's the only live distro I need." —[Seth Kenlon][4] - -### Bonus: Knoppix - -"I haven't used **Knoppix **in a while but I used it a lot at one time to save Windows computers that had been damaged by malware. It was originally released in September 2000 and has been under continuous development since then. It was originally developed and named after Linux consultant Klaus Knopper and designed to be used as a Live CD. We used it to rescue user files on Windows systems that had become inaccessible due to malware and viruses." —[Don Watkins][9] - -"Knoppix was hugely influencial to live Linux, but it's also one of the most accessible distributions for blind users. Its [ADRIANE interface][10] is designed to be used without a visual display, and can handle all the most common tasks any user is likely to require from a computer." —[Seth Kenlon][11] - -### Choose your live Linux - -There are many that haven't been mentioned, such as [Slax][12] (a Debian-based live distro), [Tiny Core][13], [Slitaz][14], [Kali][15] (a security-focused utility distro), [E-live][16], and more. If you have a spare USB drive, put Linux on it and use Linux on any computer, any time! - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/4/usb-drive-linux-distro - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) -[2]: https://opensource.com/users/jtpennington -[3]: https://opensource.com/users/psachin -[4]: http://opensource.com/users/seth -[5]: https://opensource.com/users/sergey-zarubin -[6]: https://opensource.com/users/smorris12 -[7]: https://opensource.com/users/steven-ellis -[8]: https://opensource.com/users/alanfdoss -[9]: https://opensource.com/users/don-watkins -[10]: https://opensource.com/life/16/7/knoppix-adriane-interface -[11]: https://opensource.com/article/21/4/opensource.com/users/seth -[12]: http://slax.org -[13]: http://www.tinycorelinux.net/ -[14]: http://www.slitaz.org/en/ -[15]: http://kali.org -[16]: https://www.elivecd.org/ diff --git a/translated/tech/20210426 3 beloved USB drive Linux distros.md b/translated/tech/20210426 3 beloved USB drive Linux distros.md new file mode 100644 index 0000000000..d52fb4fc9a --- /dev/null +++ b/translated/tech/20210426 3 beloved USB drive Linux distros.md @@ -0,0 +1,88 @@ +[#]: subject: (3 beloved USB drive Linux distros) +[#]: via: (https://opensource.com/article/21/4/usb-drive-linux-distro) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +3 个心爱的 U 盘 Linux 发行版 +====== +开源技术人员对此深有体会。 +![Linux keys on the keyboard for a desktop computer][1] + +很少有 Linux 用户不记得他们第一次发现你可以启动计算机并在上面运行 Linux 而不需要实际安装它。当然,许多用户都知道可以启动计算机进入操作系统安装程序,但是 Linux 不同:它根本就不需要安装!你的计算机甚至不需要有一个硬盘驱动器。你可以通过一个 U 盘运行 Linux 几个月甚至几_年_。 + +自然,有一些不同的”实时“ Linux 发行版可供选择。我们向我们的作者询问了他们的最爱,他们的回答代表了现有的全部内容。 + +### 1\. Puppy Linux + +”作为之前的**Puppy Linux** 开发者,我对此的看法相当偏颇。 但 Puppy 最初吸引我的地方是: + + + * 它专注于第三世界国家容易获得的低端和老旧硬件。这为买不起最新的现代系统的贫困地区开放了计算能力 + * 它能够在内存中运行,当它被使用时可以提供一些有趣的安全优势 + * 它在一个单一的 SFS 文件中处理用户文件和会话,使得备份、恢复或移动你现有的桌面/应用/文件到另一个安装中只需一个拷贝命令“ + + + +—[JT Pennington][2] + +”对我来说,它一直是 **Puppy Linux**。它启动迅速,支持旧硬件。GUI 超级容易说服别人第一次尝试 Linux“。—[Sachin Patil][3] + +”Puppy 是真正能在任何东西上运行的实时发行版。我有一台废弃的 microATX 塔式电脑,它的光驱坏了,也没有硬盘(为了数据安全,它已经被拆掉了),而且几乎没有内存。我把 Puppy 插入它的 SD 卡插槽,运行了好几年。“ —[Seth Kenlon][4] + +”我没有那么多使用 U 盘 Linux 发行版的经验,但我把票投给 **Puppy Linux**。它很轻,而且完全适用于旧机器。“ —[Sergey Zarubin][5] + +### 2\. Fedora 和 Red Hat + +”我最喜欢的 USB 发行版其实是 **Fedora Live USB**。它有一个浏览器、磁盘工具和一个终端模拟器,所以我可以用它来拯救机器上的数据,或者我可以浏览网页或在需要时用 ssh 进入其他机器做一些工作。所有这些都不需要在记忆棒上存储任何数据,也不会在使用中的机器被泄露的情况下将其暴露出来。“ —[Steve Morris][6] + +”我过去一直使用 Puppy 和 DSL。这些天我有两个 U 盘:**RHEL7 和 RHEL8**。 这两个都被配置为完整的工作环境,能够为 UEFI 和 BIOS 启动。当我面对一个随机的硬件,我们有问题要解决时,这些都是现实生活和时间的救星。“ —[Steven Ellis][7] + +### 3\. Porteus + +”不久前,我安装了每个版本的 Porteus 系统的虚拟机。那很有趣,所以也许我会再看一下它们。每当提到微型发行版的话题时,我总是想起我记得的第一个使用的发行版:**tomsrtbt**。它一直被设计成适合放在软盘上。我不知道它现在有多大用处,但我想我应该把它放在一起。“ —[Alan Formy-Duval][8] + +”作为一个长期的 Slackware 用户,我很欣赏 **Porteus** 提供的 Slack 的最新版本,以及一个灵活的环境。你可以用 Porteus 在内存中运行启动,这样就不需要把 U 盘连接到你的电脑上,或者你可以从驱动器上运行,这样你就可以保留你的修改。打包应用很容易,而且 Slacker 社区有很多现有的软件包。这是我唯一需要的实时发行版“。—[Seth Kenlon][4]。 + +### 额外的:Knoppix + +”我已经有一段时间没有使用 **Knoppix** 了,但我曾一度经常使用它来拯救那些被恶意软件破坏的 Windows 电脑。它最初于 2000 年 9 月发布,此后一直在持续开发。它最初是以 Linux 顾问 Klaus Knopper 的名字开发并命名的,被设计为 Live CD。我们用它来拯救由于恶意软件和病毒而变得无法访问的 Windows 系统上的用户文件“。—[Don Watkins][9] + +”Knoppix 对实时 Linux 有很大的影响,但它也是对盲人用户最方便的发行版之一。它的 [ADRIANE 界面][10] 被设计成可以在没有视觉显示器的情况下使用,并且可以处理任何用户可能需要从计算机上获得的所有最常见的任务。“ —[Seth Kenlon][11] 。 + +### 选择你的实时 Linux + +有很多没有提到的,比如 [Slax][12](一个基于 Debian 的实时发行版)、[Tiny Core][13]、[Slitaz][14]、[Kali][15](一个注重安全的实用发行版)、[E-live][16],等等。如果你有一个空闲的 U 盘,把 Linux 放在上面,在任何时候都可以在任何电脑上使用 Linux! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/usb-drive-linux-distro + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/linux_keyboard_desktop.png?itok=I2nGw78_ (Linux keys on the keyboard for a desktop computer) +[2]: https://opensource.com/users/jtpennington +[3]: https://opensource.com/users/psachin +[4]: http://opensource.com/users/seth +[5]: https://opensource.com/users/sergey-zarubin +[6]: https://opensource.com/users/smorris12 +[7]: https://opensource.com/users/steven-ellis +[8]: https://opensource.com/users/alanfdoss +[9]: https://opensource.com/users/don-watkins +[10]: https://opensource.com/life/16/7/knoppix-adriane-interface +[11]: https://opensource.com/article/21/4/opensource.com/users/seth +[12]: http://slax.org +[13]: http://www.tinycorelinux.net/ +[14]: http://www.slitaz.org/en/ +[15]: http://kali.org +[16]: https://www.elivecd.org/ From 70c0ca55b97c767d205214e9598ba2a43b108b49 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 30 Apr 2021 08:54:02 +0800 Subject: [PATCH 040/170] translating --- ...Open-Source App to Control All Your RGB Lighting Settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md index e114fbb740..620a4acff6 100644 --- a/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md +++ b/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/openrgb/) [#]: author: (Ankush Das https://itsfoss.com/author/ankush/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From d957b72bc95b84ca1b2262785beeb18d9f6500c0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 30 Apr 2021 09:56:06 +0800 Subject: [PATCH 041/170] PRF&PUB @geekpi https://linux.cn/article-13346-1.html --- ...e Partitions in Linux -Beginner-s Guide.md | 51 +++++++++---------- 1 file changed, 24 insertions(+), 27 deletions(-) rename {translated/tech => published}/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md (63%) diff --git a/translated/tech/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md b/published/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md similarity index 63% rename from translated/tech/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md rename to published/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md index a97eaefd87..e04bca1d9d 100644 --- a/translated/tech/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md +++ b/published/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md @@ -3,39 +3,36 @@ [#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13346-1.html) -如何在 Linux 中删除分区(初学者指南) +如何在 Linux 中删除分区 ====== +![](https://img.linux.net.cn/data/attachment/album/202104/30/095353uhtbhm2fqx44aqfo.jpg) + 管理分区是一件严肃的事情,尤其是当你不得不删除它们时。我发现自己经常这样做,特别是在使用 U 盘作为实时磁盘和 Linux 安装程序之后,因为它们创建了几个我以后不需要的分区。 在本教程中,我将告诉你如何使用命令行和 GUI 工具在 Linux 中删除分区。 - * [用 GParted 等 GUI 工具删除 Linux 中的分区][1] - * [使用 Linux 命令删除分区][2] - - - -警告! - -你删除了分区,就会失去你的数据。无论何时,当你在操作分区时,一定要备份你的数据。一个轻微的打字错误或手滑都可能是昂贵的。不要说我们没有警告你! +> 警告! +> +> 删除了分区,就会失去你的数据。无论何时,当你在操作分区时,一定要备份你的数据。一个轻微的打字错误或手滑都可能是昂贵的。不要说我们没有警告你! ### 使用 GParted 删除磁盘分区 (GUI 方法) 作为一个桌面 Linux 用户,你可能会对基于 GUI 的工具感到更舒服,也许更安全。 -有[几个让你在 Linux 上管理分区的工具][3]。根据你的发行版,你的系统上已经安装了一个甚至多个这样的工具。 +有 [几个让你在 Linux 上管理分区的工具][3]。根据你的发行版,你的系统上已经安装了一个甚至多个这样的工具。 在本教程中,我将使用 [GParted][4]。它是一个流行的开源工具,使用起来非常简单和直观。 -第一步是[安装 GParted][5],如果它还没有在你的系统中。你应该能够在你的发行版的软件中心找到它。 +第一步是 [安装 GParted][5],如果它还没有在你的系统中。你应该能够在你的发行版的软件中心找到它。 ![][6] -或者,你也可以使用你的发行版的软件包管理器来安装它。在基于 Debian 和 Ubuntu 的 Linux 发行版中,你可以[使用 apt install 命令][7]: +或者,你也可以使用你的发行版的软件包管理器来安装它。在基于 Debian 和 Ubuntu 的 Linux 发行版中,你可以 [使用 apt install 命令][7]: ``` sudo apt install gparted @@ -47,21 +44,21 @@ sudo apt install gparted 在右上角,你可以选择磁盘,在下面选择你想删除的分区。 -接下来,从分区菜单中选择 **Delete** 选项: +接下来,从分区菜单中选择 “删除” 选项: ![][9] -这个过程是不完整的,直到你重写分区表。这是一项安全措施,它让你在确认之前可以选择审查更改。 +这个过程是没有完整完成的,直到你重写分区表。这是一项安全措施,它让你在确认之前可以选择审查更改。 -要完成它,只需点击位于工具栏中的 **Apply All Operations** 按钮,然后在要求确认时点击 **Apply**。 +要完成它,只需点击位于工具栏中的 “应用所有操作” 按钮,然后在要求确认时点击 “应用”。 ![][10] -点击 **Apply** 后,你会看到一个进度条和一个结果消息说所有的操作都成功了。你可以关闭该信息和主窗口,并认为你的分区已从磁盘中完全删除。 +点击 “应用” 后,你会看到一个进度条和一个结果消息说所有的操作都成功了。你可以关闭该信息和主窗口,并认为你的分区已从磁盘中完全删除。 现在你已经知道了 GUI 的方法,让我们继续使用命令行。 -### 使用 fdisk 命令删除分区 +### 使用 fdisk 命令删除分区(CLI 方法) 几乎每个 Linux 发行版都默认带有 [fdisk][11],我们今天就来使用这个工具。你需要知道的第一件事是,你想删除的分区被分配到哪个设备上了。为此,在终端输入以下内容: @@ -69,13 +66,13 @@ sudo apt install gparted sudo fdisk --list ``` -这将打印出我们系统中所有的驱动器和分区,以及分配的设备。你[需要有 root 权限][12],以便让它发挥作用。 +这将打印出我们系统中所有的驱动器和分区,以及分配的设备。你 [需要有 root 权限][12],以便让它发挥作用。 在本例中,我将使用一个包含两个分区的 USB 驱动器,如下图所示: ![][13] -系统中分配的设备是 /sdb,它有两个分区,sdb1 和 sdb2。现在你已经确定了哪个设备包含这些分区,你可以通过使用 `fdisk` 和设备的路径开始操作: +系统中分配的设备是 `/sdb`,它有两个分区:`sdb1` 和 `sdb2`。现在你已经确定了哪个设备包含这些分区,你可以通过使用 `fdisk` 和设备的路径开始操作: ``` sudo fdisk /dev/sdb @@ -83,15 +80,15 @@ sudo fdisk /dev/sdb 这将在命令模式下启动 `fdisk`。你可以随时按 `m` 来查看选项列表。 -接下来,输入 `p`,然后按`回车`查看分区信息,并确认你正在使用正确的设备。如果使用了错误的设备,你可以使用 `q` 命令退出 `fdisk` 并重新开始。 +接下来,输入 `p`,然后按回车查看分区信息,并确认你正在使用正确的设备。如果使用了错误的设备,你可以使用 `q` 命令退出 `fdisk` 并重新开始。 现在输入 `d` 来删除一个分区,它将立即询问分区编号,这与 “Device” 列中列出的编号相对应,在这个例子中是 1 和 2(在下面的截图中可以看到),但是可以也会根据当前的分区表而有所不同。 ![][14] -让我们通过输入 `2` 并按下`回车`来删除第二个分区。你应该看到一条信息:**“Partition 2 has been deleted”**,但实际上,它还没有被删除。`fdisk` 还需要一个步骤来重写分区表并应用这些变化。你看,这就是完全网。 +让我们通过输入 `2` 并按下回车来删除第二个分区。你应该看到一条信息:**“Partition 2 has been deleted”**,但实际上,它还没有被删除。`fdisk` 还需要一个步骤来重写分区表并应用这些变化。你看,这就是完全网。 -你需要输入 `w`,然后按`回车`来使这些改变成为永久性的。没有再要求确认。 +你需要输入 `w`,然后按回车来使这些改变成为永久性的。没有再要求确认。 在这之后,你应该看到下面这样的反馈: @@ -101,7 +98,7 @@ sudo fdisk /dev/sdb #### 总结 -这样,我结束了这个关于如何使用终端和 GUI 工具在 Linux 中删除分区的教程。记住,要始终保持安全,在操作分区之前备份你的文件,并仔细检查你是否使用了正确的设备。删除一个分区将删除其中的所有内容,而几乎没有[恢复][16]的机会。 +这样,这个关于如何使用终端和 GUI 工具在 Linux 中删除分区的教程就结束了。记住,要始终保持安全,在操作分区之前备份你的文件,并仔细检查你是否使用了正确的设备。删除一个分区将删除其中的所有内容,而几乎没有 [恢复][16] 的机会。 -------------------------------------------------------------------------------- @@ -110,7 +107,7 @@ via: https://itsfoss.com/delete-partition-linux/ 作者:[Chris Patrick Carias Stas][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 457f3adf7e451790972e999659073eee60cd040e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 30 Apr 2021 11:11:59 +0800 Subject: [PATCH 042/170] PRF @stevenzdg988 --- ...ctivity with this Linux automation tool.md | 88 +++++++++---------- 1 file changed, 41 insertions(+), 47 deletions(-) diff --git a/translated/tech/20210203 Improve your productivity with this Linux automation tool.md b/translated/tech/20210203 Improve your productivity with this Linux automation tool.md index ee56421cea..3f80b1b817 100644 --- a/translated/tech/20210203 Improve your productivity with this Linux automation tool.md +++ b/translated/tech/20210203 Improve your productivity with this Linux automation tool.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (stevenzdg988) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Improve your productivity with this Linux automation tool) @@ -9,126 +9,120 @@ 使用 Linux 自动化工具提高生产率 ====== -配置键盘(按键)以纠正常见的打字排版错误,输入常用的短语,以及更多的使用 AutoKey (功能)。 -![台式机键盘上的Linux键][1] -[AutoKey][2]是一个开源的 Linux 桌面自动化工具,一旦它成为你工作流程的一部分,你会想知道没有它究竟将如何管理。它可以成为一种提高生产率的有改革能力的工具或者仅仅是减少与打字有关的物理压力的一种方式。 +> 用 AutoKey 配置你的键盘,纠正常见的错别字,输入常用的短语等等。 + +![](https://img.linux.net.cn/data/attachment/album/202104/30/111130s7ffji6cmb7rkcfx.jpg) + +[AutoKey][2] 是一个开源的 Linux 桌面自动化工具,一旦它成为你工作流程的一部分,你就会想,如何没有它,那该怎么办。它可以成为一种提高生产率的变革性工具,或者仅仅是减少与打字有关的身体压力的一种方式。 本文将研究如何安装和开始使用 AutoKey ,介绍一些可以立即在工作流程中使用的简单方法,并探讨 AutoKey 高级用户可能会感兴趣的一些高级功能。 ### 安装并设置 AutoKey -AutoKey 在许多 Linux 发行版中作为一个可用软件包。该项目的[安装指南][3]包含许多平台的说明,包括从源代码进行构建。本文使用 Fedora 作为操作平台。 +AutoKey 在许多 Linux 发行版中都是现成的软件包。该项目的 [安装指南][3] 包含许多平台的说明,也包括了从源代码进行构建的指导。本文使用 Fedora 作为操作平台。 AutoKey 有两个变体:为像 GNOME 等基于 [GTK][4] 环境而设计的 autokey-gtk 和基于 [QT][5] 的 autokey-qt。 -您可以从命令行安装任一变体: +你可以从命令行安装任一变体: ``` -`sudo dnf install autokey-gtk` +sudo dnf install autokey-gtk ``` 安装完成后,使用 `autokey-gtk`(或 `autokey-qt`)运行它。 ### 探究界面 -在将 AutoKey 设置为在后台运行并自动执行操作之前,您首先需要对其进行配置。调出用户界面(UI)配置: +在将 AutoKey 设置为在后台运行并自动执行操作之前,你首先需要对其进行配置。调出用户界面(UI)配置: ``` -`autokey-gtk -c` +autokey-gtk -c ``` -AutoKey 提供了一些预设配置的示例。您可能希望在熟悉 UI 时将他们留作备用,但是可以根据需要删除它们。 +AutoKey 提供了一些预设配置的示例。你可能希望在熟悉 UI 时将他们留作备用,但是可以根据需要删除它们。 ![AutoKey 用户界面][6] -(Matt Bargenquast, [CC BY-SA 4.0][7]) - -左侧窗格包含基于层次结构的短语和脚本的文件夹。_Phrases_ 代表要让 AutoKey 输入的文本。_Scripts_ 是动态的有计划的等效项,可以使用 Python 编写,并且获得与键盘击键发送到活动窗口基本相同的结果。 +左侧窗格包含一个文件夹式的短语和脚本的层次结构。“短语Phrases” 代表要让 AutoKey 输入的文本。“脚本Scripts” 是动态的、程序化的等效项,可以使用 Python 编写,并且获得与键盘击键发送到活动窗口基本相同的结果。 右侧窗格构建和配置短语和脚本。 -对配置满意后,您可能希望在登录时自动运行 AutoKey,这样就不必每次都启动它。您可以通过在 **Preferences**(首选)菜单(**Edit -> Preferences**(编辑 -> 首选项))中勾选 **Automatically start AutoKey at login**(登录时自动启动 AutoKey)进行配置。 +对配置满意后,你可能希望在登录时自动运行 AutoKey,这样就不必每次都启动它。你可以通过在 “首选项Preferences”菜单(“编辑 -> 首选项Edit -> Preferences””)中勾选 “登录时自动启动 AutoKeyAutomatically start AutoKey at login”进行配置。 ![登录时自动启动 AutoKey][8] -(Matt Bargenquast, [CC BY-SA 4.0][7]) - ### 使用 AutoKey 纠正常见的打字排版错误 -修复常见的打字排版错误对于 AutoKey 来说是一个容易解决的问题。例如,我始终键入 "gerp" 来代替 "grep"。这里是如何配置 AutoKey 为您解决这些类型问题。 +修复常见的打字排版错误对于 AutoKey 来说是一个容易解决的问题。例如,我始终键入 “gerp” 来代替 “grep”。这里是如何配置 AutoKey 为你解决这些类型问题。 -创建一个新的子文件夹,可以在其中将所有“打字排版错误校正”配置分组。在左侧窗格中选择 **My Phrases** ,然后选择 **File -> New -> Subfolder**。将子文件夹命名为 **Typos**。 +创建一个新的子文件夹,可以在其中将所有“打字排版错误校正”配置分组。在左侧窗格中选择 “My Phrases” ,然后选择 “文件 -> 新建 -> 子文件夹File -> New -> Subfolder”。将子文件夹命名为 “Typos”。 -在 **File -> New -> Phrase** 中创建一个新短语。并将其称为 "grep"。 +在 “文件 -> 新建 -> 短语File -> New -> Phrase” 中创建一个新短语。并将其称为 “grep”。 -通过高亮显示短语 "grep",然后在 **Enter phrase contents**(输入短语内容)部分(替换默认的“输入短语内容”文本)中输入 "grep" ,配置 AutoKey 插入正确的关键词。 +通过高亮选择短语 “grep”,然后在 输入短语内容Enter phrase contents部分(替换默认的 “Enter phrase contents” 文本)中输入 “grep” ,配置 AutoKey 插入正确的关键词。 -接下来,通过定义缩写来设置 AutoKey 如何触发此短语。 点击用户界面底部紧邻 **Abbreviations**(缩写)的 **Set**(设置)按钮("gerp")。 +接下来,通过定义缩写来设置 AutoKey 如何触发此短语。点击用户界面底部紧邻 “缩写Abbreviations” 的 “设置Set”按钮。 -在弹出的对话框中,单击 **Add** 按钮,然后将 "gerp" 添加为新的缩写。勾选 **Remove typed abbreviation**(**删除键入的缩写**);此选项是命令 AutoKey 将出现 "gerp" 一词的任何键入替换为 "grep"。请不要勾选 **Trigger when typed as part of a word**(**在键入单词的一部分时触发**),这样,如果您键入包含 "grep"(例如 "fingerprint"(指纹))的单词,就不会尝试将其转换为 "fingreprint"。仅当将 "grep" 作为独立的单词键入时,此功能才有效。 +在弹出的对话框中,单击 “添加Add” 按钮,然后将 “gerp” 添加为新的缩写。勾选 “删除键入的缩写Remove typed abbreviation”;此选项让 AutoKey 将任何键入 “gerp” 一词的替换为 “grep”。请不要勾选“在键入单词的一部分时触发Trigger when typed as part of a word”,这样,如果你键入包含 “grep”的单词(例如 “fingerprint”),就不会尝试将其转换为 “fingreprint”。仅当将 “grep” 作为独立的单词键入时,此功能才有效。 ![在 AutoKey 中设置缩写][9] -(Matt Bargenquast, [CC BY-SA 4.0][7]) - ### 限制对特定应用程序的更正 -您可能希望仅在某些应用程序(例如终端窗口)中打字排版错误时才应用校正。您可以通过设置 Window Filter (窗口过滤器)进行配置。单击 **Set** 按钮来定义。 +你可能希望仅在某些应用程序(例如终端窗口)中打字排版错误时才应用校正。你可以通过设置 窗口过滤器Window Filter进行配置。单击 “设置Set” 按钮来定义。 -设置 Window Filter (窗口过滤器)的最简单方法是让 AutoKey 为您检测窗口类型: +设置窗口过滤器Window Filter的最简单方法是让 AutoKey 为你检测窗口类型: 1. 启动一个新的终端窗口。 - 2. 返回 AutoKey,单击 **Detect Window Properties** (**检测窗口属性**)按钮。 + 2. 返回 AutoKey,单击 “检测窗口属性Detect Window Properties”按钮。 3. 单击终端窗口。 -这将自动填充 Window Filter,可能窗口类值为 `gnome-terminal-server.Gnome-terminal`。这足够了,因此单击 **OK**。 +这将自动填充窗口过滤器,可能的窗口类值为 `gnome-terminal-server.Gnome-terminal`。这足够了,因此单击 “OK”。 ![AutoKey 窗口过滤器][10] -(Matt Bargenquast, [CC BY-SA 4.0][7]) - ### 保存并测试 -对新配置满意后,请确保将其保存。 单击 **File** ,然后选择 **Save** 以使更改生效。 +对新配置满意后,请确保将其保存。 单击 “文件File” ,然后选择 “保持Save” 以使更改生效。 -现在进行重要的测试!在您的终端窗口中,键入 "gerp" 紧跟一个空格,它将自动更正为 "grep"。要验证 Window Filter 是否正在运行,请尝试在浏览器 URL 栏或其他应用程序中键入单词 "gerp"。它并没有变化。 +现在进行重要的测试!在你的终端窗口中,键入 “gerp” 紧跟一个空格,它将自动更正为 “grep”。要验证窗口过滤器是否正在运行,请尝试在浏览器 URL 栏或其他应用程序中键入单词 “gerp”。它并没有变化。 -您可能会认为,使用 [shell 别名][11]可以轻松解决此问题,我完全赞成!与别名不同,只要是面向命令行,无论您使用什么应用程序,AutoKey 都可以按规则纠正错误。 +你可能会认为,使用 [shell 别名][11] 可以轻松解决此问题,我完全赞成!与别名不同,只要是面向命令行,无论你使用什么应用程序,AutoKey 都可以按规则纠正错误。 -例如,我在浏览器,集成开发环境和终端中输入的另一个常见打字排版错误 "openshfit" 替代为 "openshift"。别名不能完全解决此问题,而 AutoKey 可以在任何情况下纠正它。 +例如,我在浏览器,集成开发环境和终端中输入的另一个常见打字错误 “openshfit” 替代为 “openshift”。别名不能完全解决此问题,而 AutoKey 可以在任何情况下纠正它。 ### 键入常用短语 -您可以通过许多其他方法来调用 AutoKey 的短语来帮助您。例如,作为从事 OpenShift 的站点可靠性工程师(SRE),我经常在命令行上输入 Kubernetes 命名空间名称: +你可以通过许多其他方法来调用 AutoKey 的短语来帮助你。例如,作为从事 OpenShift 的站点可靠性工程师(SRE),我经常在命令行上输入 Kubernetes 命名空间名称: ``` -`oc get pods -n openshift-managed-upgrade-operator` +oc get pods -n openshift-managed-upgrade-operator ``` 这些名称空间是静态的,因此它们是键入特定命令时 AutoKey 可以为我插入的理想短语。 -为此,我创建了一个名为 **Namespaces** 的短语子文件夹,并为我经常键入的每个命名空间添加了一个短语条目。 +为此,我创建了一个名为 “Namespaces” 的短语子文件夹,并为我经常键入的每个命名空间添加了一个短语条目。 ### 分配热键 -接下来,也是最关键的一点,我为子文件夹分配了一个 **hotkey**。每当我按下该热键时,它都会打开一个菜单,我可以在其中选择(要么使用 **Arrow key(方向键)**+**Enter(键)** (组合键)要么使用数字(键))要插入的短语。这减少了我仅需几次击键就可以输入这些命令的击键次数。 +接下来,也是最关键的一点,我为子文件夹分配了一个 “热键hotkey”。每当我按下该热键时,它都会打开一个菜单,我可以在其中选择(要么使用 “方向键”+回车键要么使用数字)要插入的短语。这减少了我仅需几次击键就可以输入这些命令的击键次数。 -**My Phrases** 文件夹中 AutoKey 的预配置示例使用 **Ctrl**+**F7** 热键进行配置。如果您将示例保留在 AutoKey 的默认配置中,请尝试一下。您应该在此处看到所有可用短语的菜单。使用数字或箭头键选择所需的项目。 +“My Phrases” 文件夹中 AutoKey 的预配置示例使用 `Ctrl+F7` 热键进行配置。如果你将示例保留在 AutoKey 的默认配置中,请尝试一下。你应该在此处看到所有可用短语的菜单。使用数字或箭头键选择所需的项目。 ### 高级自动键入 -AutoKey 的[脚本引擎][12]允许用户运行可以通过相同的缩写和热键系统调用的 Python 脚本。这些脚本可以通过支持 API 的功能来完成诸如切换窗口,发送按键或执行鼠标单击之类的操作。 +AutoKey 的 [脚本引擎][12] 允许用户运行可以通过相同的缩写和热键系统调用的 Python 脚本。这些脚本可以通过支持的 API 的函数来完成诸如切换窗口、发送按键或执行鼠标单击之类的操作。 -AutoKey 用户已经欣然接受通过发布自定义脚本为其他用户采用的这项功能。例如,[NumpadIME 脚本][13]将数字键盘转换为旧的手机样式的文本输入方法,[Emojis-AutoKey][14] 可以通过将诸如: `:smile:` 之类的短语转换为他们等价的表情符号来轻松插入。 +AutoKey 用户非常欢迎这项功能,发布了自定义脚本供其他用户采用。例如,[NumpadIME 脚本][13] 将数字键盘转换为旧的手机样式的文本输入方法,[Emojis-AutoKey][14] 可以通过将诸如: `:smile:` 之类的短语转换为它们等价的表情符号来轻松插入。 这是我设置的一个小脚本,该脚本进入 Tmux 的复制模式,以将前一行中的第一个单词复制到粘贴缓冲区中: ``` from time import sleep -# 发送 Tmux 命令前缀(b更改为s) -keyboard.send_keys("<ctrl>+s") +# 发送 Tmux 命令前缀(b 更改为 s) +keyboard.send_keys("+s") # Enter copy mode keyboard.send_key("[") sleep(0.01) @@ -145,14 +139,14 @@ sleep(0.01) keyboard.send_keys("e") sleep(0.01) # Add to copy buffer -keyboard.send_keys("<ctrl>+m") +keyboard.send_keys("+m") ``` -睡眠之所以存在,是因为 Tmux 有时无法跟上 AutoKey 发送击键的速度,并且它们对整体执行时间的影响可忽略不计。 +之所以有 `sleep` 函数,是因为 Tmux 有时无法跟上 AutoKey 发送击键的速度,并且它们对整体执行时间的影响可忽略不计。 ### 使用 AutoKey 自动化 -我希望您喜欢使用 AutoKey 进行键盘自动化的这次旅行,它为您提供了有关如何改善工作流程的一些好主意。如果使用 AutoKey 对您来说有帮助或是新颖的方式,请务必在下面的评论中分享。 +我希望你喜欢这篇使用 AutoKey 进行键盘自动化的探索,它为你提供了有关如何改善工作流程的一些好主意。如果你在使用 AutoKey 时有什么有用的或新颖的方法,一定要在下面的评论中分享。 -------------------------------------------------------------------------------- @@ -161,7 +155,7 @@ via: https://opensource.com/article/21/2/linux-autokey 作者:[Matt Bargenquast][a] 选题:[lujun9972][b] 译者:[stevenzdg988](https://github.com/stevenzdg988) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 8efc12cfac25546620d48719db25a6072f24a3e4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 30 Apr 2021 11:14:24 +0800 Subject: [PATCH 043/170] PUB @stevenzdg988 https://linux.cn/article-13347-1.html --- ...ove your productivity with this Linux automation tool.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20210203 Improve your productivity with this Linux automation tool.md (98%) diff --git a/translated/tech/20210203 Improve your productivity with this Linux automation tool.md b/published/20210203 Improve your productivity with this Linux automation tool.md similarity index 98% rename from translated/tech/20210203 Improve your productivity with this Linux automation tool.md rename to published/20210203 Improve your productivity with this Linux automation tool.md index 3f80b1b817..6ef7efff89 100644 --- a/translated/tech/20210203 Improve your productivity with this Linux automation tool.md +++ b/published/20210203 Improve your productivity with this Linux automation tool.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (stevenzdg988) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13347-1.html) [#]: subject: (Improve your productivity with this Linux automation tool) [#]: via: (https://opensource.com/article/21/2/linux-autokey) [#]: author: (Matt Bargenquast https://opensource.com/users/mbargenquast) @@ -84,7 +84,7 @@ AutoKey 提供了一些预设配置的示例。你可能希望在熟悉 UI 时 ### 保存并测试 -对新配置满意后,请确保将其保存。 单击 “文件File” ,然后选择 “保持Save” 以使更改生效。 +对新配置满意后,请确保将其保存。 单击 “文件File” ,然后选择 “保存Save” 以使更改生效。 现在进行重要的测试!在你的终端窗口中,键入 “gerp” 紧跟一个空格,它将自动更正为 “grep”。要验证窗口过滤器是否正在运行,请尝试在浏览器 URL 栏或其他应用程序中键入单词 “gerp”。它并没有变化。 From d8d80986748079434a44cdf5febaeac9bf029792 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 1 May 2021 05:04:51 +0800 Subject: [PATCH 044/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210430=20?= =?UTF-8?q?Access=20freenode=20using=20Matrix=20clients?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210430 Access freenode using Matrix clients.md --- ...30 Access freenode using Matrix clients.md | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 sources/tech/20210430 Access freenode using Matrix clients.md diff --git a/sources/tech/20210430 Access freenode using Matrix clients.md b/sources/tech/20210430 Access freenode using Matrix clients.md new file mode 100644 index 0000000000..dce583fb0a --- /dev/null +++ b/sources/tech/20210430 Access freenode using Matrix clients.md @@ -0,0 +1,133 @@ +[#]: subject: (Access freenode using Matrix clients) +[#]: via: (https://fedoramagazine.org/access-freenode-using-matrix-clients/) +[#]: author: (TheEvilSkeleton https://fedoramagazine.org/author/theevilskeleton/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Access freenode using Matrix clients +====== + +![][1] + +Fedora Linux 34 Background with freenode and Matrix logos + +Matrix (also written [matrix]) is [an open source project][2] and [a communication protocol][3]. The protocol standard is open and it is free to use or implement. Matrix is being recognized as a modern successor to the older [Internet Relay Chat (IRC)][4] protocol. [Mozilla][5], [KDE][6], [FOSDEM][7] and [GNOME][8] are among several large projects that have started using chat clients and servers that operate over the Matrix protocol. Members of the Fedora project have [discussed][9] whether or not the community should switch to using the Matrix protocol. + +The Matrix project has implemented an IRC bridge to enable communication between IRC networks (for example, [freenode][10]) and [Matrix homeservers][11]. This article is a guide on how to register, identify and join freenode channels from a Matrix client via the [Matrix IRC bridge][12]. + +Check out _[Beginner’s guide to IRC][13]_ for more information about IRC. + +### Preparation + +You need to set everything up before you register a nick. A nick is a username. + +#### Install a client + +Before you use the IRC bridge, you need to install a Matrix client. This guide will use Element. Other [Matrix clients][14] are available. + +First, install the Matrix client _Element_ from [Flathub][15] on your PC. Alternatively, browse to [element.io][16] to run the Element client directly in your browser. + +Next, click _Create Account_ to register a new account on matrix.org (a homeserver hosted by the Matrix project). + +#### Create rooms + +For the IRC bridge, you need to create rooms with the required users. + +First, click the ➕ (plus) button next to _People_ on the left side in Element and type _@appservice-irc:matrix.org_ in the field to create a new room with the user. + +Second, create another new room with _@freenode_NickServ:matrix.org_. + +### Register a nick at freenode + +If you have already registered a nick at freenode, skip the remainder of this section. + +Registering a nickname is optional, but strongly recommended. Many freenode channels require a registered nickname to join. + +First, open the room with _appservice-irc_ and enter the following: + +``` +!nick +``` + +Substitute _<your_nick>_ with the username you want to use. If the nick is already taken, _NickServ_ will send you the following message: + +``` +This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify . +``` + +If you receive the above message, use another nick. + +Second, open the room with _NickServ_ and enter the following: + +``` +REGISTER +``` + +You will receive a verification email from freenode. The email will contain a verification command similar to the following: + +``` +/msg NickServ VERIFY REGISTER +``` + +Ignore _/msg NickServ_ at the start of the command. Enter the remainder of the command in the room with _NickServ_. Be quick! You will have 24 hours to verify before the code expires. + +### Identify your nick at freenode + +If you just registered a new nick using the procedure in the previous section, then you should already be identified. If you are already identified, skip the remainder of this section. + +First, open the room with _@appservice-irc:matrix.org_ and enter the following: + +``` +!nick +``` + +Next, open the room with _@freenode_NickServ:matrix.org_ and enter the following: + +``` +IDENTIFY +``` + +### Join a freenode channel + +To join a freenode channel, press the ➕ (plus) button next to _Rooms_ on the left side in Element and type _#freenode_#<your_channel>:matrix.org_. Substitute _<your_channel>_ with the freenode channel you want to join. For example, to join the _#fedora_ channel, use _#freenode_#fedora:matrix.org_. For a list of Fedora Project IRC channels, see _[Communicating_and_getting_help — IRC_for_interactive_community_support][17]_. + +### Further reading + + * [Matrix IRC wiki][18] + + + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/access-freenode-using-matrix-clients/ + +作者:[TheEvilSkeleton][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/theevilskeleton/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/freenode-matrix-816x345.jpeg +[2]: https://matrix.org/ +[3]: https://matrix.org/docs/spec/ +[4]: https://en.wikipedia.org/wiki/Internet_Relay_Chat +[5]: https://matrix.org/blog/2019/12/19/welcoming-mozilla-to-matrix/ +[6]: https://matrix.org/blog/2019/02/20/welcome-to-matrix-kde/ +[7]: https://matrix.org/blog/2021/01/04/taking-fosdem-online-via-matrix +[8]: https://wiki.gnome.org/Initiatives/Matrix +[9]: https://discussion.fedoraproject.org/t/the-future-of-real-time-chat-discussion-for-the-fedora-council/24628 +[10]: https://en.wikipedia.org/wiki/Freenode +[11]: https://en.wikipedia.org/wiki/Matrix_(protocol)#Servers +[12]: https://github.com/matrix-org/matrix-appservice-irc +[13]: https://fedoramagazine.org/beginners-guide-irc/ +[14]: https://matrix.org/clients/ +[15]: https://flathub.org/apps/details/im.riot.Riot +[16]: https://app.element.io/ +[17]: https://fedoraproject.org/wiki/Communicating_and_getting_help#IRC_for_interactive_community_support +[18]: https://github.com/matrix-org/matrix-appservice-irc/wiki From ce90b3f8484deb93d9f6b281741acda6009cd90c Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 1 May 2021 05:05:25 +0800 Subject: [PATCH 045/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210501=20?= =?UTF-8?q?Chrome=20Browser=20Keeps=20Detecting=20Network=20Change=20in=20?= =?UTF-8?q?Linux=3F=20Here=E2=80=99s=20How=20to=20Fix=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md --- ...k Change in Linux- Here-s How to Fix it.md | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md new file mode 100644 index 0000000000..1f14cae866 --- /dev/null +++ b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md @@ -0,0 +1,94 @@ +[#]: subject: (Chrome Browser Keeps Detecting Network Change in Linux? Here’s How to Fix it) +[#]: via: (https://itsfoss.com/network-change-detected/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Chrome Browser Keeps Detecting Network Change in Linux? Here’s How to Fix it +====== + +For the past several days, I faced a strange issue in my system running Ubuntu Linux. I use Firefox and [Brave browsers][1]. Everything was normal in Firefox but Brave keeps on detecting a network change on almost every refresh. + +![][2] + +This went on to the extent that it became impossible to use the browser. I could not use [Feedly][3] to browse feeds from my favorite websites, every search result ends in multiple refresh, websites needed to be refreshed multiple times as well. + +As an alternative, I tried [installing Chrome on Ubuntu][4]. The problem remained the same. I [installed Microsoft Edge on Linux][5] and yet, the problem persisted there as well. Basically, any Chromium-based browser keep encountering the ERR_NETWORK_CHANGED error. + +Luckily, I found a way to fix the issue. I am going to share the steps with you so that it helps you if you are also facing the same problem. + +### Fixing frequent network change detection issues in Chromium based browsers + +The trick that worked for me was to disable IPv6 in the network settings. Now, I am not sure why this happens but I know that IPv6 is known to create network problems in many systems. If your system, router and other devices use IPv6 instead of the good old IPv4, you may encounter network connection issues like the one I encountered. + +Thankfully, it is not that difficult to [disable IPv6 in Ubuntu][6]. There are several ways to do that and I am going to share the easiest method perhaps. This method uses GRUB to disable IPv6. + +Attention Beginners! + +If you are not too comfortable with the command line and terminal, please pay extra attention on the steps. Read the instructions carefully. + +#### Step 1: Open GRUB config file for editing + +Open the terminal. Now use the following command to edit the GRUB config file in Nano editor. You’ll have to enter your account’s password. + +``` +sudo nano /etc/default/grub +``` + +I hope you know a little bit about [using Nano editor][7]. Use the arrow keys to go to the line starting with GRUB_CMDLINE_LINUX. Make its value look like this: + +``` +GRUB_CMDLINE_LINUX="ipv6.disable=1" +``` + +Be careful of the inverted commas and spaces. Don’t touch other lines. + +![][8] + +Save your changes by using the Ctrl+x keys. It will ask you to confirm the changes. Press Y or enter when asked. + +#### Step 2: Update grub + +You have made changes to the GRUB bootloader configuration. These changes won’t be taken into account until you update grub. Use the command below for that: + +``` +sudo update-grub +``` + +![][9] + +Now when you restart your system, IPv6 will be disabled for your networks. You should not encounter the network interruption issue anymore. + +You may think why I didn’t mention disabling IPv6 from the network settings. It’s because Ubuntu uses [Netplan][10] to manage network configuration these days and it seems that changes in Network Manager are not fully taken into account by Netplan. I tried it but despite IPv6 being disabled in the Network Manager, the problem didn’t go away until I used the command line method. + +Even after so many years, IPv6 support has not matured and it keeps causing trouble. Disabling IPv6 sometimes [improve WiFi speed in Linux][11]. Weird, I know. + +Anyway, I hope this trick helps you with the network change detection issue in your system as well. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/network-change-detected/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/brave-web-browser/ +[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/network-change-detected.png?resize=800%2C418&ssl=1 +[3]: https://feedly.com/ +[4]: https://itsfoss.com/install-chrome-ubuntu/ +[5]: https://itsfoss.com/microsoft-edge-linux/ +[6]: https://itsfoss.com/disable-ipv6-ubuntu-linux/ +[7]: https://itsfoss.com/nano-editor-guide/ +[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/disabling-ipv6-via-grub.png?resize=800%2C453&ssl=1 +[9]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/updating-grub-ubuntu.png?resize=800%2C434&ssl=1 +[10]: https://netplan.io/ +[11]: https://itsfoss.com/speed-up-slow-wifi-connection-ubuntu/ From f0c16581dae968ad212da47aa62e9c327f5f179b Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 1 May 2021 05:05:53 +0800 Subject: [PATCH 046/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210430=20?= =?UTF-8?q?Access=20an=20alternate=20internet=20with=20OpenNIC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210430 Access an alternate internet with OpenNIC.md --- ...cess an alternate internet with OpenNIC.md | 154 ++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 sources/tech/20210430 Access an alternate internet with OpenNIC.md diff --git a/sources/tech/20210430 Access an alternate internet with OpenNIC.md b/sources/tech/20210430 Access an alternate internet with OpenNIC.md new file mode 100644 index 0000000000..20558213cb --- /dev/null +++ b/sources/tech/20210430 Access an alternate internet with OpenNIC.md @@ -0,0 +1,154 @@ +[#]: subject: (Access an alternate internet with OpenNIC) +[#]: via: (https://opensource.com/article/21/4/opennic-internet) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Access an alternate internet with OpenNIC +====== +Take a detour on the super information highway. +![An intersection of pipes.][1] + +In the words of Dan Kaminsky, the legendary DNS hacker, "the Internet's proven to be a pretty big deal for global society." For the Internet to work, computers must be able to find one another on the most complex network of all: the World Wide Web. This was the problem posed to government workers and academic IT staff a few decades ago, and it's their solutions that we use today. They weren't, however, actually seeking to build _the Internet_, they were defining specifications for _internets_ (actually for _catenets_, or "concatenated networks", but the term that eventually fell out of vogue), a generic term for _interconnected networks_. + +According to these specifications, a network uses a combination of numbers that serve as a sort of home address for each online computer and assigns a human-friendly but highly structured "hostname" (such as `example.com`) to each website. Because users primarily interact with the internet through website _names_, it can be said that the internet works only because we've all agreed to a standardized naming scheme. The Internet _could_ work differently, should enough people decide to use a different naming scheme. A group of users could form a parallel internet, one that exists using the same physical infrastructure (the cables and satellites and other modes of transport that get data from one place to another) but uses a different means of correlating hostnames with numbered addresses. + +In fact, this already exists, and this article shows how you can access it. + +### Understand name servers + +The term "internet" is actually a portmanteau of the terms _interconnected_ and _networks_ because that's exactly what it is. Like neighborhoods in a city, or cities in a country, or countries on a continent, or continents on a planet, the internet spans the globe by transmitting data from one home or office network to data centers and server rooms or other home or office networks. It's a gargantuan task—but it's not without precedent. After all, phone companies long ago connected the world, and before that, telegraph and postal services did the same. + +In a phone or mail system, there's a list, whether it's formal or informal, that relates human names to physical addresses. This used to be delivered to houses in the form of telephone books, a directory of every phone owner in that phone book's community. Post offices operate differently: they usually rely on the person sending the letter to know the name and address of the intended recipient, but postcodes and city names are used to route the letter to the correct post office. Either way, the need for a standard organizational scheme is necessary. + +For computers, the [IP protocol][2] describes how addresses on the internet must be formatted. The domain name server [(DNS) protocol][3] describes how human-friendly names may be assigned to and resolved from IP addresses. Whether you're using IPv4 or IPv6, the idea is the same: When a node (which could be a computer or a gateway leading to another network) joins a network, it is assigned an IP address. + +If you wish, you may register a domain name with [ICANN][4] (a non-profit organization that helps coordinate website names on the internet) and register the name as a pointer to an IP address. There is no requirement that you "own" the IP address. Anyone can point any domain name to any IP address. The only restrictions are that only one person can own a specific domain name at a time, and the domain name must follow the recognized DNS naming scheme. + +Records of a domain name and its associated IP address are entered into a DNS. When you navigate to a website in your browser, it quickly consults the DNS network to find what IP address is associated with whatever URL you've entered (or clicked on from a search engine). + +### A different DNS + +To avoid arguments over who owns which domain name, most domain name registrars charge a fee for domain registration. The fee is usually nominal, and sometimes it's even $0 (for instance, `freenom.com` offers gratis `.tk`, `.ml`, `.gq`, and `.cf` domains on a first-come, first-served basis). + +For a very long time, there were only a few "top-level" domains, including `.org`, `.edu`, and `.com`. Now there are a lot more, including `.club`, `.biz`, `.name`, `.international`, and so on. Letter combinations being what they are, however, there are lots of potential top-level domains that aren't valid, such as `.null`. If you try to navigate to a website ending in `.null`, then you won't get very far. It's not available for registration, it's not a valid entry for a domain name server, and it just doesn't exist. + +The [OpenNIC Project][5] has established an alternate DNS network to resolve domain names to IP addresses, but it includes names not currently used by the internet. Available top-level domains include: + + * .geek + * .indy + * .bbs + * .gopher + * .o + * .libre + * .oss + * .dyn + * .null + + + +You can register a domain within these (and more) top-level domains and register them on the OpenNIC DNS system so that they map to an IP address of your choice. + +In other words, a website may exist in the OpenNIC network but remain inaccessible to anyone not using OpenNIC name servers. This isn't by any means a security measure or even a means of obfuscation; it's just a conscious choice to take a detour on the _super information highway_. + +### How to use an OpenNIC DNS server + +To access OpenNIC sites, you must configure your computer to use OpenNIC DNS servers. Luckily, this isn't a binary choice. By using an OpenNIC DNS server, you get access to both OpenNIC and the standard web. + +To configure your Linux computer to use an OpenNIC DNS server, you can use the [nmcli][6] command, a terminal interface to Network Manager. Before starting the configuration, visit [opennic.org][5] and look for your nearest OpenNIC DNS server. As with standard DNS and [edge computing][7], the closer the server is to you geographically, the less delay you'll experience when your browser queries it. + +Here's how to use OpenNIC: + + 1. First, get a list of connections: + + +``` +$ sudo nmcli connection +NAME                TYPE             DEVICE +Wired connection 1  802-3-ethernet   eth0 +MyPersonalWifi      802-11-wireless  wlan0 +ovpn-phx2-tcp       vpn              -- +``` + +Your connections are sure to differ from this example, but focus on the first column. This provides the human-readable name of your connections. In this example, I'll configure my Ethernet connection, but the process is the same for a wireless connection. + + 2. Now that you know the name of the connection you need to modify, use `nmcli` to update its `ipv4.dns` property: + + +``` +$ sudo nmcli con modify \ +"Wired connection 1" \ +ipv4.dns "134.195.4.2" +``` + +In this example, `134.195.4.2` is my closest server. + + 3. Prevent Network Manager from auto-updating `/etc/resolv.conf` with what your router is set to use: + + +``` +$ sudo nmcli con modify \ +"Wired connection 1" \ +ipv4.ignore-auto-dns yes +``` + + 4. Bring your network connection down and then up again to instantiate the new settings: + + +``` +$ sudo nmcli con down \ +"Wired connection 1" +$ sudo nmcli con up \ +"Wired connection 1" +``` + + + + +That's it. You're now using the OpenNIC DNS servers. + +#### DNS at your router + +You can set your entire network to use OpenNIC by making this change to your router. You won't have to configure your computer's connection because the router will provide the correct DNS server automatically. I can't demonstrate this because router interfaces differ depending on the manufacturer. Furthermore, some internet service providers (ISP) don't allow you to modify your name server settings, so this isn't always an option. + +### Test OpenNIC + +To explore the "other" internet you've unlocked, try navigating to `grep.geek` in your browser. If you enter `http://grep.geek`, then your browser takes you to a search engine for OpenNIC. If you enter just `grep.geek`, then your browser interferes, taking you to your default search engine (such as [Searx][8] or [YaCy][9]), with an offer at the top of the window to navigate to the page you requested in the first place. + +![OpenNIC][10] + +(Klaatu, [CC BY-SA 4.0][11]) + +Either way, you end up at `grep.geek` and can now search the OpenNIC version of the web. + +### Great wide open + +The internet is meant to be a place of exploration, discovery, and equal access. OpenNIC helps ensure all of these things using existing infrastructure and technology. It's an opt-in internet alternative. If these ideas appeal to you, give it a try! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/opennic-internet + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW-Internet_construction_9401467_520x292_0512_dc.png?itok=RPkPPtDe (An intersection of pipes.) +[2]: https://tools.ietf.org/html/rfc791 +[3]: https://tools.ietf.org/html/rfc1035 +[4]: https://www.icann.org/resources/pages/register-domain-name-2017-06-20-en +[5]: http://opennic.org +[6]: https://opensource.com/article/20/7/nmcli +[7]: https://opensource.com/article/17/9/what-edge-computing +[8]: http://searx.me +[9]: https://opensource.com/article/20/2/open-source-search-engine +[10]: https://opensource.com/sites/default/files/uploads/did-you-mean.jpg (OpenNIC) +[11]: https://creativecommons.org/licenses/by-sa/4.0/ From f8bc31ae7b1643435ea3c9927a398151d07d989e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 1 May 2021 10:52:13 +0800 Subject: [PATCH 047/170] PRF @Kevin3599 --- ...0210423 What-s New in Ubuntu MATE 21.04.md | 121 ++++++++---------- 1 file changed, 50 insertions(+), 71 deletions(-) diff --git a/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md b/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md index 34195f0f90..679a271664 100644 --- a/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md +++ b/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md @@ -2,112 +2,91 @@ [#]: via: (https://news.itsfoss.com/ubuntu-mate-21-04-release/) [#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) [#]: collector: (lujun9972) -[#]: translator: (Kevin3599 ) -[#]: reviewer: ( ) +[#]: translator: (Kevin3599) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -Ubuntu MATE 21.04更新,多项新功能来袭 +Ubuntu MATE 21.04 更新,多项新功能来袭 ====== -自从18.10发行版以来,yaru一直都是Ubuntu的默认用户桌面,今年,Yaru团队与Canonical Design和Ubuntu桌面团队携手合作,为Ubuntu MATE 21.04创建了新的外观界面。 +> 与 Yaru 团队合作,Ubuntu MATE 带来了一个主题大修、一系列有趣的功能和性能改进。 -### Ubuntu21.04有什么新变化? +![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu-21-04-mate-release.png?w=1200&ssl=1) -以下就是Ubuntu MATE 21.04此次发布中的主要变更 +自从 18.10 发行版以来,Yaru 一直都是 Ubuntu 的默认用户桌面,今年,Yaru 团队与Canonical Design 和 Ubuntu 桌面团队携手合作,为 Ubuntu MATE 21.04 创建了新的外观界面。 -### MATE桌面 +### Ubuntu MATE 21.04 有什么新变化? -此次更新的MATE桌面相比以往并没有较大改动,此次更更新只是修复了错误BUG同时更新了语言翻译,Debian中的MATE软件包已经更新,用户可以下载所有的BUG修复和更新。 +以下就是 Ubuntu MATE 21.04 此次发布中的关键变化: -### Avatana指示器 +#### MATE 桌面 + +此次更新的 MATE 桌面相比以往并没有较大改动,此次只是修复了错误 BUG 同时更新了语言翻译,Debian 中的 MATE 软件包已经更新,用户可以下载所有的 BUG 修复和更新。 + +#### Avatana 指示器 ![][1] -这是一个控制面板指示器(也称为系统托盘),面板指示区域也就是您的系统托盘。现在,您可以从控制中心更改Ayatana指示器的设置。 +这是一个控制面板指示器(也称为系统托盘)的动作、布局和行为的系统。现在,你可以从控制中心更改 Ayatana 指示器的设置。 -添加了新的打印机标识,并删除了RedShift以保持稳定。 +添加了一个新的打印机标识,并删除了 RedShift 以保持稳定。 -### Yaru MATE主题 +### Yaru MATE 主题 -Yaru MATE现在是Yaru主题的派生产品。 Yaru MATE将提供浅色和深色主题,浅色作为默认主题。来确保更好的应用程序兼容性。 +Yaru MATE 现在是 Yaru 主题的派生产品。Yaru MATE 将提供浅色和深色主题,浅色作为默认主题。来确保更好的应用程序兼容性。 -从现在开始,用户可以使用GTK 2.x,3.x,4.x浅色和深色主题。也可以将Suru图标和某些新图标一起使用。 +从现在开始,用户可以使用 GTK 2.x、3.x、4.x 浅色和深色主题,也可以使用 Suru 图标以及一些新的图标。 -LibreOffice在MATE上会有新的默认桌面图标,字体对比度也得到了改善。您会发现阅读小字体文本或远距离阅读更加容易。 +LibreOffice 在 MATE 上会有新的默认桌面图标,字体对比度也得到了改善。你会发现阅读小字体文本或远距离阅读更加容易。 -网页依旧是深色模式,要在网站以及其他发行版中使用深色主题,只需启用Yaru MATE深色主题即可。 +如果在系统层面选择了深色模式,网站将维持深色。要让网站和系统的其它部分一起使用深色主题,只需启用 Yaru MATE 深色主题即可。 -现在,Macro,Metacity和Compiz的管理器主题使用了矢量图标。这意味着,如果您的屏幕较大,图标将不会像素画,又是一个小细节! +现在,Macro、Metacity 和 Compiz 的管理器主题使用了矢量图标。这意味着,如果你的屏幕较大,图标不会看起来像是像素画,又是一个小细节! -### Yaru MATE 快照 +### Yaru MATE Snap 包 -尽管您现在无法真正安装MATE主题,但是不要着急,它马上就来了!gtk-theme-yaru-mate和icon-theme-yaru-mate快照已经是预安装的,可以在需要将主题连接到兼容快照使用。 +尽管你现在无法安装 MATE 主题,但是不要着急,它很快就可以了。gtk-theme-yaru-mate 和 icon-theme-yaru-mate Snap 包是预安装的,可以在需要将主题连接到兼容的 Snap 软件包时使用。 -根据官方发布的公告,该功能将很快自动将您的主题连接到兼容的快照: +根据官方发布的公告,Snapd 很快就会自动将你的主题连接到兼容的 Snap 包: -> 快照功能很快将能够自动安装与您当前主题匹配的主题快照。创建的快照可以随时与该功能集成。 -> -### Mutiny Layout的新变化 +> Snapd 很快就能自动安装与你当前活动主题相匹配的主题的 snap 包。我们创建的 snap 包已经准备好在该功能可用时与之整合。 -![Mutiny Layout实装深色主题][2] +### Mutiny 布局的新变化 -Mutiny布局模仿Unity的桌面布局。删除了MATE Dock Applet,并且对Mutiny Layout进行了优化以使用Plank。Plank主题被系统自动应用。操作是通过Mate Tweak切换到Mutiny Layout。Plank的深色和浅色Yaru主题都包含在内。 +![应用了深色主题的 Mutiny 布局][2] -其他调整和更新使得mutiny在不改变整体风格的前提下具备了更高的可靠性 +Mutiny 布局模仿了 Unity 的桌面布局。删除了 MATE 软件坞小应用,并且对 Mutiny 布局进行了优化以使用 Plank。Plank 会被系统自动应用主题。这是通过 Mate Tweak 切换到 Mutiny 布局完成的。Plank 的深色和浅色 Yaru 主题都包含在内。 + +其他调整和更新使得 Mutiny 在不改变整体风格的前提下具备了更高的可靠性 ### 主要应用升级 - * Firefox 87(火狐浏览器) + * Firefox 87(火狐浏览器) * LibreOffice 7.1.2.2(办公软件) - * Evolution 3.40(邮件) - * Celluloid 0.20(视频播放器) - - + * Evolution 3.40(邮件) + * Celluloid 0.20(视频播放器) ### 其他更改 - * Linux命令的忠实用户会喜欢在Ubuntu MATEZ中默认安装的neofetch,htop和inxi之类的命令。 - * 树莓派版本很快将会发布。 - * Ubuntu MATE上没有离线更新选项 - * 针对侧边软件坞和底部软件坞引入了新的Plank主题,使其与Yaru MATE的配色方案相匹配。 - * 简洁的边缘样式已应用于Yaru MATE窗口管理器,用于侧面窗口。 - * 多彩的Ubuntu MATE欢迎界面现在已启用。 - * Yaru MATE主题快照和图标主题快照已在Snap Store中发布 - * 为Ubuntu MATE 20.04 LTS的用户发行了Yaru MATE PPA。 + * Linux 命令的忠实用户会喜欢在 Ubuntu MATE 中默认安装的 `neofetch`、`htop` 和 `inxi` 之类的命令。 + * 树莓派的 21.04 版本很快将会发布。 + * Ubuntu MATE 上没有离线升级选项。 + * 针对侧边和底部软件坞引入了新的 Plank 主题,使其与 Yaru MATE 的配色方案相匹配。 + * Yaru MATE 的窗口管理器为侧边平铺的窗口应用了简洁的边缘风格。 + * Ubuntu MATE 欢迎窗口有多种色彩可供选择。 + * Yaru MATE 主题和图标主题的快照包已在 Snap Store 中发布。 + * 为 Ubuntu MATE 20.04 LTS 的用户发布了 Yaru MATE PPA。 +### 下载 Ubuntu MATE 21.04 +你可以从官网上下载镜像: -### 下载Ubuntu MATE 21.04 - -你可以从官网上下载镜像 - -[Ubuntu MATE 21.04][3] - -如果你对此感兴趣, [请查看发行说明][4] - -你对尝试Yaru MATE感到兴奋吗?你怎么看?请看评论区。 - -#### 大科技网站获得数百万收入! - -如果您喜欢我们在这里所做的事情,请考虑捐赠以支持我们的独立出版物。您的支持将帮助我们继续发布专注于桌面Linux和开源软件的内容。 - -我不感兴趣 - -#### _关联_ - - * [Ubuntu 21.04本周正在发布!看看新功能][5] - * ![][6] ![Ubuntu 21.04 新特征][7] - - - * [Ubuntu 21.04没有Gnome 40 [这是一件好事]][8] - * ![][6] ![Ubuntu 21.04没有GNOME40][9] - - - * [Ubuntu 21.04 Beta 现在已经可以下载了!][10] - * ![][6] ![][11] +- [Ubuntu MATE 21.04][3] +如果你对此感兴趣,[请查看发行说明][4]。 +你对尝试新的 Yaru MATE 感到兴奋吗?你觉得怎么样?请在下面的评论中告诉我们。 -------------------------------------------------------------------------------- @@ -115,15 +94,15 @@ via: https://news.itsfoss.com/ubuntu-mate-21-04-release/ 作者:[Asesh Basu][a] 选题:[lujun9972][b] -译者:[Kevin3599](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Kevin3599](https://github.com/Kevin3599) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://news.itsfoss.com/author/asesh/ [b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUxMCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[1]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/yaru-mate-mutiny-dark.jpg?resize=1568%2C882&ssl=1 +[2]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/yaru-mate-mutiny-dark.jpg?resize=1568%2C882&ssl=1 [3]: https://ubuntu-mate.org/download/ [4]: https://discourse.ubuntu.com/t/hirsute-hippo-release-notes/19221 [5]: https://news.itsfoss.com/ubuntu-21-04-features/ From ac21f6081f184c8b5f7f32de50eea99465395e7b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 1 May 2021 10:55:13 +0800 Subject: [PATCH 048/170] PRF&PUB @Kevin3599 https://linux.cn/article-13349-1.html --- .../20210423 What-s New in Ubuntu MATE 21.04.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) rename {translated/news => published}/20210423 What-s New in Ubuntu MATE 21.04.md (87%) diff --git a/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md b/published/20210423 What-s New in Ubuntu MATE 21.04.md similarity index 87% rename from translated/news/20210423 What-s New in Ubuntu MATE 21.04.md rename to published/20210423 What-s New in Ubuntu MATE 21.04.md index 679a271664..fe2eaa8347 100644 --- a/translated/news/20210423 What-s New in Ubuntu MATE 21.04.md +++ b/published/20210423 What-s New in Ubuntu MATE 21.04.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (Kevin3599) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13349-1.html) Ubuntu MATE 21.04 更新,多项新功能来袭 ====== @@ -104,11 +104,4 @@ via: https://news.itsfoss.com/ubuntu-mate-21-04-release/ [1]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/yaru-mate-mutiny-dark.jpg?resize=1568%2C882&ssl=1 [2]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/yaru-mate-mutiny-dark.jpg?resize=1568%2C882&ssl=1 [3]: https://ubuntu-mate.org/download/ -[4]: https://discourse.ubuntu.com/t/hirsute-hippo-release-notes/19221 -[5]: https://news.itsfoss.com/ubuntu-21-04-features/ -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu_21_04_features.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[8]: https://news.itsfoss.com/no-gnome-40-in-ubuntu-21-04/ -[9]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/gnome-40-ubuntu-21-04.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[10]: https://news.itsfoss.com/ubuntu-21-04-beta-release/ -[11]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu-21-04-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[4]: https://discourse.ubuntu.com/t/hirsute-hippo-release-notes/19221 \ No newline at end of file From 79f7c7dc6fe0db9144a302b62bfeff1f110d0cbc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 1 May 2021 11:12:54 +0800 Subject: [PATCH 049/170] PRF --- published/20210423 What-s New in Ubuntu MATE 21.04.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/published/20210423 What-s New in Ubuntu MATE 21.04.md b/published/20210423 What-s New in Ubuntu MATE 21.04.md index fe2eaa8347..870b8c13fc 100644 --- a/published/20210423 What-s New in Ubuntu MATE 21.04.md +++ b/published/20210423 What-s New in Ubuntu MATE 21.04.md @@ -32,7 +32,7 @@ Ubuntu MATE 21.04 更新,多项新功能来袭 添加了一个新的打印机标识,并删除了 RedShift 以保持稳定。 -### Yaru MATE 主题 +#### Yaru MATE 主题 Yaru MATE 现在是 Yaru 主题的派生产品。Yaru MATE 将提供浅色和深色主题,浅色作为默认主题。来确保更好的应用程序兼容性。 @@ -44,7 +44,7 @@ LibreOffice 在 MATE 上会有新的默认桌面图标,字体对比度也得 现在,Macro、Metacity 和 Compiz 的管理器主题使用了矢量图标。这意味着,如果你的屏幕较大,图标不会看起来像是像素画,又是一个小细节! -### Yaru MATE Snap 包 +#### Yaru MATE Snap 包 尽管你现在无法安装 MATE 主题,但是不要着急,它很快就可以了。gtk-theme-yaru-mate 和 icon-theme-yaru-mate Snap 包是预安装的,可以在需要将主题连接到兼容的 Snap 软件包时使用。 @@ -52,7 +52,7 @@ LibreOffice 在 MATE 上会有新的默认桌面图标,字体对比度也得 > Snapd 很快就能自动安装与你当前活动主题相匹配的主题的 snap 包。我们创建的 snap 包已经准备好在该功能可用时与之整合。 -### Mutiny 布局的新变化 +#### Mutiny 布局的新变化 ![应用了深色主题的 Mutiny 布局][2] @@ -60,14 +60,14 @@ Mutiny 布局模仿了 Unity 的桌面布局。删除了 MATE 软件坞小应用 其他调整和更新使得 Mutiny 在不改变整体风格的前提下具备了更高的可靠性 -### 主要应用升级 +#### 主要应用升级 * Firefox 87(火狐浏览器) * LibreOffice 7.1.2.2(办公软件) * Evolution 3.40(邮件) * Celluloid 0.20(视频播放器) -### 其他更改 +#### 其他更改 * Linux 命令的忠实用户会喜欢在 Ubuntu MATE 中默认安装的 `neofetch`、`htop` 和 `inxi` 之类的命令。 * 树莓派的 21.04 版本很快将会发布。 From 7f497f2d7d24841ae21c2dd29db9f7731c1d49c9 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 1 May 2021 11:16:39 +0800 Subject: [PATCH 050/170] =?UTF-8?q?=E5=BD=92=E6=A1=A3=20202104?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20190319 How to set up a homelab from hardware to firewall.md | 0 .../20200106 Open Source Supply Chain- A Matter of Trust.md | 0 ...23 4 open source chat applications you should use right now.md | 0 ...0200617 How to handle dynamic and static libraries in Linux.md | 0 .../20200707 Use systemd timers instead of cronjobs.md | 0 ...tributions You Can Rely on for Your Ancient 32-bit Computer.md | 0 .../20201109 Getting started with Stratis encryption.md | 0 ...ce Forum Software That You Can Deploy on Your Linux Servers.md | 0 .../{ => 202104}/20201209 Program a simple game with Elixir.md | 0 ...3 Improve your productivity with this Linux automation tool.md | 0 ...d Fingerprint Login in Ubuntu and Other Linux Distributions.md | 0 published/{ => 202104}/20210222 5 benefits of choosing Linux.md | 0 .../{ => 202104}/20210225 How to use the Linux anacron command.md | 0 .../20210303 5 signs you might be a Rust programmer.md | 0 .../20210308 Cast your Android device with a Raspberry Pi.md | 0 .../20210317 My favorite open source project management tools.md | 0 .../{ => 202104}/20210318 Reverse Engineering a Docker Image.md | 0 published/{ => 202104}/20210324 Read and write files with Bash.md | 0 ...325 Plausible- Privacy-Focused Google Analytics Alternative.md | 0 .../{ => 202104}/20210326 How to read and write files in C.md | 0 .../20210326 Why you should care about service mesh.md | 0 .../{ => 202104}/20210329 Manipulate data in files with Lua.md | 0 ...29 Why I love using the IPython shell and Jupyter notebooks.md | 0 ...Flash- A Modern Open-Source Feed Reader With Feedly Support.md | 0 .../20210331 3 reasons I use the Git cherry-pick command.md | 0 ...31 Use this open source tool to monitor variables in Python.md | 0 .../{ => 202104}/20210401 Find what changed in a Git commit.md | 0 ...ayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md | 0 .../20210402 A practical guide to using the git stash command.md | 0 .../20210403 What problems do people solve with strace.md | 0 ...Multiple Markdown Files into HTML or Other Formats in Linux.md | 0 .../20210405 7 Git tips for managing your home directory.md | 0 .../20210406 Experiment on your code freely with Git worktree.md | 0 .../{ => 202104}/20210406 Teach anyone how to code with Hedy.md | 0 ...how CPU Details Beautifully in Linux Terminal With CPUFetch.md | 0 .../20210407 Using network bound disk encryption with Stratis.md | 0 published/{ => 202104}/20210407 What is Git cherry-picking.md | 0 ...20210407 Why I love using bspwm for my Linux window manager.md | 0 .../20210409 4 ways open source gives you a competitive edge.md | 0 .../{ => 202104}/20210410 5 signs you-re a groff programmer.md | 0 .../20210410 How to Install Steam on Fedora -Beginner-s Tip.md | 0 ...y Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md | 0 ...rce tools and tips to securing a Linux server for beginners.md | 0 .../20210412 Encrypt your files with this open source software.md | 0 .../20210413 Create an encrypted file vault on Linux.md | 0 .../20210413 Create and Edit EPUB Files on Linux With Sigil.md | 0 ...414 Make your data boss-friendly with this open source tool.md | 0 ... customizing your Mac terminal theme with open source tools.md | 0 ...9 Something bugging you in Fedora Linux- Let-s get it fixed.md | 0 ...t- Ambient Noise App With Variety of Sounds to Stay Focused.md | 0 ...e Guided Installer in Arch is a Step in the Right Direction.md | 0 ...0210421 How to Delete Partitions in Linux -Beginner-s Guide.md | 0 .../{ => 202104}/20210421 Optimize your Python code with C.md | 0 .../{ => 202104}/20210422 Restore an old MacBook with Linux.md | 0 54 files changed, 0 insertions(+), 0 deletions(-) rename published/{ => 202104}/20190319 How to set up a homelab from hardware to firewall.md (100%) rename published/{ => 202104}/20200106 Open Source Supply Chain- A Matter of Trust.md (100%) rename published/{ => 202104}/20200423 4 open source chat applications you should use right now.md (100%) rename published/{ => 202104}/20200617 How to handle dynamic and static libraries in Linux.md (100%) rename published/{ => 202104}/20200707 Use systemd timers instead of cronjobs.md (100%) rename published/{ => 202104}/20201106 11 Linux Distributions You Can Rely on for Your Ancient 32-bit Computer.md (100%) rename published/{ => 202104}/20201109 Getting started with Stratis encryption.md (100%) rename published/{ => 202104}/20201204 9 Open Source Forum Software That You Can Deploy on Your Linux Servers.md (100%) rename published/{ => 202104}/20201209 Program a simple game with Elixir.md (100%) rename published/{ => 202104}/20210203 Improve your productivity with this Linux automation tool.md (100%) rename published/{ => 202104}/20210210 How to Add Fingerprint Login in Ubuntu and Other Linux Distributions.md (100%) rename published/{ => 202104}/20210222 5 benefits of choosing Linux.md (100%) rename published/{ => 202104}/20210225 How to use the Linux anacron command.md (100%) rename published/{ => 202104}/20210303 5 signs you might be a Rust programmer.md (100%) rename published/{ => 202104}/20210308 Cast your Android device with a Raspberry Pi.md (100%) rename published/{ => 202104}/20210317 My favorite open source project management tools.md (100%) rename published/{ => 202104}/20210318 Reverse Engineering a Docker Image.md (100%) rename published/{ => 202104}/20210324 Read and write files with Bash.md (100%) rename published/{ => 202104}/20210325 Plausible- Privacy-Focused Google Analytics Alternative.md (100%) rename published/{ => 202104}/20210326 How to read and write files in C.md (100%) rename published/{ => 202104}/20210326 Why you should care about service mesh.md (100%) rename published/{ => 202104}/20210329 Manipulate data in files with Lua.md (100%) rename published/{ => 202104}/20210329 Why I love using the IPython shell and Jupyter notebooks.md (100%) rename published/{ => 202104}/20210330 NewsFlash- A Modern Open-Source Feed Reader With Feedly Support.md (100%) rename published/{ => 202104}/20210331 3 reasons I use the Git cherry-pick command.md (100%) rename published/{ => 202104}/20210331 Use this open source tool to monitor variables in Python.md (100%) rename published/{ => 202104}/20210401 Find what changed in a Git commit.md (100%) rename published/{ => 202104}/20210401 Wrong Time Displayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md (100%) rename published/{ => 202104}/20210402 A practical guide to using the git stash command.md (100%) rename published/{ => 202104}/20210403 What problems do people solve with strace.md (100%) rename published/{ => 202104}/20210404 Converting Multiple Markdown Files into HTML or Other Formats in Linux.md (100%) rename published/{ => 202104}/20210405 7 Git tips for managing your home directory.md (100%) rename published/{ => 202104}/20210406 Experiment on your code freely with Git worktree.md (100%) rename published/{ => 202104}/20210406 Teach anyone how to code with Hedy.md (100%) rename published/{ => 202104}/20210407 Show CPU Details Beautifully in Linux Terminal With CPUFetch.md (100%) rename published/{ => 202104}/20210407 Using network bound disk encryption with Stratis.md (100%) rename published/{ => 202104}/20210407 What is Git cherry-picking.md (100%) rename published/{ => 202104}/20210407 Why I love using bspwm for my Linux window manager.md (100%) rename published/{ => 202104}/20210409 4 ways open source gives you a competitive edge.md (100%) rename published/{ => 202104}/20210410 5 signs you-re a groff programmer.md (100%) rename published/{ => 202104}/20210410 How to Install Steam on Fedora -Beginner-s Tip.md (100%) rename published/{ => 202104}/20210411 GNOME-s Very Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md (100%) rename published/{ => 202104}/20210412 6 open source tools and tips to securing a Linux server for beginners.md (100%) rename published/{ => 202104}/20210412 Encrypt your files with this open source software.md (100%) rename published/{ => 202104}/20210413 Create an encrypted file vault on Linux.md (100%) rename published/{ => 202104}/20210413 Create and Edit EPUB Files on Linux With Sigil.md (100%) rename published/{ => 202104}/20210414 Make your data boss-friendly with this open source tool.md (100%) rename published/{ => 202104}/20210419 4 steps to customizing your Mac terminal theme with open source tools.md (100%) rename published/{ => 202104}/20210419 Something bugging you in Fedora Linux- Let-s get it fixed.md (100%) rename published/{ => 202104}/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md (100%) rename published/{ => 202104}/20210420 The Guided Installer in Arch is a Step in the Right Direction.md (100%) rename published/{ => 202104}/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md (100%) rename published/{ => 202104}/20210421 Optimize your Python code with C.md (100%) rename published/{ => 202104}/20210422 Restore an old MacBook with Linux.md (100%) diff --git a/published/20190319 How to set up a homelab from hardware to firewall.md b/published/202104/20190319 How to set up a homelab from hardware to firewall.md similarity index 100% rename from published/20190319 How to set up a homelab from hardware to firewall.md rename to published/202104/20190319 How to set up a homelab from hardware to firewall.md diff --git a/published/20200106 Open Source Supply Chain- A Matter of Trust.md b/published/202104/20200106 Open Source Supply Chain- A Matter of Trust.md similarity index 100% rename from published/20200106 Open Source Supply Chain- A Matter of Trust.md rename to published/202104/20200106 Open Source Supply Chain- A Matter of Trust.md diff --git a/published/20200423 4 open source chat applications you should use right now.md b/published/202104/20200423 4 open source chat applications you should use right now.md similarity index 100% rename from published/20200423 4 open source chat applications you should use right now.md rename to published/202104/20200423 4 open source chat applications you should use right now.md diff --git a/published/20200617 How to handle dynamic and static libraries in Linux.md b/published/202104/20200617 How to handle dynamic and static libraries in Linux.md similarity index 100% rename from published/20200617 How to handle dynamic and static libraries in Linux.md rename to published/202104/20200617 How to handle dynamic and static libraries in Linux.md diff --git a/published/20200707 Use systemd timers instead of cronjobs.md b/published/202104/20200707 Use systemd timers instead of cronjobs.md similarity index 100% rename from published/20200707 Use systemd timers instead of cronjobs.md rename to published/202104/20200707 Use systemd timers instead of cronjobs.md diff --git a/published/20201106 11 Linux Distributions You Can Rely on for Your Ancient 32-bit Computer.md b/published/202104/20201106 11 Linux Distributions You Can Rely on for Your Ancient 32-bit Computer.md similarity index 100% rename from published/20201106 11 Linux Distributions You Can Rely on for Your Ancient 32-bit Computer.md rename to published/202104/20201106 11 Linux Distributions You Can Rely on for Your Ancient 32-bit Computer.md diff --git a/published/20201109 Getting started with Stratis encryption.md b/published/202104/20201109 Getting started with Stratis encryption.md similarity index 100% rename from published/20201109 Getting started with Stratis encryption.md rename to published/202104/20201109 Getting started with Stratis encryption.md diff --git a/published/20201204 9 Open Source Forum Software That You Can Deploy on Your Linux Servers.md b/published/202104/20201204 9 Open Source Forum Software That You Can Deploy on Your Linux Servers.md similarity index 100% rename from published/20201204 9 Open Source Forum Software That You Can Deploy on Your Linux Servers.md rename to published/202104/20201204 9 Open Source Forum Software That You Can Deploy on Your Linux Servers.md diff --git a/published/20201209 Program a simple game with Elixir.md b/published/202104/20201209 Program a simple game with Elixir.md similarity index 100% rename from published/20201209 Program a simple game with Elixir.md rename to published/202104/20201209 Program a simple game with Elixir.md diff --git a/published/20210203 Improve your productivity with this Linux automation tool.md b/published/202104/20210203 Improve your productivity with this Linux automation tool.md similarity index 100% rename from published/20210203 Improve your productivity with this Linux automation tool.md rename to published/202104/20210203 Improve your productivity with this Linux automation tool.md diff --git a/published/20210210 How to Add Fingerprint Login in Ubuntu and Other Linux Distributions.md b/published/202104/20210210 How to Add Fingerprint Login in Ubuntu and Other Linux Distributions.md similarity index 100% rename from published/20210210 How to Add Fingerprint Login in Ubuntu and Other Linux Distributions.md rename to published/202104/20210210 How to Add Fingerprint Login in Ubuntu and Other Linux Distributions.md diff --git a/published/20210222 5 benefits of choosing Linux.md b/published/202104/20210222 5 benefits of choosing Linux.md similarity index 100% rename from published/20210222 5 benefits of choosing Linux.md rename to published/202104/20210222 5 benefits of choosing Linux.md diff --git a/published/20210225 How to use the Linux anacron command.md b/published/202104/20210225 How to use the Linux anacron command.md similarity index 100% rename from published/20210225 How to use the Linux anacron command.md rename to published/202104/20210225 How to use the Linux anacron command.md diff --git a/published/20210303 5 signs you might be a Rust programmer.md b/published/202104/20210303 5 signs you might be a Rust programmer.md similarity index 100% rename from published/20210303 5 signs you might be a Rust programmer.md rename to published/202104/20210303 5 signs you might be a Rust programmer.md diff --git a/published/20210308 Cast your Android device with a Raspberry Pi.md b/published/202104/20210308 Cast your Android device with a Raspberry Pi.md similarity index 100% rename from published/20210308 Cast your Android device with a Raspberry Pi.md rename to published/202104/20210308 Cast your Android device with a Raspberry Pi.md diff --git a/published/20210317 My favorite open source project management tools.md b/published/202104/20210317 My favorite open source project management tools.md similarity index 100% rename from published/20210317 My favorite open source project management tools.md rename to published/202104/20210317 My favorite open source project management tools.md diff --git a/published/20210318 Reverse Engineering a Docker Image.md b/published/202104/20210318 Reverse Engineering a Docker Image.md similarity index 100% rename from published/20210318 Reverse Engineering a Docker Image.md rename to published/202104/20210318 Reverse Engineering a Docker Image.md diff --git a/published/20210324 Read and write files with Bash.md b/published/202104/20210324 Read and write files with Bash.md similarity index 100% rename from published/20210324 Read and write files with Bash.md rename to published/202104/20210324 Read and write files with Bash.md diff --git a/published/20210325 Plausible- Privacy-Focused Google Analytics Alternative.md b/published/202104/20210325 Plausible- Privacy-Focused Google Analytics Alternative.md similarity index 100% rename from published/20210325 Plausible- Privacy-Focused Google Analytics Alternative.md rename to published/202104/20210325 Plausible- Privacy-Focused Google Analytics Alternative.md diff --git a/published/20210326 How to read and write files in C.md b/published/202104/20210326 How to read and write files in C.md similarity index 100% rename from published/20210326 How to read and write files in C.md rename to published/202104/20210326 How to read and write files in C.md diff --git a/published/20210326 Why you should care about service mesh.md b/published/202104/20210326 Why you should care about service mesh.md similarity index 100% rename from published/20210326 Why you should care about service mesh.md rename to published/202104/20210326 Why you should care about service mesh.md diff --git a/published/20210329 Manipulate data in files with Lua.md b/published/202104/20210329 Manipulate data in files with Lua.md similarity index 100% rename from published/20210329 Manipulate data in files with Lua.md rename to published/202104/20210329 Manipulate data in files with Lua.md diff --git a/published/20210329 Why I love using the IPython shell and Jupyter notebooks.md b/published/202104/20210329 Why I love using the IPython shell and Jupyter notebooks.md similarity index 100% rename from published/20210329 Why I love using the IPython shell and Jupyter notebooks.md rename to published/202104/20210329 Why I love using the IPython shell and Jupyter notebooks.md diff --git a/published/20210330 NewsFlash- A Modern Open-Source Feed Reader With Feedly Support.md b/published/202104/20210330 NewsFlash- A Modern Open-Source Feed Reader With Feedly Support.md similarity index 100% rename from published/20210330 NewsFlash- A Modern Open-Source Feed Reader With Feedly Support.md rename to published/202104/20210330 NewsFlash- A Modern Open-Source Feed Reader With Feedly Support.md diff --git a/published/20210331 3 reasons I use the Git cherry-pick command.md b/published/202104/20210331 3 reasons I use the Git cherry-pick command.md similarity index 100% rename from published/20210331 3 reasons I use the Git cherry-pick command.md rename to published/202104/20210331 3 reasons I use the Git cherry-pick command.md diff --git a/published/20210331 Use this open source tool to monitor variables in Python.md b/published/202104/20210331 Use this open source tool to monitor variables in Python.md similarity index 100% rename from published/20210331 Use this open source tool to monitor variables in Python.md rename to published/202104/20210331 Use this open source tool to monitor variables in Python.md diff --git a/published/20210401 Find what changed in a Git commit.md b/published/202104/20210401 Find what changed in a Git commit.md similarity index 100% rename from published/20210401 Find what changed in a Git commit.md rename to published/202104/20210401 Find what changed in a Git commit.md diff --git a/published/20210401 Wrong Time Displayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md b/published/202104/20210401 Wrong Time Displayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md similarity index 100% rename from published/20210401 Wrong Time Displayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md rename to published/202104/20210401 Wrong Time Displayed in Windows-Linux Dual Boot Setup- Here-s How to Fix it.md diff --git a/published/20210402 A practical guide to using the git stash command.md b/published/202104/20210402 A practical guide to using the git stash command.md similarity index 100% rename from published/20210402 A practical guide to using the git stash command.md rename to published/202104/20210402 A practical guide to using the git stash command.md diff --git a/published/20210403 What problems do people solve with strace.md b/published/202104/20210403 What problems do people solve with strace.md similarity index 100% rename from published/20210403 What problems do people solve with strace.md rename to published/202104/20210403 What problems do people solve with strace.md diff --git a/published/20210404 Converting Multiple Markdown Files into HTML or Other Formats in Linux.md b/published/202104/20210404 Converting Multiple Markdown Files into HTML or Other Formats in Linux.md similarity index 100% rename from published/20210404 Converting Multiple Markdown Files into HTML or Other Formats in Linux.md rename to published/202104/20210404 Converting Multiple Markdown Files into HTML or Other Formats in Linux.md diff --git a/published/20210405 7 Git tips for managing your home directory.md b/published/202104/20210405 7 Git tips for managing your home directory.md similarity index 100% rename from published/20210405 7 Git tips for managing your home directory.md rename to published/202104/20210405 7 Git tips for managing your home directory.md diff --git a/published/20210406 Experiment on your code freely with Git worktree.md b/published/202104/20210406 Experiment on your code freely with Git worktree.md similarity index 100% rename from published/20210406 Experiment on your code freely with Git worktree.md rename to published/202104/20210406 Experiment on your code freely with Git worktree.md diff --git a/published/20210406 Teach anyone how to code with Hedy.md b/published/202104/20210406 Teach anyone how to code with Hedy.md similarity index 100% rename from published/20210406 Teach anyone how to code with Hedy.md rename to published/202104/20210406 Teach anyone how to code with Hedy.md diff --git a/published/20210407 Show CPU Details Beautifully in Linux Terminal With CPUFetch.md b/published/202104/20210407 Show CPU Details Beautifully in Linux Terminal With CPUFetch.md similarity index 100% rename from published/20210407 Show CPU Details Beautifully in Linux Terminal With CPUFetch.md rename to published/202104/20210407 Show CPU Details Beautifully in Linux Terminal With CPUFetch.md diff --git a/published/20210407 Using network bound disk encryption with Stratis.md b/published/202104/20210407 Using network bound disk encryption with Stratis.md similarity index 100% rename from published/20210407 Using network bound disk encryption with Stratis.md rename to published/202104/20210407 Using network bound disk encryption with Stratis.md diff --git a/published/20210407 What is Git cherry-picking.md b/published/202104/20210407 What is Git cherry-picking.md similarity index 100% rename from published/20210407 What is Git cherry-picking.md rename to published/202104/20210407 What is Git cherry-picking.md diff --git a/published/20210407 Why I love using bspwm for my Linux window manager.md b/published/202104/20210407 Why I love using bspwm for my Linux window manager.md similarity index 100% rename from published/20210407 Why I love using bspwm for my Linux window manager.md rename to published/202104/20210407 Why I love using bspwm for my Linux window manager.md diff --git a/published/20210409 4 ways open source gives you a competitive edge.md b/published/202104/20210409 4 ways open source gives you a competitive edge.md similarity index 100% rename from published/20210409 4 ways open source gives you a competitive edge.md rename to published/202104/20210409 4 ways open source gives you a competitive edge.md diff --git a/published/20210410 5 signs you-re a groff programmer.md b/published/202104/20210410 5 signs you-re a groff programmer.md similarity index 100% rename from published/20210410 5 signs you-re a groff programmer.md rename to published/202104/20210410 5 signs you-re a groff programmer.md diff --git a/published/20210410 How to Install Steam on Fedora -Beginner-s Tip.md b/published/202104/20210410 How to Install Steam on Fedora -Beginner-s Tip.md similarity index 100% rename from published/20210410 How to Install Steam on Fedora -Beginner-s Tip.md rename to published/202104/20210410 How to Install Steam on Fedora -Beginner-s Tip.md diff --git a/published/20210411 GNOME-s Very Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md b/published/202104/20210411 GNOME-s Very Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md similarity index 100% rename from published/20210411 GNOME-s Very Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md rename to published/202104/20210411 GNOME-s Very Own -GNOME OS- is Not a Linux Distro for Everyone -Review.md diff --git a/published/20210412 6 open source tools and tips to securing a Linux server for beginners.md b/published/202104/20210412 6 open source tools and tips to securing a Linux server for beginners.md similarity index 100% rename from published/20210412 6 open source tools and tips to securing a Linux server for beginners.md rename to published/202104/20210412 6 open source tools and tips to securing a Linux server for beginners.md diff --git a/published/20210412 Encrypt your files with this open source software.md b/published/202104/20210412 Encrypt your files with this open source software.md similarity index 100% rename from published/20210412 Encrypt your files with this open source software.md rename to published/202104/20210412 Encrypt your files with this open source software.md diff --git a/published/20210413 Create an encrypted file vault on Linux.md b/published/202104/20210413 Create an encrypted file vault on Linux.md similarity index 100% rename from published/20210413 Create an encrypted file vault on Linux.md rename to published/202104/20210413 Create an encrypted file vault on Linux.md diff --git a/published/20210413 Create and Edit EPUB Files on Linux With Sigil.md b/published/202104/20210413 Create and Edit EPUB Files on Linux With Sigil.md similarity index 100% rename from published/20210413 Create and Edit EPUB Files on Linux With Sigil.md rename to published/202104/20210413 Create and Edit EPUB Files on Linux With Sigil.md diff --git a/published/20210414 Make your data boss-friendly with this open source tool.md b/published/202104/20210414 Make your data boss-friendly with this open source tool.md similarity index 100% rename from published/20210414 Make your data boss-friendly with this open source tool.md rename to published/202104/20210414 Make your data boss-friendly with this open source tool.md diff --git a/published/20210419 4 steps to customizing your Mac terminal theme with open source tools.md b/published/202104/20210419 4 steps to customizing your Mac terminal theme with open source tools.md similarity index 100% rename from published/20210419 4 steps to customizing your Mac terminal theme with open source tools.md rename to published/202104/20210419 4 steps to customizing your Mac terminal theme with open source tools.md diff --git a/published/20210419 Something bugging you in Fedora Linux- Let-s get it fixed.md b/published/202104/20210419 Something bugging you in Fedora Linux- Let-s get it fixed.md similarity index 100% rename from published/20210419 Something bugging you in Fedora Linux- Let-s get it fixed.md rename to published/202104/20210419 Something bugging you in Fedora Linux- Let-s get it fixed.md diff --git a/published/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md b/published/202104/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md similarity index 100% rename from published/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md rename to published/202104/20210420 Blanket- Ambient Noise App With Variety of Sounds to Stay Focused.md diff --git a/published/20210420 The Guided Installer in Arch is a Step in the Right Direction.md b/published/202104/20210420 The Guided Installer in Arch is a Step in the Right Direction.md similarity index 100% rename from published/20210420 The Guided Installer in Arch is a Step in the Right Direction.md rename to published/202104/20210420 The Guided Installer in Arch is a Step in the Right Direction.md diff --git a/published/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md b/published/202104/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md similarity index 100% rename from published/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md rename to published/202104/20210421 How to Delete Partitions in Linux -Beginner-s Guide.md diff --git a/published/20210421 Optimize your Python code with C.md b/published/202104/20210421 Optimize your Python code with C.md similarity index 100% rename from published/20210421 Optimize your Python code with C.md rename to published/202104/20210421 Optimize your Python code with C.md diff --git a/published/20210422 Restore an old MacBook with Linux.md b/published/202104/20210422 Restore an old MacBook with Linux.md similarity index 100% rename from published/20210422 Restore an old MacBook with Linux.md rename to published/202104/20210422 Restore an old MacBook with Linux.md From 3dc5d145759610cd42db2599f021c555dad2bc77 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 1 May 2021 11:21:04 +0800 Subject: [PATCH 051/170] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...n package index JSON APIs with requests.md | 230 ------------------ ...n package index JSON APIs with requests.md | 229 +++++++++++++++++ 2 files changed, 229 insertions(+), 230 deletions(-) delete mode 100644 sources/tech/20210330 Access Python package index JSON APIs with requests.md create mode 100644 translated/tech/20210330 Access Python package index JSON APIs with requests.md diff --git a/sources/tech/20210330 Access Python package index JSON APIs with requests.md b/sources/tech/20210330 Access Python package index JSON APIs with requests.md deleted file mode 100644 index 7f4a9f9df2..0000000000 --- a/sources/tech/20210330 Access Python package index JSON APIs with requests.md +++ /dev/null @@ -1,230 +0,0 @@ -[#]: subject: (Access Python package index JSON APIs with requests) -[#]: via: (https://opensource.com/article/21/3/python-package-index-json-apis-requests) -[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall) -[#]: collector: (lujun9972) -[#]: translator: (MjSeven) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Access Python package index JSON APIs with requests -====== -PyPI's JSON API is a machine-readable source of the same kind of data -you can access while browsing the website. -![Python programming language logo with question marks][1] - -PyPI, the Python package index, provides a JSON API for information about its packages. This is essentially a machine-readable source of the same kind of data you can access while browsing the website. For example, as a human, I can head to the [NumPy][2] project page in my browser, click around, and see which versions there are, what files are available, and things like release dates and which Python versions are supported: - -![NumPy project page][3] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -But if I want to write a program to access this data, I can use the JSON API instead of having to scrape and parse the HTML on these pages. - -As an aside: On the old PyPI website, when it was hosted at `pypi.python.org`, the NumPy project page was at `pypi.python.org/pypi/numpy`, and accessing the JSON was a simple matter of adding a `/json` on the end, hence `https://pypi.org/pypi/numpy/json`. Now the PyPI website is hosted at `pypi.org`, and NumPy's project page is at `pypi.org/project/numpy`. The new site doesn't include rendering the JSON, but it still runs as it was before. So now, rather than adding `/json` to the URL, you have to remember the URL where they are. - -You can open up the JSON for NumPy in your browser by heading to its URL. Firefox renders it nicely like this: - -![JSON rendered in Firefox][5] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -You can open `info`, `releases`, and `urls` to inspect the contents within. Or you can load it into a Python shell. Here are a few lines to get started: - - -``` -import requests -url = "" -r = requests.get(url) -data = r.json() -``` - -Once you have the data (calling `.json()` provides a [dictionary][6] of the data), you can inspect it: - -![Inspecting data][7] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -Open `releases`, and inspect the keys inside it: - -![Inspecting keys in releases][8] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -This shows that `releases` is a dictionary with version numbers as keys. Pick one (say, the latest one) and inspect that: - -![Inspecting version][9] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -Each release is a list, and this one contains 24 items. But what is each item? Since it's a list, you can index the first one and take a look: - -![Indexing an item][10] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -This item is a dictionary containing details about a particular file. So each of the 24 items in the list relates to a file associated with this particular version number, i.e., the 24 files listed at . - -You could write a script that looks for something within the available data. For example, the following loop looks for versions with sdist (source distribution) files that specify a `requires_python` attribute and prints them: - - -``` -for version, files in data['releases'].items(): -    for f in files: -        if f.get('packagetype') == 'sdist' and f.get('requires_python'): -            print(version, f['requires_python']) -``` - -![sdist files with requires_python attribute ][11] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -### piwheels - -Last year I [implemented a similar API][12] on the piwheels website. [piwheels.org][13] is a Python package index that provides wheels (precompiled binary packages) for the Raspberry Pi architecture. It's essentially a mirror of the package set on PyPI, but with Arm wheels instead of files uploaded to PyPI by package maintainers. - -Since piwheels mimics the URL structure of PyPI, you can change the `pypi.org` part of a project page's URL to `piwheels.org`. It'll show you a similar kind of project page with details about which versions we have built and which files are available. Since I liked how the old site allowed you to add `/json` to the end of the URL, I made ours work that way, so NumPy's project page on PyPI is [pypi.org/project/numpy][14]. On piwheels, it is [piwheels.org/project/numpy][15], and the JSON is at [piwheels.org/project/numpy/json][16]. - -There's no need to duplicate the contents of PyPI's API, so we provide information about what's available on piwheels and include a list of all known releases, some basic information, and a list of files we have: - -![JSON files available in piwheels][17] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -Similar to the previous PyPI example, you could create a script to analyze the API contents, for example, to show the number of files piwheels has for each version of NumPy: - - -``` -import requests - -url = "" -package = requests.get(url).json() - -for version, info in package['releases'].items(): -    if info['files']: -        print('{}: {} files'.format(version, len(info['files']))) -    else: -        print('{}: No files'.format(version)) -``` - -Also, each file contains some metadata: - -![Metadata in JSON files in piwheels][18] - -(Ben Nuttall, [CC BY-SA 4.0][4]) - -One handy thing is the `apt_dependencies` field, which lists the Apt packages needed to use the library. In the case of this NumPy file, as well as installing NumPy with pip, you'll also need to install `libatlas3-base` and `libgfortran` using Debian's Apt package manager. - -Here is an example script that shows the Apt dependencies for a package: - - -``` -import requests - -def get_install(package, abi): -    url = ' -    r = requests.get(url) -    data = r.json() -    for version, release in sorted(data['releases'].items(), reverse=True): -        for filename, file in release['files'].items(): -            if abi in filename: -                deps = ' '.join(file['apt_dependencies']) -                print("sudo apt install {}".format(deps)) -                print("sudo pip3 install {}=={}".format(package, version)) -                return - -get_install('opencv-python', 'cp37m') -get_install('opencv-python', 'cp35m') -get_install('opencv-python-headless', 'cp37m') -get_install('opencv-python-headless', 'cp35m') -``` - -We also provide a general API endpoint for the list of packages, which includes download stats for each package: - - -``` -import requests - -url = "" -packages = requests.get(url).json() -packages = { -    pkg: (d_month, d_all) -    for pkg, d_month, d_all, *_ in packages -} - -package = 'numpy' -d_month, d_all = packages[package] - -print(package, "has had", d_month, "downloads in the last month") -print(package, "has had", d_all, "downloads in total") -``` - -### pip search - -Since `pip search` is currently disabled due to its XMLRPC interface being overloaded, people have been looking for alternatives. You can use the piwheels JSON API to search for package names instead since the set of packages is the same: - - -``` -#!/usr/bin/python3 -import sys - -import requests - -PIWHEELS_URL = '' - -r = requests.get(PIWHEELS_URL) -packages = {p[0] for p in r.json()} - -def search(term): -    for pkg in packages: -        if term in pkg: -            yield pkg - -if __name__ == '__main__': -    if len(sys.argv) == 2: -        results = search(sys.argv[1].lower()) -        for res in results: -            print(res) -    else: -        print("Usage: pip_search TERM") -``` - -For more information, see the piwheels [JSON API documentation][19]. - -* * * - -_This article originally appeared on Ben Nuttall's [Tooling Tuesday blog][20] and is reused with permission._ - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/3/python-package-index-json-apis-requests - -作者:[Ben Nuttall][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/bennuttall -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/python_programming_question.png?itok=cOeJW-8r (Python programming language logo with question marks) -[2]: https://pypi.org/project/numpy/ -[3]: https://opensource.com/sites/default/files/uploads/numpy-project-page.png (NumPy project page) -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: https://opensource.com/sites/default/files/uploads/pypi-json-firefox.png (JSON rendered in Firefox) -[6]: https://docs.python.org/3/tutorial/datastructures.html#dictionaries -[7]: https://opensource.com/sites/default/files/uploads/pypi-json-notebook.png (Inspecting data) -[8]: https://opensource.com/sites/default/files/uploads/pypi-json-releases.png (Inspecting keys in releases) -[9]: https://opensource.com/sites/default/files/uploads/pypi-json-inspect.png (Inspecting version) -[10]: https://opensource.com/sites/default/files/uploads/pypi-json-release.png (Indexing an item) -[11]: https://opensource.com/sites/default/files/uploads/pypi-json-requires-python.png (sdist files with requires_python attribute ) -[12]: https://blog.piwheels.org/requires-python-support-new-project-page-layout-and-a-new-json-api/ -[13]: https://www.piwheels.org/ -[14]: https://pypi.org/project/numpy -[15]: https://www.piwheels.org/project/numpy -[16]: https://www.piwheels.org/project/numpy/json -[17]: https://opensource.com/sites/default/files/uploads/piwheels-json.png (JSON files available in piwheels) -[18]: https://opensource.com/sites/default/files/uploads/piwheels-json-numpy.png (Metadata in JSON files in piwheels) -[19]: https://www.piwheels.org/json.html -[20]: https://tooling.bennuttall.com/accessing-python-package-index-json-apis-with-requests/ diff --git a/translated/tech/20210330 Access Python package index JSON APIs with requests.md b/translated/tech/20210330 Access Python package index JSON APIs with requests.md new file mode 100644 index 0000000000..7aee86822f --- /dev/null +++ b/translated/tech/20210330 Access Python package index JSON APIs with requests.md @@ -0,0 +1,229 @@ +[#]: subject: "Access Python package index JSON APIs with requests" +[#]: via: "https://opensource.com/article/21/3/python-package-index-json-apis-requests" +[#]: author: "Ben Nuttall https://opensource.com/users/bennuttall" +[#]: collector: "lujun9972" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 Resuests 访问 Python 包索引的 JSON API +====== +PyPI 的 JSON API 是一种机器可直接使用的数据源,你可以在浏览网站时访问相同类型的数据。 +![Python programming language logo with question marks][1] + +PyPI(Python 软件包索引)提供了有关其软件包信息的 JSON API。本质上,它是机器可以直接使用的数据源,与你在网站上直接访问是一样的的。例如,作为人类,我可以在浏览器中打开 [Numpy][2] 项目页面,点击左侧相关链接,查看有哪些版本,哪些文件可用以及发行日期和支持的 Python 版本等内容: + +![NumPy project page][3] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +但是,如果我想编写一个程序来访问此数据,则可以使用 JSON API,而不必在这些页面上抓取和解析 HTML。 + +顺便说一句:在旧的 PyPI 网站上,当它托管在 `pypi.python.org` 时,NumPy 的项目页面位于 `pypi.python.org/pypi/numpy`,访问其 JSON API 也很简单,只需要在最后面添加一个 `/json` ,即 `https://pypi.org/pypi/numpy/json`。现在,PyPI 网站托管在 `pypi.org`,NumPy 的项目页面是 `pypi.org/project/numpy`。新站点不会有单独的 JSON API URL,但它仍像以前一样工作。因此,你不必在 URL 后添加 `/json`,只要记住 URL 就够了。 + +你可以在浏览器中打开 NumPy 的 JSON API URL,Firefox 很好地渲染了数据: + +![JSON rendered in Firefox][5] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +你可以查看 `info`,`release` 和 `urls` 其中的内容。或者,你可以将其加载到 Python Shell 中,以下是几行入门教程: + + +```python +import requests +url = "https://pypi.org/pypi/numpy/json" +r = requests.get(url) +data = r.json() +``` + +获得数据后,调用 `.json()` 提供数据的[字典][6],你可以对其进行查看: + +![Inspecting data][7] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +查看 `release` 中的键: + +![Inspecting keys in releases][8] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +这表明 `release` 是一个以版本号为键的字典。选择一个并查看以下内容: + +![Inspecting version][9] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +每个版本都包含一个列表,`release` 包含 24 项。但是每个项目是什么?由于它是一个列表,因此你可以索引第一项并进行查看: + +![Indexing an item][10] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +这是一个字典,其中包含有关特定文件的详细信息。因此,列表中的 24 个项目中的每一个都与此特定版本号关联的文件相关,即在 列出的 24 个文件中。 + +你可以编写一个脚本在可用数据中查找内容。例如,以下的循环查找带有 stdis (源代码包) 的版本,它们指定了 `requires_python` 属性并进行打印: + + +```python +for version, files in data['releases'].items(): +    for f in files: +        if f.get('packagetype') == 'sdist' and f.get('requires_python'): +            print(version, f['requires_python']) +``` + +![sdist files with requires_python attribute ][11] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +### piwheels + +去年,我在 piwheels 网站上[实现了类似的 API][12]。[piwheels.org][13] 是一个 Python 软件包索引,为 Raspberry Pi 架构提供了 wheel(预编译的二进制软件包)。它本质上是 PyPI 软件包的镜像,但带有 Arm wheel,而不是软件包维护者上传到 PyPI 的文件。 + +由于 piwheels 模仿了 PyPI 的 URL 结构,因此你可以将项目页面 URL 的 `pypi.org` 部分更改为 `piwheels.org`。它将向你显示类似的项目页面,其中详细说明了构建的版本和可用的文件。由于我喜欢旧站点允许你在 URL 末尾添加 `/json` 的方式,所以我也支持这种方式。NumPy 在 PyPI 上的项目页面为 [pypi.org/project/numpy][14],在 piwheels 上,它是 [piwheels.org/project/numpy][15],而 JSON API 是 [piwheels.org/project/numpy/json][16] 页面。 + +没有必要重复 PyPI API 的内容,所以我们提供了 piwheels 上可用内容的信息,包括所有已知发行版的列表,一些基本信息以及我们拥有的文件列表: + +![JSON files available in piwheels][17] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +与之前的 PyPI 例子类似,你可以创建一个脚本来分析 API 内容。例如,对于每个 NumPy 版本,其中有多少 piwheels 文件: + + +```python +import requests + +url = "https://www.piwheels.org/project/numpy/json" +package = requests.get(url).json() + +for version, info in package['releases'].items(): +    if info['files']: +        print('{}: {} files'.format(version, len(info['files']))) +    else: +        print('{}: No files'.format(version)) +``` + +此外,每个文件都包含一些元数据: + +![Metadata in JSON files in piwheels][18] + +(Ben Nuttall, [CC BY-SA 4.0][4]) + +方便的一件事是 `apt_dependencies` 字段,它列出了使用该库所需的 Apt 软件包。本例中的 NumPy 文件,或者通过 pip 安装 Numpy,你还需要使用 Debian 的 Apt 包管理器安装 `libatlas3-base` 和 `libgfortran`。 + +以下是一个示例脚本,显示了程序包的 Apt 依赖关系: + + +```python +import requests + +def get_install(package, abi): +    url = 'https://piwheels.org/project/{}/json'.format(package) +    r = requests.get(url) +    data = r.json() +    for version, release in sorted(data['releases'].items(), reverse=True): +        for filename, file in release['files'].items(): +            if abi in filename: +                deps = ' '.join(file['apt_dependencies']) +                print("sudo apt install {}".format(deps)) +                print("sudo pip3 install {}=={}".format(package, version)) +                return + +get_install('opencv-python', 'cp37m') +get_install('opencv-python', 'cp35m') +get_install('opencv-python-headless', 'cp37m') +get_install('opencv-python-headless', 'cp35m') +``` + +我们还为软件包列表提供了一个通用的 API 入口,其中包括每个软件包的下载统计: + + +```python +import requests + +url = "https://www.piwheels.org/packages.json" +packages = requests.get(url).json() +packages = { +    pkg: (d_month, d_all) +    for pkg, d_month, d_all, *_ in packages +} + +package = 'numpy' +d_month, d_all = packages[package] + +print(package, "has had", d_month, "downloads in the last month") +print(package, "has had", d_all, "downloads in total") +``` + +### pip search + +`pip search` 因为其 XMLRPC 接口过载而被禁用,因此人们一直在寻找替代方法。你可以使用 piwheels 的 JSON API 来搜索软件包名称,因为软件包的集合是相同的: + + +```python +#!/usr/bin/python3 +import sys + +import requests + +PIWHEELS_URL = 'https://www.piwheels.org/packages.json' + +r = requests.get(PIWHEELS_URL) +packages = {p[0] for p in r.json()} + +def search(term): +    for pkg in packages: +        if term in pkg: +            yield pkg + +if __name__ == '__main__': +    if len(sys.argv) == 2: +        results = search(sys.argv[1].lower()) +        for res in results: +            print(res) +    else: +        print("Usage: pip_search TERM") +``` + +有关更多信息,参考 piwheels 的 [JSON API 文档][19]. + +* * * + +_本文最初发表在 Ben Nuttall 的 [Tooling Tuesday 博客上][20],经许可可转载使用。_ + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/3/python-package-index-json-apis-requests + +作者:[Ben Nuttall][a] +选题:[lujun9972][b] +译者:[MjSeven](https://github.com/MjSeven) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/bennuttall +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/python_programming_question.png?itok=cOeJW-8r "Python programming language logo with question marks" +[2]: https://pypi.org/project/numpy/ +[3]: https://opensource.com/sites/default/files/uploads/numpy-project-page.png "NumPy project page" +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: https://opensource.com/sites/default/files/uploads/pypi-json-firefox.png "JSON rendered in Firefox" +[6]: https://docs.python.org/3/tutorial/datastructures.html#dictionaries +[7]: https://opensource.com/sites/default/files/uploads/pypi-json-notebook.png "Inspecting data" +[8]: https://opensource.com/sites/default/files/uploads/pypi-json-releases.png "Inspecting keys in releases" +[9]: https://opensource.com/sites/default/files/uploads/pypi-json-inspect.png "Inspecting version" +[10]: https://opensource.com/sites/default/files/uploads/pypi-json-release.png "Indexing an item" +[11]: https://opensource.com/sites/default/files/uploads/pypi-json-requires-python.png "sdist files with requires_python attribute " +[12]: https://blog.piwheels.org/requires-python-support-new-project-page-layout-and-a-new-json-api/ +[13]: https://www.piwheels.org/ +[14]: https://pypi.org/project/numpy +[15]: https://www.piwheels.org/project/numpy +[16]: https://www.piwheels.org/project/numpy/json +[17]: https://opensource.com/sites/default/files/uploads/piwheels-json.png "JSON files available in piwheels" +[18]: https://opensource.com/sites/default/files/uploads/piwheels-json-numpy.png "Metadata in JSON files in piwheels" +[19]: https://www.piwheels.org/json.html +[20]: https://tooling.bennuttall.com/accessing-python-package-index-json-apis-with-requests/ From 671db0d2e362215a1eef986df5796d5710056343 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sat, 1 May 2021 14:52:56 +0800 Subject: [PATCH 052/170] Translating --- .../20210429 Encrypting and decrypting files with OpenSSL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md b/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md index bc5925dcf2..5d6903fff8 100644 --- a/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md +++ b/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/encryption-decryption-openssl) [#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (MjSeven) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From e8bbdd95cfdb4106eb988a0578889ede8a4dcfde Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 1 May 2021 23:18:08 +0800 Subject: [PATCH 053/170] PUB @geekpi https://linux.cn/article-13352-1.html --- ...ervability with Apache Kafka and SigNoz.md | 41 +++++-------------- 1 file changed, 10 insertions(+), 31 deletions(-) rename {translated/tech => published}/20210420 Application observability with Apache Kafka and SigNoz.md (91%) diff --git a/translated/tech/20210420 Application observability with Apache Kafka and SigNoz.md b/published/20210420 Application observability with Apache Kafka and SigNoz.md similarity index 91% rename from translated/tech/20210420 Application observability with Apache Kafka and SigNoz.md rename to published/20210420 Application observability with Apache Kafka and SigNoz.md index 69088936f0..e61e766e37 100644 --- a/translated/tech/20210420 Application observability with Apache Kafka and SigNoz.md +++ b/published/20210420 Application observability with Apache Kafka and SigNoz.md @@ -3,14 +3,16 @@ [#]: author: (Nitish Tiwari https://opensource.com/users/tiwarinitish86) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13352-1.html) 使用 Apache Kafka 和 SigNoz 实现应用可观测性 ====== -SigNoz 帮助开发者使用最小的精力快速实现他们的可观测性目标。 -![Ship captain sailing the Kubernetes seas][1] + +> SigNoz 帮助开发者使用最小的精力快速实现他们的可观测性目标。 + +![](https://img.linux.net.cn/data/attachment/album/202105/01/231703oy5ln5nnqkuhxt1t.jpg) SigNoz 是一个开源的应用可观察性平台。SigNoz 是用 React 和 Go 编写的,它从头到尾都是为了让开发者能够以最小的精力尽快实现他们的可观察性目标。 @@ -24,8 +26,6 @@ SigNoz 将几个组件捆绑在一起,创建了一个可扩展的、耦合松 * Apache Kafka * Apache Druid - - [OpenTelemetry Collector][2] 是跟踪或度量数据收集引擎。这使得 SigNoz 能够以行业标准格式获取数据,包括 Jaeger、Zipkin 和 OpenConsensus。之后,收集的数据被转发到 Apache Kafka。 SigNoz 使用 Kafka 和流处理器来实时获取大量的可观测数据。然后,这些数据被传递到 Apache Druid,它擅长于存储这些数据,用于短期和长期的 SQL 分析。 @@ -34,8 +34,6 @@ SigNoz 使用 Kafka 和流处理器来实时获取大量的可观测数据。然 ![SigNoz architecture][3] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - ### 安装 SigNoz SigNoz 的组件包括 Apache Kafka 和 Druid。这些组件是松散耦合的,并协同工作,以确保终端用户的无缝体验。鉴于这些组件,最好将 SigNoz 作为 Kubernetes 或 Docker Compose(用于本地测试)上的微服务组合来运行。 @@ -44,26 +42,19 @@ SigNoz 的组件包括 Apache Kafka 和 Druid。这些组件是松散耦合的 当你有了可用的集群,并配置了 kubectl 来与集群通信,运行: - ``` -$ git clone && cd signoz - +$ git clone https://github.com/SigNoz/signoz.git && cd signoz $ helm dependency update deploy/kubernetes/platform - $ kubectl create ns platform - $ helm -n platform install signoz deploy/kubernetes/platform - $ kubectl -n platform apply -Rf deploy/kubernetes/jobs - $ kubectl -n platform apply -f deploy/kubernetes/otel-collector ``` 这将在集群上安装 SigNoz 和相关容器。要访问用户界面 (UI),运行 `kubectl port-forward` 命令。例如: - ``` -`$ kubectl -n platform port-forward svc/signoz-frontend 3000:3000` +$ kubectl -n platform port-forward svc/signoz-frontend 3000:3000 ``` 现在你应该能够使用本地浏览器访问你的 SigNoz 仪表板,地址为 `http://localhost:3000`。 @@ -72,10 +63,8 @@ $ kubectl -n platform apply -f deploy/kubernetes/otel-collector 要安装它,请运行: - ``` $ kubectl create ns sample-application - $ kubectl -n sample-application apply -Rf sample-apps/hotrod/ ``` @@ -85,36 +74,26 @@ $ kubectl -n sample-application apply -Rf sample-apps/hotrod/ ![SigNoz dashboard][8] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - #### 指标 当你点击一个特定的应用时,你会登录到该应用的主页上。指标页面显示最近 15 分钟的信息(这个数字是可配置的),如应用的延迟、平均吞吐量、错误率和应用目前访问最高的接口。这让你对应用的状态有一个大概了解。任何错误、延迟或负载的峰值都可以立即看到。 ![Metrics in SigNoz][9] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - #### 追踪 追踪页面按时间顺序列出了每个请求的高层细节。当你发现一个感兴趣的请求(例如,比预期时间长的东西),你可以点击追踪,查看该请求中发生的每个行为的单独时间跨度。下探模式提供了对每个请求的彻底检查。 ![Tracing in SigNoz][10] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - ![Tracing in SigNoz][11] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - #### 用量资源管理器 大多数指标和跟踪数据都非常有用,但只在一定时期内有用。随着时间的推移,数据在大多数情况下不再有用。这意味着为数据计划一个适当的保留时间是很重要的。否则,你将为存储支付更多的费用。用量资源管理器提供了每小时、每一天和每一周获取数据的概况。 ![SigNoz Usage Explorer][12] -(Nitish Tiwari, [CC BY-SA 4.0][4]) - ### 添加仪表 到目前为止,你一直在看 HotROD 应用的指标和追踪。理想情况下,你会希望对你的应用进行检测,以便它向 SigNoz 发送可观察数据。参考 SigNoz 网站上的[仪表概览][13]。 @@ -132,7 +111,7 @@ via: https://opensource.com/article/21/4/observability-apache-kafka-signoz 作者:[Nitish Tiwari][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c096d4d7b71bd1ca506eb8cf3a4b6f162c94b696 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 2 May 2021 05:03:33 +0800 Subject: [PATCH 054/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210502=20?= =?UTF-8?q?Fedora=20Vs=20Red=20Hat:=20Which=20Linux=20Distro=20Should=20Yo?= =?UTF-8?q?u=20Use=20and=20Why=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md --- ...ich Linux Distro Should You Use and Why.md | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md diff --git a/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md new file mode 100644 index 0000000000..dcb36b1877 --- /dev/null +++ b/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md @@ -0,0 +1,183 @@ +[#]: subject: (Fedora Vs Red Hat: Which Linux Distro Should You Use and Why?) +[#]: via: (https://itsfoss.com/fedora-vs-red-hat/) +[#]: author: (Sarvottam Kumar https://itsfoss.com/author/sarvottam/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora Vs Red Hat: Which Linux Distro Should You Use and Why? +====== + +Fedora and Red Hat. Both Linux distributions belong to the same organization, both use RPM package manager and both provide desktop and server editions. Both Linux distributions have a greater impact on the operating system world. + +This is why it is easier to get confused between the two similar distributions. In this article, I will discuss the similarities and difference between Red Hat and Fedora. + +This will help you if you want to choose between the two or simply want to understand the concept of having two distributions from the same organization. + +### Difference Between Fedora And RHEL + +![][1] + +Let’s talk about the difference between the two distributions first. + +#### Community Version vs Enterprise Version + +Back in 1995, Red Hat Linux had its first non-beta release, which was sold as a boxed product. It was also called Red Hat Commercial Linux. + +Later in 2003, Red Hat turned Red Hat Linux into a Red Hat Enterprise Linux (RHEL) focussed completely on enterprise customers. Since then, Red Hat is an enterprise version of Linux distribution. + +What it means is that you have to subscribe and pay to use Red Hat as it is not available as a free OS. Even all software, bug fixes, and security support are available for only those who have an active Red Hat subscription. + +At the time when Red Hat Linux became RHEL, it also resulted in the foundation of the Fedora Project that takes care of the development of Fedora Linux. + +Unlike Red Hat, Fedora is a community version of the Linux distribution that is available at free of cost for everyone including bug fixes and other services. + +Even though Red Hat sponsors the Fedora Project, Fedora Linux is primarily maintained by an independent open source community. + +#### Free vs Paid + +Well, you will find the majority of Linux distributions are available to download free of cost. Fedora Linux is also one such distro, whose desktop, server, all other editions, and spins are freely [available to download][2]. + +There are still Linux distros for which you have to pay. Red Hat Enterprise Linux is one such popular Linux-based operating system that comes at cost of money. + +Except for the RHEL [developer version][3] which costs $99, you have to pay more than $100 to purchase [other RHEL versions][4] for servers, virtual datacenters, and desktops. + +However, if you happen to be an individual developer, not an organization or team, you can join [Red Hat Developer Program][5]. Under the program, you get access to Red Hat Enterprise Linux including other products at no cost for a period of 12 months. + +#### Upstream vs Downstream + +Fedora is upstream of RHEL and RHEL is downstream of Fedora. This means when a new version of Fedora releases with new features and changes, Red Hat makes use of Fedora source code to include the desired features in its next release. + +Of course, Red Hat also test the pulled code before merging into its own codebase for RHEL. + +In another way, Fedora Linux acts as a testing ground for Red Hat to first check and then incorporate features into the RHEL system. + +#### Release Cycle + +For delivering the regular updates to all components of the OS, both RHEL and Fedora follow a standard fixed-point release model. + +Fedora has a new version release approximately every six months (mostly in April and October) that comes with maintenance support for up to 13 months. + +Red Hat releases a new point version of a particular series every year and a major version after approximately 5 years. Each major release of Red Hat goes through four lifecycle phases that range from 5 years of support to 10 years with Extended Life Phase using add-on subscriptions. + +#### Cutting-edge Linux Distribution + +When it comes to innovation and new technologies, Fedora takes a complete edge over the RHEL. Even though Fedora does not follow the [rolling release model][6], it is the distribution known for offering bleeding-edge technology early on. + +This is because Fedora regularly updates the packages to their latest version to provide an up-to-date OS after every six months. + +If you know, [GNOME 40][7] is the latest version of the GNOME desktop environment that arrived last month. And the latest stable [version 34][8] of Fedora does include it, while the latest stable version 8.3 of RHEL still comes with GNOME 3.32. + +#### File System + +Do you put the organization and retrieval of data on your system at a high priority in choosing an operating system? If so, you should know about XFS and BTRFS file system before deciding between Red Hat and Fedora. + +It was in 2014 when RHEL 7.0 replaced EXT4 with XFS as its default file system. Since then, Red Hat has an XFS 64-bit journaling file system in every version by default. + +Though Fedora is upstream to Red Hat, Fedora continued with EXT4 until last year when [Fedora 33][9] introduced [Btrfs as the default file system][10]. + +Interestingly, Red Hat had included Btrfs as a “technology preview” at the initial release of RHEL 6. Later on, Red Hat dropped the plan to use Btrfs and hence [removed][11] it completely from RHEL 8 and future major release in 2019. + +#### Variants Available + +Compared to Fedora, Red Hat has very limited number of editions. It is mainly available for desktops, servers, academics, developers, virtual servers, and IBM Power Little Endian. + +While Fedora along with official editions for desktop, server, and IoT, provides an immutable desktop Silverblue and a container-focused Fedora CoreOS. + +Not just that, but Fedora also has purpose-specific custom variants called [Fedora Labs][12]. Each ISO packs a set of software packages for professionals, neuroscience, designers, gamers, musicians, students, and scientists. + +Want different desktop environments in Fedora? you can also check for the official [Fedora Spins][13] that comes pre-configured with several desktop environments such as KDE, Xfce, LXQT, LXDE, Cinnamon, and i3 tiling window manager. + +![Fedora Cinnamon Spin][14] + +Furthermore, if you want to get your hands on new software before it lands in stable Fedora, Fedora Rawhide is yet another edition based on the rolling release model. + +### **Similarities Between Fedora And RHEL** + +Besides the dissimilarities, both Fedora and Red Hat also have several things in common. + +#### Parent Company + +Red Hat Inc. is the common company that backs both Fedora project and RHEL in terms of both development and financial. + +Even Red Hat sponsors the Fedora Project financially, Fedora also has its own council that supervises the development without Red Hat intervention. + +#### Open Source Product + +Before you think that Red Hat charges money then how it can be an open-source product, I would suggest reading our [article][15] that breaks down everything about FOSS and Open Source. + +Being an open source software does not mean you can get it freely, sometimes it can cost money. Red Hat is one of the open source companies that have built a business in it. + +Both Fedora and Red Hat is an open source operating system. All the Fedora package sources are available [here][16] and already packaged software [here][2]. + +However, in the case of Red Hat, the source code is also [freely available][17] for anyone. But unlike Fedora, you need to pay for using the runnable code or else you are free to build on your own. + +What you pay to Red Hat subscription is actually for the system maintenance and technical support. + +#### Desktop Environment And Init System + +The flagship desktop edition of Fedora and Red Hat ships GNOME graphical interface. So, if you’re already familiar with GNOME, starting with any of the distributions won’t be of much trouble. + +![GNOME desktop][18] + +Are you one of the few people who hate SystemD init system? If so, then none of Fedora and Red Hat is an OS for you as both supports and uses SystemD by default. + +Anyhow if you wishes to replace it with other init system like Runit or OpenRC, it’s not impossible but I would say it won’t be a best idea. + +#### RPM-based Distribution + +If you’re already well-versed with handling the rpm packages using YUM, RPM, or DNF command-line utility, kudos! you can count in both RPM-based distributions. + +By default, Red Hat uses RPM (Red Hat Package Manager) for installing, updating, removing, and managing RPM software packages. + +Fedora used YUM (Yellowdog Updater Modified) until Fedora 21 in 2015. Since Fedora 22, it now uses DNF (Dandified Yum) in place of YUM as the default [package manager][19]. + +### Fedora Or Red Hat: Which One Should You Choose? + +Frankly, it really depends on who you’re and why do you want to use it. If you’re a beginner, developer, or a normal user who wants it for productivity or to learn about Linux, Fedora can be a good choice. + +It will help you to set up the system easily, experiment, save money, and also become a part of the Fedora Project. Let me remind you that Linux creator [Linus Torvalds][20] uses Fedora Linux on his main workstation. + +However, it definitely does not mean you should also use Fedora. If you happen to be an enterprise, you may rethink choosing it considering Fedora’s support lifecycle that reaches end of life in a year. + +And if you’re not a fan of rapid changes in every new version, you may dislike cutting-edge Fedora for your server and business needs. + +With enterprise version Red Hat, you get high stability, security, and quality of support from expert Red Hat engineers for your large enterprise. + +So, are you willing to upgrade your server every year and get free community support or purchase a subscription to get more than 5 years of lifecycle and expert technical support? A decision is yours. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/fedora-vs-red-hat/ + +作者:[Sarvottam Kumar][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sarvottam/ +[b]: https://github.com/lujun9972 +[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/fedora-vs-red-hat.jpg?resize=800%2C450&ssl=1 +[2]: https://getfedora.org/ +[3]: https://www.redhat.com/en/store/red-hat-enterprise-linux-developer-suite +[4]: https://www.redhat.com/en/store/linux-platforms +[5]: https://developers.redhat.com/register/ +[6]: https://itsfoss.com/rolling-release/ +[7]: https://news.itsfoss.com/gnome-40-release/ +[8]: https://news.itsfoss.com/fedora-34-release/ +[9]: https://itsfoss.com/fedora-33/ +[10]: https://itsfoss.com/btrfs-default-fedora/ +[11]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/file-systems-and-storage_considerations-in-adopting-rhel-8#btrfs-has-been-removed_file-systems-and-storage +[12]: https://labs.fedoraproject.org/ +[13]: https://spins.fedoraproject.org/ +[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/Fedora-Cinnamon-Spin.jpg?resize=800%2C450&ssl=1 +[15]: https://itsfoss.com/what-is-foss/ +[16]: https://src.fedoraproject.org/ +[17]: http://ftp.redhat.com/pub/redhat/linux/enterprise/ +[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/GNOME-desktop.jpg?resize=800%2C450&ssl=1 +[19]: https://itsfoss.com/package-manager/ +[20]: https://itsfoss.com/linus-torvalds-facts/ From 148ff4f01e8dc89279111deb76cd8f8ff3f0be2f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 2 May 2021 05:03:59 +0800 Subject: [PATCH 055/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210501=20?= =?UTF-8?q?Flipping=20burgers=20to=20flipping=20switches:=20A=20tech=20guy?= =?UTF-8?q?'s=20journey?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210501 Flipping burgers to flipping switches- A tech guy-s journey.md --- ...flipping switches- A tech guy-s journey.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sources/tech/20210501 Flipping burgers to flipping switches- A tech guy-s journey.md diff --git a/sources/tech/20210501 Flipping burgers to flipping switches- A tech guy-s journey.md b/sources/tech/20210501 Flipping burgers to flipping switches- A tech guy-s journey.md new file mode 100644 index 0000000000..c51a7dfb67 --- /dev/null +++ b/sources/tech/20210501 Flipping burgers to flipping switches- A tech guy-s journey.md @@ -0,0 +1,44 @@ +[#]: subject: (Flipping burgers to flipping switches: A tech guy's journey) +[#]: via: (https://opensource.com/article/21/5/open-source-story-burgers) +[#]: author: (Clint Byrum https://opensource.com/users/spamaps) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Flipping burgers to flipping switches: A tech guy's journey +====== +You never know how your first job might influence your career path. +![Multi-colored and directional network computer cables][1] + +In my last week of high school in 1996, I quit my job at Carl's Jr. because I thought maybe without school, I'd have time to learn enough skills to get hired at a PC shop or something. I didn't know that I actually had incredibly marketable skills as a Linux sysadmin and C programmer, because I was the only tech person I'd ever known (except the people I chatted with on Undernet's #LinuxHelp channel). + +I applied at a local company that had maybe the weirdest tech mission I've experienced: Its entire reason for existing was the general lack of industrial-sized QIC-80 tape-formatting machines. Those 80MB backup tapes (gargantuan at a time when 200MB hard disks were huge) were usually formatted at the factory as they came off the line, or you could buy them already formatted at a significantly higher price. + +One of the people who developed that line at 3M noticed that formatting them took an hour—over 90% of their time in manufacturing. The machine developed to speed up formatting was, of course, buggy and years too late. + +Being a shrewd businessman, instead of fixing the problem for 3M, he quit his job, bought a bunch of cheap PCs and a giant pile of unformatted tapes, and began paying minimum wage to workers in my hometown of San Marcos, Calif., to stuff them into the PCs and pull them out all day long. Then he sold the formatted tapes at a big markup—but less than what 3M charged for them. It was a success. + +By the time I got there in 1996, they'd streamlined things a bit. They had a big degaussing machine, about 400 486 PCs stuffed with specialized floppy controllers so that you could address eight tape drives in one machine, custom software (including hardware multiplexers for data collection), and contracts with all the major tape makers (Exabyte, 3M, etc.). I thought I was coming in to be a PC repair tech, as I had passed the test, which asked me to identify all the parts of a PC. + +A few weeks in, the lead engineer noticed I had an electronics book (I was studying electronics at [ITT Tech][2], of all places) and pulled me in to help him debug and build the next feature they had cooked up—a custom printed circuit board (PCB) that lit up LEDs to signal a tape's status: formatting (yellow), error (red), or done (green). I didn't write any code or do anything useful, but he still told me I was wasting my time there and should go out and get a real tech job. + +That "real tech job" I got was as a junior sysadmin for a local medical device manufacturer. I helped bridge their HP-UX ERP system to their new parent company's Windows NT printers using Linux and Samba—and I was hooked forever on the power of free and open source software (FOSS). I also did some fun debugging while I was there, which you can [read about][3] on my blog. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/open-source-story-burgers + +作者:[Clint Byrum][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/spamaps +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/connections_wires_sysadmin_cable.png?itok=d5WqHmnJ (Multi-colored and directional network computer cables) +[2]: https://en.wikipedia.org/wiki/ITT_Technical_Institute +[3]: https://fewbar.com/2020/04/a-bit-of-analysis/ From 26a0d5e3d5cd7d3b347c7d2390403617ae5768fa Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 2 May 2021 05:04:23 +0800 Subject: [PATCH 056/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210501=20?= =?UTF-8?q?Elementary=20OS=206=20Beta=20Available=20Now!=20Here=20Are=20th?= =?UTF-8?q?e=20Top=20New=20Features?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md --- ...able Now- Here Are the Top New Features.md | 190 ++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md diff --git a/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md b/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md new file mode 100644 index 0000000000..4996188ea1 --- /dev/null +++ b/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md @@ -0,0 +1,190 @@ +[#]: subject: (Elementary OS 6 Beta Available Now! Here Are the Top New Features) +[#]: via: (https://news.itsfoss.com/elementary-os-6-beta/) +[#]: author: (Abhishek https://news.itsfoss.com/author/root/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Elementary OS 6 Beta Available Now! Here Are the Top New Features +====== + +The beta release of elementary OS 6 is here. It is available to download and test for the early adapters and application developers. + +Before I give you the details on downloading and upgrade procedure, let’s have a look at the changes this new release is bringing. + +### New features in elementary OS 6 “Odin” + +Every elementary OS release bases itself on an Ubuntu LTS release. The upcoming elementary OS 6, codenamed “Odin”, is based on the latest Ubuntu 20.04 LTS version. + +elementary OS has an ecosystem of its own, so the similarities with Ubuntu technically ends here. The Pantheon desktop environment gives it an entire different look and feel that you see in other distributions using GNOME or KDE. + +In November last year, we took the early build of elementary OS 6 for a test ride. You may see it in action in the video below. + +![][1] + +Things have improved and more features have been added since then. Let’s take a look at them. + +#### Dark theme with customization options + +Dark theme is not a luxury anymore. Its popularity has forces operating system and application developers to integrate the dark mode features in their offerings. + +![][2] + +elementary OS is also offering a dark theme but it has a few additional features to let you enjoy the dark side. + +You can choose to automatically switch to the dark theme based on the time of the day. You can also choose an accent color to go with the dark theme. + +![][3] + +Don’t expect a flawless dark theme experience. Like every other operating system, it depends on the applications. Sandboxed Flatpak applications won’t go dark automatically unlike the elementary OS apps. + +#### Refreshed look and feel + +There are many subtle changes to give elementary OS a refreshed look and feel. + +![][2] + +You’ll notice more rounded bottom window corners. The typography has changed for the first time and it now uses [Inter typeface][4] instead of the usual Open Sans. Default font rendering settings opts for grayscale anti-aliasing over RGB. + +![][5] + +You can now give an accent color to your system. With that, the icons, media buttons etc will have the chosen accented color. + +![][6] + +#### Multi-touch gestures + +Multi-touch gestures are a rarity in Linux desktops. However, elementary OS has worked hard to bring some multi-touch gesture support. You should be able to use it for muti-tasking view as well as for switching workspaces. + +You can see it in action in this video. + +Individual apps may also provide You should be able to configure it from the settings. + +![][7] + +The gestures will be used in some other places such as when navigating between panes and views, swiping away notifications and more. + +#### New and improved installer + +elementary OS 6 will also feature a brand-new installer. This is being developed together with Linux system manufacturer System76. elementary OS team worked on the front end and the System76 team worked on the back end of the installer. + +The new installer aims to improve the experience more both from an OS and OEM perspective. + +![][8] + +![][8] + +![][9] + +![][9] + +![][9] + +![][10] + +![][10] + +![][9] + +![][9] + +The new installer also plans to have the capability of a creating a recovery partition (which is basically a fresh copy of the operating system). This will make reinstalling and factory resetting the elementary OS a lot easier. + +#### Flatpak all the way + +You could already use [Flatpak][11] applications in elementary OS 5. Here, the installed application is local to the user account (in its home directory). + +elementary OS 6 supports sharing Flatpak apps system wide. This is part of the plan to ship applications in elementary OS as Flatpaks out of the box. It should be ready by the final stable release. + +#### Firmware updates from the system settings + +elementary OS 6 will notify you of updatable firmware in the system settings. This is for hardware that is compatible with [fwupd][12]. You can download the firmware updates from the settings. Some firmware updates are installed on the next reboot. + +![][13] + +#### No Wayland + +While elementary OS 6 code has some improved support for Wayland in the department of screenshots, it won’t be ditching Xorg display server just yet. Ubuntu 20.04 LTS stuck with Xorg and elementary OS 6 will do the same. + +#### Easier feedback reporting mechanism + +I think this is for the beta testers so that they can easily provide feedback on various system components and functionality. I am not sure if the feedback tool will make its way to the final stable release. However, it is good to see a dedicated, easy to use tool that will make it easier to get feedback from less technical or lazy people (like me). + +![][14] + +#### Other changes + +Here are some other changes in the new version of elementary OS: + + * screen locking and sleep experience should be much more reliable and predictable + * improved accessibility features + * improved notifications with emoji support + * Epiphany browser becomes default + * New Task app + * Major rewrite of the Mail application + * Option to show num lock and caps lock in the panel + * Improved booting experience with OEM logo + * Improved performance on lower-clocked processors and slower storage mediums like SD cards + + + +More details can be found on the [official blog of elementary OS][15]. + +### Download and install elementary OS 6 beta (for testing purpose) + +Please note that the experimental [support for Raspberry Pi like ARM devices][16] is on pause for now. You won’t find beta download for ARM devices. + +There is no way to update elementary OS 5 to the beta of version 6. Also note that if you install elementary OS 6 beta, you will **not be able to upgrade to the final stable release**. You’ll need to install it afresh. + +Another thing is that some of the features I mentioned are not finished yet so expect some bugs and hiccups. It is better to use it on a spare system or in a virtual machine. + +The beta is available for testing for free and you can download the ISO from the link below: + +[Download elementary OS 6 beta][17] + +### When will elementary OS 6 finally release? + +No one can tell that, not even the elementary OS developers. They don’t work with a fixed release date. It will be released when the planned features are stable. If I had to guess, I would say expect it in early July. + +elementary OS 6 is one of the [most anticipated Linux distributions of 2021][18]. Are you liking the new features? How is the new look in comparison to [Zorin OS 16 beta][19]? + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/elementary-os-6-beta/ + +作者:[Abhishek][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/root/ +[b]: https://github.com/lujun9972 +[1]: https://i2.wp.com/i.ytimg.com/vi/ciIeX9b5_A4/hqdefault.jpg?w=780&ssl=1 +[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzU2Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[4]: https://rsms.me/inter/ +[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzYxMycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzY2Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzU0MScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzNCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ5Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[11]: https://itsfoss.com/what-is-flatpak/ +[12]: https://fwupd.org/ +[13]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUyMScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[14]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ3NScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[15]: https://blog.elementary.io/elementary-os-6-odin-beta/ +[16]: https://news.itsfoss.com/elementary-os-raspberry-pi-release/ +[17]: https://builds.elementary.io/ +[18]: https://news.itsfoss.com/linux-distros-for-2021/ +[19]: https://news.itsfoss.com/zorin-os-16-beta/ From 96ae6dc272d3ef1d269341c4e82375868a421c2b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 2 May 2021 19:15:56 +0800 Subject: [PATCH 057/170] PRF @wyxplus --- ...ool to spy on your DNS queries- dnspeep.md | 75 +++++++++---------- 1 file changed, 35 insertions(+), 40 deletions(-) diff --git a/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md b/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md index 5d1dd31915..d132fd490f 100644 --- a/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md +++ b/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md @@ -3,17 +3,18 @@ [#]: author: (Julia Evans https://jvns.ca/) [#]: collector: (lujun9972) [#]: translator: (wyxplus) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -监控你所进行 DNS 查询的工具:dnspeep +dnspeep:监控 DNS 查询的工具 ====== +![](https://img.linux.net.cn/data/attachment/album/202105/02/191521i4ycjm7veln426vy.jpg) -你好啊!在过去的几天中,我编写了一个叫作 [dnspeep][1] 的小工具,它能让你看到你电脑中正进行的 DNS 查询,并且还能看得到其响应。现在只需 [250 行 Rust 代码][2] 即可实现。 +在过去的几天中,我编写了一个叫作 [dnspeep][1] 的小工具,它能让你看到你电脑中正进行的 DNS 查询,并且还能看得到其响应。它现在只有 [250 行 Rust 代码][2]。 -我将讨论你如何去尝试它、能做什么、为什么我要编写它,以及当我在开发时所遇到的问题。 +我会讨论如何去尝试它、能做什么、为什么我要编写它,以及当我在开发时所遇到的问题。 ### 如何尝试 @@ -35,13 +36,13 @@ tar -xf dnspeep-macos.tar.gz sudo ./dnspeep ``` -它需要以超级用户root身份运行,因为它需要访问计算机正在发送的所有 DNS 数据包。 这与 `tcpdump` 需要以超级身份运行的原因相同——它使用 `libpcap`,这与 tcpdump 使用的库相同。 +它需要以超级用户root身份运行,因为它需要访问计算机正在发送的所有 DNS 数据包。 这与 `tcpdump` 需要以超级身份运行的原因相同:它使用 `libpcap`,这与 tcpdump 使用的库相同。 -如果你不想下载二进制文件在超级用户下运行,你也能在 查看源码并且自行编译。 +如果你不想在超级用户下运行下载的二进制文件,你也能在 查看源码并且自行编译。 ### 输出结果是什么样的 -以下是输出结果。每行都是一次 DNS 查询和响应。 +以下是输出结果。每行都是一次 DNS 查询和响应: ``` $ sudo dnspeep @@ -51,40 +52,38 @@ AAAA firefox.com 192.168.1.1 NOERROR A bolt.dropbox.com 192.168.1.1 CNAME: bolt.v.dropbox.com, A: 162.125.19.131 ``` -这些查询是来自于我打算在浏览器中访问 `neopets.com`,而 `bolt.dropbox.com` 查询是因为我正在运行 Dropbox 代理,并且我猜它不时会在后台运行,因为其需要同步。 +这些查询是来自于我在浏览器中访问的 `neopets.com`,而 `bolt.dropbox.com` 查询是因为我正在运行 Dropbox 代理,并且我猜它不时会在后台运行,因为其需要同步。 -### 为什么我要再开发一个 DNS 工具? +### 为什么我要开发又一个 DNS 工具? 之所以这样做,是因为我认为当你不太了解 DNS 时,DNS 似乎真的很神秘! -你的浏览器(和其他在你电脑上的软件)始终在进行 DNS 查询,我认为当你能真正看到请求和响应时,似乎会有更多的真实感。 +你的浏览器(和你电脑上的其他软件)一直在进行 DNS 查询,我认为当你能真正看到请求和响应时,似乎会有更多的“真实感”。 +我写这个也把它当做一个调试工具。我想“这是 DNS 的问题?”的时候,往往很难回答。我得到的印象是,当尝试检查问题是否由 DNS 引起时,人们经常使用试错法或猜测,而不是仅仅查看计算机所获得的 DNS 响应。 -我也把其当做一个调试工具。我想“这是 DNS 的问题?”的时候,往往很难回答。我得到的印象是,当尝试检查问题是否由 DNS 引起时,人们经常使用试错法或猜测,而不是仅仅查看计算机所获得的 DNS 响应。 +### 你可以看到哪些软件在“秘密”使用互联网 +我喜欢该工具的一方面是,它让我可以感知到我电脑上有哪些程序正使用互联网!例如,我发现在我电脑上,某些软件出于某些理由不断地向 `ping.manjaro.org` 发送请求,可能是为了检查我是否已经连上互联网了。 -### 你可以使用互联网查看“秘密”使用的软件 +实际上,我的一个朋友用这个工具发现,他的电脑上安装了一些以前工作时的企业监控软件,但他忘记了卸载,因此你甚至可能发现一些你想要删除的东西。 -我喜欢该工具的一方面是,它给我在我电脑上的程序正使用互联网的感觉!例如,我发现在我电脑上,某些软件正因为某些理由不断地发送请求到 `ping.manjaro.org`,可能是检查我是否已经连上互联网了。 +### 如果你不习惯的话, tcpdump 会令人感到困惑 - -实际上,我的一个朋友使用该工具发现,他的电脑上安装了一些公司监控软件,这些软件是他在以前的工作中安装的,但是他忘记卸载了,因此你甚至可能发现一些你想要移动的东西。 - -### 如果你不习惯 tcpdump,则会感到困惑 - -当试图向人们展示 DNS 查询他们的计算机时,我的第一感是想“好吧,使用 tcpdump”!而且 `tcpdump` 可以解析 DNS 数据包! +当我试图向人们展示他们的计算机正在进行的 DNS 查询时,我的第一感是想“好吧,使用 tcpdump”!而 `tcpdump` 确实可以解析 DNS 数据包! 例如,下方是一次对 `incoming.telemetry.mozilla.org.` 的 DNS 查询结果: + ``` 11:36:38.973512 wlp3s0 Out IP 192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? incoming.telemetry.mozilla.org. (48) 11:36:38.996060 wlp3s0 In IP 192.168.1.1.53 > 192.168.1.181.42281: 56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 35.244.247.133 (180) ``` -绝对可以学习阅读,例如,让我们分解一下查询: +绝对可以学着去阅读理解一下,例如,让我们分解一下查询: `192.168.1.181.42281 > 192.168.1.1.53: 56271+ A? incoming.telemetry.mozilla.org. (48)` - * `A?` 意味着这是一次 A 类的 DNS **查询** + * `A?` 意味着这是一次 A 类型的 DNS **查询** * `incoming.telemetry.mozilla.org.` 是被查询的名称 * `56271` 是 DNS 查询的 ID * `192.168.1.181.42281` 是源 IP/端口 @@ -95,35 +94,33 @@ A bolt.dropbox.com 192.168.1.1 CNAME: bolt.v.dropbox.com, A: 162.12 `56271 3/0/0 CNAME telemetry-incoming.r53-2.services.mozilla.com., CNAME prod.data-ingestion.prod.dataops.mozgcp.net., A 35.244.247.133 (180)` - * `3/0/0` 是在响应报文中的记录数:3 个回答, 0 个授权, 0 个附加。我认为 tcpdump 甚至只打印出回答响应报文。 - * `CNAME telemetry-incoming.r53-2.services.mozilla.com`, `CNAME prod.data-ingestion.prod.dataops.mozgcp.net.` 和 `A 35.244.247.133` 是三个响应方。 - * `56271` 是响应报文 ID,和查询报文的 ID 相对应。这便是你能在前一行分辨出对于请求报文的响应报文。 + * `3/0/0` 是在响应报文中的记录数:3 个回答,0 个权威记录,0 个附加记录。我认为 tcpdump 甚至只打印出回答响应报文。 + * `CNAME telemetry-incoming.r53-2.services.mozilla.com`、`CNAME prod.data-ingestion.prod.dataops.mozgcp.net.` 和 `A 35.244.247.133` 是三个响应记录。 + * `56271` 是响应报文 ID,和查询报文的 ID 相对应。这就是你如何知道它是对前一行请求的响应。 +我认为,这种格式最难处理的是(作为一个只想查看一些 DNS 流量的人),你必须手动匹配请求和响应,而且它们并不总是相邻的行。这就是计算机擅长的事情! -我认为,这种格式最难处理的原因(作为一个只想查看一些 DNS 流量的人)是,你必须手动匹配请求和响应,而且它们并不总是相邻的。这就是计算机擅长的事情! +因此,我决定编写一个小程序(`dnspeep`)来进行匹配,并排除一些我认为多余的信息。 -因此,我决定编写一个小程序(`dnspeep`)来进行匹配,并删除一些我认为多余的信息。 +### 我在编写时所遇到的问题 -### 当编写时我所遇到的问题 +在撰写本文时,我遇到了一些问题: -在撰写本文时,我遇到了一些问题。 + * 我必须给 `pcap` 包打上补丁,使其能在 Mac 操作系统上和 Tokio 配合工作([这个更改][3])。这是其中的一个 bug,花了很多时间才搞清楚,用了 1 行代码才解决 :) + * 不同的 Linux 发行版似乎有不同的 `libpcap.so` 版本。所以我不能轻易地分发一个动态链接 libpcap 的二进制文件(你可以 [在这里][4] 看到其他人也有同样的问题)。因此,我决定在 Linux 上将 libpcap 静态编译到这个工具中。但我仍然不太了解如何在 Rust 中正确做到这一点作,但我通过将 `libpcap.a` 文件复制到 `target/release/deps` 目录下,然后直接运行 `cargo build`,使其得以工作。 + * 我使用的 `dns_parser` carte 并不支持所有 DNS 查询类型,只支持最常见的。我可能需要更换一个不同的工具包来解析 DNS 数据包,但目前为止还没有找到合适的。 + * 因为 `pcap` 接口只提供原始字节(包括以太网帧),所以我需要 [编写代码来计算从开头剥离多少字节才能获得数据包的 IP 报头][5]。我很肯定我还遗漏了一些情形。 - * 我必须修补 `pcap` 包,使其能在 Tokio 和 Mac 的操作系统上正常工作([此更改][3])。这是需要花费大量时间找出并修复一行的错误之一。 - * 不同的 Linux 发行版似乎有不同的 `libpcap.so` 版本。所以我不能轻易地分发一个 libpcap 动态链接的二进制文件(你可以看到其他人 [在这里][4] 也有同样的问题)。因此,我决定将 libpcap 静态编译到 Linux 上的工具中。但我仍然不太了解如何在 Rust 中正确执行此操作,但我知道如何让它运行,将 `libpcap.a` 文件拷贝到 `target/release/deps` 目录下,然后运行 `cargo build`。 - * 我使用的 `dns_parser` 不支持所有 DNS 查询类型,只支持最常见的。我可能需要更换一个不同的工具包来解析 DNS 数据包,但目前为止还没有找到合适的。 - * 因为 `pcap` 接口只提供原始字节(包括以太网帧),所以我需要 [编写代码来计算从一开始要剥离多少字节才能获得数据包的 IP 报头][5]。我很肯定我还遗漏了某些点。 - -我对于取名也有过一段艰难的时光,因为已经有许多 DNS 工具了(dnsspy!dnssnoop!dnssniff!dnswatch!)我基本上只是查了下有关“监听”的每个同义词,然后选择了一个看起来很有趣并且还没有被其他 DNS 工具所占用的名称。 +我对于给它取名也有过一段艰难的时光,因为已经有许多 DNS 工具了(dnsspy!dnssnoop!dnssniff!dnswatch!)我基本上只是查了下有关“监听”的每个同义词,然后选择了一个看起来很有趣并且还没有被其他 DNS 工具所占用的名称。 该程序没有做的一件事就是告诉你哪个进程进行了 DNS 查询,我发现有一个名为 [dnssnoop][6] 的工具可以做到这一点。它使用 eBPF,看上去很酷,但我还没有尝试过。 ### 可能会有许多 bug -我仅仅简单的在 Linux 和 Mac 上测试,并且我已知至少一个 bug(因为其不支持足够多的 DNS 查询类型),所以请在遇到问题时告知我! +我只在 Linux 和 Mac 上简单测试了一下,并且我已知至少有一个 bug(不支持足够多的 DNS 查询类型),所以请在遇到问题时告知我! 尽管这个 bug 没什么危害,因为这 libpcap 接口是只读的。所以可能发生的最糟糕的事情是它得到一些它无法解析的输入,最后打印出错误或是崩溃。 - ### 编写小型教育工具很有趣 最近,我对编写小型教育的 DNS 工具十分感兴趣。 @@ -133,10 +130,8 @@ A bolt.dropbox.com 192.168.1.1 CNAME: bolt.v.dropbox.com, A: 162.12 * (一种进行 DNS 查询的简单方法) * (向你显示在进行 DNS 查询时内部发生的情况) * 本工具(`dnspeep`) - - -以前我尽力阐述现存工具(如 `dig` 或 `tcpdump`)而不是编写自己的工具,但是经常我发现这些工具的输出结果让人费解,所以我非常关注以更加友好的方式来看这些相同的信息,以至于每个人都能明白他们电脑正在进行的 DNS 查询,来替换 tcmdump。 +以前我尽力阐述已有的工具(如 `dig` 或 `tcpdump`)而不是编写自己的工具,但是经常我发现这些工具的输出结果让人费解,所以我非常关注以更加友好的方式来看这些相同的信息,以便每个人都能明白他们电脑正在进行的 DNS 查询,而不仅仅是依赖 tcmdump。 -------------------------------------------------------------------------------- @@ -145,7 +140,7 @@ via: https://jvns.ca/blog/2021/03/31/dnspeep-tool/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[wyxplus](https://github.com/wyxplus) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 7b03fdb40ff75961a9b3d7e01861167d11cdcdcb Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 2 May 2021 19:16:52 +0800 Subject: [PATCH 058/170] PUB @wyxplus https://linux.cn/article-13353-1.html --- .../20210331 A tool to spy on your DNS queries- dnspeep.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210331 A tool to spy on your DNS queries- dnspeep.md (99%) diff --git a/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md b/published/20210331 A tool to spy on your DNS queries- dnspeep.md similarity index 99% rename from translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md rename to published/20210331 A tool to spy on your DNS queries- dnspeep.md index d132fd490f..c194b860c8 100644 --- a/translated/tech/20210331 A tool to spy on your DNS queries- dnspeep.md +++ b/published/20210331 A tool to spy on your DNS queries- dnspeep.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (wyxplus) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13353-1.html) dnspeep:监控 DNS 查询的工具 ====== From bbe1003df7ecef9c7801a8b507e73ffc041371f4 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 3 May 2021 05:02:35 +0800 Subject: [PATCH 059/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210502=20?= =?UTF-8?q?15=20unusual=20paths=20to=20tech?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210502 15 unusual paths to tech.md --- .../tech/20210502 15 unusual paths to tech.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 sources/tech/20210502 15 unusual paths to tech.md diff --git a/sources/tech/20210502 15 unusual paths to tech.md b/sources/tech/20210502 15 unusual paths to tech.md new file mode 100644 index 0000000000..1fd0f98266 --- /dev/null +++ b/sources/tech/20210502 15 unusual paths to tech.md @@ -0,0 +1,92 @@ +[#]: subject: (15 unusual paths to tech) +[#]: via: (https://opensource.com/article/21/5/unusual-tech-career-paths) +[#]: author: (Jen Wike Huger https://opensource.com/users/jen-wike) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +15 unusual paths to tech +====== +Our past lives can be exciting and funny. Here are some surprising ways +folks have made their way to open source. +![Looking at a map for career journey][1] + +The lives we led before we arrived where we are now sometimes feel like a distant land full of memories we can't quite recall. And sometimes we have lived experiences that we'll just never forget. Many times those experiences teach us and help us appreciate where we are today. We may even wish for those days as we recount our past lives. + +What did you do before tech? Tell us in the comments. + +I did **janitorial work** in the university cafeteria after it closed every day, and I got extra pay cleaning it up after live gigs held there (which happened about 4 times a year). We started to clean up for the following morning after the venue was vacated about 4 am, and had to get it cleaned and set up for opening the following morning at 7 am. That was fun. I worked summers in a livestock mart in the West of Ireland, running the office, keeping the account books, minding the cash that came through. I also had stints as a barman, lecturer, and TA at a local university while I was a post-grad, and once spent a few days stocking a ship with boxes of frozen fish in a Dutch port. —[Dave Neary][2] + +I was a **musician** in the Marine Corps, but being a bassoonist in the Corps means that you're mostly playing bass drum. After burning out, I changed to data comms for my second enlistment. —Waldo + +My last job before tech was as **a papermaker at a hi-speed newsprint plant** around 1990-1998. I loved this job, working with huge machines and a nice product. I did a lot of jobs from clamp lift driver to planner shipments abroad and back to production. What led me to tech was a program at the paper mill; they had a budget for everyone to get a PC. Honestly, for me, it was super vague what purpose that would serve me. But not long after I got into web design with a colleague, I became a hardcore XHTML and CSS frontend developer with the help of my PC. —[Ben Van 't Ende][3] + +I worked at McDonald's through high school and college. In summers, I also worked at **a few factory jobs, a screw and bolt factory,** where I got to drive a forklift (which is heaven for an 18-year-old). I also worked at a plastics factory, eventually on the shipping deck. My first tech job was in 1982 for Westwood Family Dentistry. This was a large, mall dentistry chain and they were paying me to write their front desk software and billing software on [MP/M-based][4] PCs from Televideo. If you ever watched the movie "War Games," these are the terminals Mathew Broderick used. This was prior to Microsoft releasing MS-DOS. The code was written in Cobol. —[Daniel Walsh][5] + +I was a **sound engineer recording audiobooks** for visually impaired people. There was a global project to set up a new global standard and move to digital recordings which became the DAISY standard and system. After that, I moved to the IT department in the company I worked for. —[Jimmy Sjölund ][6] + +Before tech, I was working in **public relations** at an agency that specialized in high tech, scientific, and research clients. I convinced the agency to start working with online information, and my first project in that arena was creating a weekly intelligence report for the Semiconductor Industry Association, based on posts in newsgroups like comp.arch and comp.realtime. When the World Wide Web (yes, that's how everyone referred to it at the time) began becoming more well-known one of my PR clients (a lawyer for tech startups) asked me if I knew how it worked. I did (and told him so), and he hired me to create his firm's website. The site, for Womble, Carlyle, Sandridge & Rice, was the first law firm website in North Carolina. A few more requests in the same vein later, I'd shifted my focus to online-only, leading to 20+ year career in web strategy. —[Gina Likins ][7] + +I graduated in humanities in 1978 and started to teach human geography at Milan University while working as a **map editor** at Touring Club Italiano, at the time the largest map publisher in Italy. I soon realized that a career in geography was good for the mind but bad for the wallet, so I moved to a Swedish company, Atlas Copco, as house organ editor. Thanks to a very open-minded manager, I learned an awful lot in term of marketing communications, so after a couple of years I decided that it was time to challenge my skills in real marketing, and I was hired by Honeywell Information Systems, at the time second only to IBM in the information technology market. Although I was hired to manage marketing communications of PC compatible printers, after six months I was promoted to European Marketing Director, and after a couple of years, I become Corporate VP of Peripherals Marketing. In 1987, I moved to real PR at SCR (now Weber Shandwick), then Burson Marsteller, and then Manning Selvage & Lee. In 1992, I started my own PR agency, which was acquired by Fleishman-Hillard in 1998. In 2003, I left Fleishman-Hillard as Senior VP of Technology Communications, to start a freelancing career. While looking at the tools for the trade, I stumbled on OpenOffice, and at age 50 I eventually entered the FOSS community as a volunteer handling marketing and PR (of course). In 2010, at age 56, I was one of the founders of the LibreOffice project, and I am still enjoying the fun here (and in several other places, such as OSI, OASIS, and LibreItalia). — +[Italo Vignoli ][8] + +Right after college at age 23, I had a job where I went to hot zones around the US wherever there were **toxic spills or man-made chemical disasters**. So I visited some real cesspools in America full of death and misery and lived there for months at a time. I was there to support the investigators of the Agency for Toxic Substances and Disease Registry and the Center for Disease Control by editing the interviews they collected for clarity and sending them to the home office in Atlanta by modem. That job extended in technical responsibility with every new place they sent me off to, but it was awesome! I was 100% focused on being a toxicologist by that point. So after that, I got a job as a network analyst for the University of Buffalo medical school so I could get discounted tuition to attend the med school. I even taught medical computing to other 25-year-olds my age and saw my future in med technology. But after a year I realized I couldn't do eight more years of university. I didn't even like most doctors I had to work with. The scientists (PhDs) were awesome but the MDs were pretty mean to me. That's when my boss said to me that my true passion was hacking and he thought I was good at it. I told him he was crazy and that medicine was the future, not security. Then he quit, and I didn't like my new boss even more so I quit. I then got an offer to help start IBM's new Ethical Hacking service called eSecurity. And that's how I became a professional hacker. —[Pete Herzog][9] + +I was always in information technology, it's just that the technology evolved. When I was still in elementary school, I delivered newspapers, which I would argue to be information produced by information technology. In high school, I continued that but eventually was fetching and storing data from the "stacks" at the local library (as well as doing lookups, working with punch cards, etc: Our books had punch cards for return by dates. So, when someone checked out a book, we would use a microfilm (or was it a microfiche?) camera to photograph the book description card, and a punch card which would then be inserted into the book's pocket. Upon return, the punch cards were removed and stacked to be sent through a card sorter, that -- presumably -- would do something about any cards missing from the sequence. (We weren't privy to the sorter or any computer that might have been attached. The branch would pack up the punch cards and send them to the main library.) As mentioned in a previous article for OpenSource.com, I was introduced to my first computer in high school. I had a job as a graveyard shift computer operator at a local hospital, mounting the tapes, running the backups, running batch jobs that printed reports on five-part carbon -- which left me with a deep-seated hatred for line-printers -- and then delivering those reports throughout the hospital -- kind of like being a newspaper delivery boy again. Then, college, where I ended up being the operator / "sys admin" (well, that last is a bit of a stretch, but not much) of a Data General Nova 3. And finally, onto an internship as a coder that, like Zonker T. Harris, I never left. —[Kevin Cole][10] + +Probably the most surprising jobs I had before working in free and open source software (FOSS) were: + + * Political organizer working on state-level campaigns for marriage equality, a higher minimum wage and increased transparency in state government + * Local music promoter, booking and promoting shows with noise bands, experimental acts and heavy rock, etc + * Cocktail waitress/bouncer/spotlight operator at a drag bar, whatever they needed that night + + + +—[Deb Nicholson][11] + +I never had a job in tech but was a neurologist. After going through the extended initiation of learning Linux, installing it on various machines, I then used it in my practice. I used to have my own computer in the office, running Linux, in addition to the office's system. As far as I know, I was the only doctor to carry around a laptop while on rounds in the hospital. There I kept my patient list, their diagnoses, and which days I visited them, all in a Postgres database. I would then submit my lists and charges for the day to the office from this database. With the hospital's wifi, I had access to the electronic data and lab results also. I would do EMGs (electromyography) and for a while used TeX to generate the reports, but later found that Scribus worked better, with some basic information contained in a file. I would then type out the final report myself. I could have a patient go straight to his doctor's office after the test, carrying a final report with him. To facilitate this, once I found that we had some space set aside for us doctors on the hospital's server, I could install Scribus there for various uses. When I saw a patient who needed one or more prescriptions, I wrote a little Python script to make use of Avery labels, which I would then paste on a prescription blank and sign. Without a doubt, I had the most legible prescriptions you would ever see from a doctor. Patients would tell me later when they went to the pharmacy, the pharmacist would look at the prescription and say, "What's this?!". If I was doing this for a hospitalized patient, this meant I could make an extra copy and take it to the office to put in the patient's chart also. While we still had paper charts in the hospital (used for doctors' notes) I made a mock-up of a physicians' notes and orders page in Scribus with Python, and when I saw a patient, I would enter my notes there, then print out on a blank sheet with the necessary holes to fit in the chart. These pages were complete with the barcode for the page type and also the barcode for the patient's hospital number, generated with that Python script. After an experience of waiting a week or two for my office dictation to come back so I could sign it, I started typing my own office notes, starting with typing notes as I talked to the patient, then once they were gone, typing out a letter to go to the referring physician. So I did have a job in tech, so to speak, because I made it so. —[Greg Pittman][12] + +I started my career as a journalist covering the European tech sector while living in London after grad school. I was still desperate to be a journalist despite the writing on that profession's wall. I didn't care which beat I covered, I just wanted to write. It ended up being the perfect way to learn about technology: I didn't need to be the expert, I just had to find the right experts and ask the right questions. The more I learned, the more curious I became. I eventually realized that I wanted to stop writing about tech companies and start joining them. Nearly nine years later, here I am. —[Lauren Maffeo][13] + +Well, that degree in English Literature and Theology didn't really set me up for a career in computing, so my first job was *supposed *to be teaching (or training to be a teacher in) English for 11-18-year-olds. I suppose my first real job was working at the Claremont Vaults in Weston-super-mare. It was a real dive, at the wrong end of the seafront, was smoke-filled at all times (I had to shower and wash my hair as soon as I got home every night), and had 3 sets of clientele: + + * The underage kids. In the UK, this meant 16 and 17-year-olds pretending to be 18. They were generally little trouble, and we'd ask them to leave if it was too obvious they were too young. They'd generally shrug and go onto the next pub. + * The truckers. Bizarrely (to 18-year-old me, anyway), the nicest folks we had there. Never any trouble, paid-up, didn't get too smashed, played a lot of Country on the jukebox. + * The OAPs (Old-Age Pensioners). Thursday night was the worst, as pensions (in those days) were paid on Thursdays, so the OAPs would make their way down the hill to the nearest post office, get their pension, and then head to the pub to get absolutely ratted. They'd get drunk, abusive, and unpleasant, and Thursdays were always the shift to try to avoid. I don't miss it, but it was an education for an entitled, privately-educated boarding-school boy with little clue about the real world! + + + +—[Mike Bursell][14] + +In no particular order: **proofreader, radio station disk jockey,** bookkeeper, archaeology shovelbum, reactor operator, welder, apartment maintenance and security, rent-to-own collections, electrician's helper, sunroom construction... and I'm definitely missing a few. The question isn't so much "what led me to tech" as "what kept me from it," the answer is insufficient personal connections and money. My entire life was leading me to tech, it was just a long, rocky, stumbling road to get there. I might never have gotten there, if I hadn't gotten an injury on the construction job serious enough to warrant six months of light duty—the company decided to have me come into the office and "I don't know, make copies or something" rather than just paying me to sit at home, and I parlayed that into an opportunity to make myself absolutely indispensable and turned it into a job as the company's first Information Technology Manager. It's probably worth noting that the actual conversion to IT Manager didn't just happen because I made myself indispensable—it also happened because I literally cornered the CEO a week prior to me going back out into the field to build sunrooms, and made a passionate case for why it would be an enormous waste to do that. Lucky for me, that particular CEO appreciated aggressive ambition, and promptly gave me a raise and a job title. —[Jim Salter][15] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/unusual-tech-career-paths + +作者:[Jen Wike Huger][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jen-wike +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/career_journey_road_gps_path_map_520.png?itok=PpL6jJgY (Looking at a map for career journey) +[2]: https://opensource.com/users/dneary +[3]: https://opensource.com/users/benvantende +[4]: https://en.wikipedia.org/wiki/MP/M +[5]: https://opensource.com/users/rhatdan +[6]: https://opensource.com/users/jimmysjolund +[7]: https://opensource.com/users/lintqueen +[8]: https://opensource.com/users/italovignoli +[9]: https://opensource.com/users/peteherzog +[10]: https://opensource.com/users/kjcole +[11]: https://opensource.com/users/eximious +[12]: https://opensource.com/users/greg-p +[13]: https://opensource.com/users/lmaffeo +[14]: https://opensource.com/users/mikecamel +[15]: https://opensource.com/users/jim-salter From 53c001a57388152046a6af8f42373f7e9b9d407f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 3 May 2021 05:03:13 +0800 Subject: [PATCH 060/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210502=20?= =?UTF-8?q?Google=E2=80=99s=20FLoC=20is=20Based=20on=20the=20Right=20Idea,?= =?UTF-8?q?=20but=20With=20the=20Wrong=20Implementation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210502 Google-s FLoC is Based on the Right Idea, but With the Wrong Implementation.md --- ...Idea, but With the Wrong Implementation.md | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 sources/news/20210502 Google-s FLoC is Based on the Right Idea, but With the Wrong Implementation.md diff --git a/sources/news/20210502 Google-s FLoC is Based on the Right Idea, but With the Wrong Implementation.md b/sources/news/20210502 Google-s FLoC is Based on the Right Idea, but With the Wrong Implementation.md new file mode 100644 index 0000000000..5d051c40ad --- /dev/null +++ b/sources/news/20210502 Google-s FLoC is Based on the Right Idea, but With the Wrong Implementation.md @@ -0,0 +1,101 @@ +[#]: subject: (Google’s FLoC is Based on the Right Idea, but With the Wrong Implementation) +[#]: via: (https://news.itsfoss.com/google-floc/) +[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Google’s FLoC is Based on the Right Idea, but With the Wrong Implementation +====== + +Cookies, the well-known web technology, have been a key tool in web developers’ toolkits for years. They have given us the ability to store passwords, logins, and other essential data that allows us to use the modern web. + +However, the technology has been used lately for more invasive purposes: serving creepily targeted ads. + +Recently, Google claimed to have the solution to this privacy crisis with their new FLoC initiative. + +### What is FLoC? + +![][1] + +FLoC (Federated Learning of Cohorts) is a new technology that aims to solve the privacy concerns associated with cookies. Unlike the old way of using 3rd party cookies to build an advertising ID, FLoC uses data from your searches to place you into a predefined group (called a cohort) of people interested in similar topics as you. + +Advertisers can then serve the same ads to the group of people that are most likely to purchase their product. Because FLoC is built into Chrome, it can collect much more data than third-party cookies. For the average consumer, this should be a huge concern. + +In simple terms, if cookies were bad, then FLoC is down-right evil. + +### What’s Wrong With Floc? + +Simply put, FLoC collects much more data than traditional cookies. This allows advertisers to serve more targeted ads, driving up sales. + +Alongside the data concerns, there also some more specific issues associated with it. These include: + + * More predictability + * Much easier browser fingerprinting + * The ability to link a user with their browsing habits + + + +All of these issues join together to create the privacy disaster that FLoC is, with heaps of negative impacts on the user. + +#### More Predictability + +With the rise of machine learning and AI, companies such as Google and Facebook have gained the ability to make shockingly accurate predictions. With the extra data they will have because of FLoC, these predictions could be taken to a whole new level. + +The result of this would be a new wave of highly-targeted ads and tracking. Because all your data is in your cohort id, it will be much better for companies to predict your interests and skills. + +#### Browser Fingerprinting + +Browser fingerprinting is the act of taking small and seemingly insignificant pieces of data to create an ID for a web browser. While no browser has managed to fully stop fingerprinting, some browsers (such as Tor) have managed to limit their fingerprinting abilities at the expense of some features. + +Floc enables large corporations to take this shady practice to a whole new level through the extra data it presents. + +#### Browsing Habit Linking + +Your cohort id is supposed to be anonymous, but when combined with a login, it can be tracked right back to you. This effectively eliminates the privacy benefits FLoC has (standardized tracking) and further worsens the privacy crisis caused by this technology. + +This combination of your login and cohort ID is effectively a goldmine for advertisers. + +### Cookies are Bad, but so is FLoC + +Cookies have been living on their last legs for the past decade. They have received widespread criticism for privacy issues, particularly from open-source advocates such as Mozilla and the FSF. + +Instead of replacing them with an even more invasive technology, why not create an open and privacy respecting alternative? We can be sure that none of the large advertisers (Google and Facebook) would do such a thing as this is a crucial part of their profit-making ability. + +Google’s FLoC **not a sustainable replacement for cookies**, and it must go. + +### Wrapping Up + +With the amount of criticism Google has received in the past for their privacy policies, you would think they would improve. Unfortunately, this seems not to be the case, with their data collection becoming more widespread by the day. + +FLoC seems to be the last nail in the coffin of privacy. If we want internet privacy, FLoC needs to go. + +If you want to check if you have been FLoCed, you can check using a web tool by EFF – [Am I FLoCed?][2], if you are using Google Chrome version 89 or newer. + +What do you think about FLoC? Let me know in the comments below! + +_The views and opinions expressed are those of the authors and do not necessarily reflect the official policy or position of It’s FOSS._ + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/google-floc/ + +作者:[Jacob Crume][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/jacob/ +[b]: https://github.com/lujun9972 +[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMyNCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[2]: https://amifloced.org/ From ee7e9e3d23325a8b7386b374b17459bc1a993090 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Mon, 3 May 2021 10:07:15 +0800 Subject: [PATCH 061/170] Rename sources/tech/20210502 15 unusual paths to tech.md to sources/talk/20210502 15 unusual paths to tech.md --- sources/{tech => talk}/20210502 15 unusual paths to tech.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210502 15 unusual paths to tech.md (100%) diff --git a/sources/tech/20210502 15 unusual paths to tech.md b/sources/talk/20210502 15 unusual paths to tech.md similarity index 100% rename from sources/tech/20210502 15 unusual paths to tech.md rename to sources/talk/20210502 15 unusual paths to tech.md From 1dfe9776c6bd0439a236540c98099ad282a554b3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 10:40:13 +0800 Subject: [PATCH 062/170] PRF @geekpi --- ...10426 3 beloved USB drive Linux distros.md | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/translated/tech/20210426 3 beloved USB drive Linux distros.md b/translated/tech/20210426 3 beloved USB drive Linux distros.md index d52fb4fc9a..0be81fc011 100644 --- a/translated/tech/20210426 3 beloved USB drive Linux distros.md +++ b/translated/tech/20210426 3 beloved USB drive Linux distros.md @@ -3,59 +3,58 @@ [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -3 个心爱的 U 盘 Linux 发行版 +爱了!3 个受欢迎的 U 盘 Linux 发行版 ====== -开源技术人员对此深有体会。 + +> 开源技术人员对此深有体会。 + ![Linux keys on the keyboard for a desktop computer][1] -很少有 Linux 用户不记得他们第一次发现你可以启动计算机并在上面运行 Linux 而不需要实际安装它。当然,许多用户都知道可以启动计算机进入操作系统安装程序,但是 Linux 不同:它根本就不需要安装!你的计算机甚至不需要有一个硬盘驱动器。你可以通过一个 U 盘运行 Linux 几个月甚至几_年_。 +Linux 用户几乎都会记得他们第一次发现无需实际安装,就可以用 Linux 引导计算机并在上面运行。当然,许多用户都知道可以引导计算机进入操作系统安装程序,但是 Linux 不同:它根本就不需要安装!你的计算机甚至不需要有一个硬盘。你可以通过一个 U 盘运行 Linux 几个月甚至几 _年_。 -自然,有一些不同的”实时“ Linux 发行版可供选择。我们向我们的作者询问了他们的最爱,他们的回答代表了现有的全部内容。 +自然,有几种不同的 “临场live” Linux 发行版可供选择。我们向我们的作者们询问了他们的最爱,他们的回答如下。 -### 1\. Puppy Linux - -”作为之前的**Puppy Linux** 开发者,我对此的看法相当偏颇。 但 Puppy 最初吸引我的地方是: +### 1、Puppy Linux +“作为一名前 **Puppy Linux** 开发者,我对此的看法自然有些偏见,但 Puppy 最初吸引我的地方是: * 它专注于第三世界国家容易获得的低端和老旧硬件。这为买不起最新的现代系统的贫困地区开放了计算能力 - * 它能够在内存中运行,当它被使用时可以提供一些有趣的安全优势 - * 它在一个单一的 SFS 文件中处理用户文件和会话,使得备份、恢复或移动你现有的桌面/应用/文件到另一个安装中只需一个拷贝命令“ + * 它能够在内存中运行,可以利用该能力提供一些有趣的安全优势 + * 它在一个单一的 SFS 文件中处理用户文件和会话,使得备份、恢复或移动你现有的桌面/应用/文件到另一个安装中只需一个拷贝命令” +—— [JT Pennington][2] +“对我来说,一直就是 **Puppy Linux**。它启动迅速,支持旧硬件。它的 GUI 很容易就可以说服别人第一次尝试 Linux。” —— [Sachin Patil][3] -—[JT Pennington][2] +“Puppy 是真正能在任何机器上运行的临场发行版。我有一台废弃的 microATX 塔式电脑,它的光驱坏了,也没有硬盘(为了数据安全,它已经被拆掉了),而且几乎没有多少内存。我把 Puppy 插入它的 SD 卡插槽,运行了好几年。” —— [Seth Kenlon][4] -”对我来说,它一直是 **Puppy Linux**。它启动迅速,支持旧硬件。GUI 超级容易说服别人第一次尝试 Linux“。—[Sachin Patil][3] +“我在使用 U 盘上的 Linux 发行版没有太多经验,但我把票投给 **Puppy Linux**。它很轻巧,非常适用于旧机器。”  —— [Sergey Zarubin][5] -”Puppy 是真正能在任何东西上运行的实时发行版。我有一台废弃的 microATX 塔式电脑,它的光驱坏了,也没有硬盘(为了数据安全,它已经被拆掉了),而且几乎没有内存。我把 Puppy 插入它的 SD 卡插槽,运行了好几年。“ —[Seth Kenlon][4] +### 2、Fedora 和 Red Hat -”我没有那么多使用 U 盘 Linux 发行版的经验,但我把票投给 **Puppy Linux**。它很轻,而且完全适用于旧机器。“ —[Sergey Zarubin][5] +“我最喜欢的 USB 发行版其实是 **Fedora Live USB**。它有浏览器、磁盘工具和终端仿真器,所以我可以用它来拯救机器上的数据,或者我可以浏览网页或在需要时用 ssh 进入其他机器做一些工作。所有这些都不需要在 U 盘或在使用中的机器上存储任何数据,不会在受到入侵时被泄露。” —— [Steve Morris][6] -### 2\. Fedora 和 Red Hat +“我曾经用过 Puppy 和 DSL。如今,我有两个 U 盘:**RHEL7** 和 **RHEL8**。 这两个都被配置为完整的工作环境,能够在 UEFI 和 BIOS 上启动。当我有问题要解决而又面对随机的硬件时,在现实生活中这就是时间的救星。” —— [Steven Ellis][7] -”我最喜欢的 USB 发行版其实是 **Fedora Live USB**。它有一个浏览器、磁盘工具和一个终端模拟器,所以我可以用它来拯救机器上的数据,或者我可以浏览网页或在需要时用 ssh 进入其他机器做一些工作。所有这些都不需要在记忆棒上存储任何数据,也不会在使用中的机器被泄露的情况下将其暴露出来。“ —[Steve Morris][6] +### 3、Porteus -”我过去一直使用 Puppy 和 DSL。这些天我有两个 U 盘:**RHEL7 和 RHEL8**。 这两个都被配置为完整的工作环境,能够为 UEFI 和 BIOS 启动。当我面对一个随机的硬件,我们有问题要解决时,这些都是现实生活和时间的救星。“ —[Steven Ellis][7] +“不久前,我安装了 Porteus 系统每个版本的虚拟机。很有趣,所以有机会我会再试试它们。每当提到微型发行版的话题时,我总是想起我记得的第一个使用的发行版:**tomsrtbt**。它总是安装适合放在软盘上来设计。我不知道它现在有多大用处,但我想我应该把它也算上。”  —— [Alan Formy-Duval][8] -### 3\. Porteus +“作为一个 Slackware 的长期用户,我很欣赏 **Porteus** 提供的 Slack 的最新版本和灵活的环境。你可以用运行在内存中的 Porteus 进行引导,这样就不需要把 U 盘连接到你的电脑上,或者你可以从驱动器上运行,这样你就可以保留你的修改。打包应用很容易,而且 Slacker 社区有很多现有的软件包。这是我唯一需要的实时发行版。” —— [Seth Kenlon][4] -”不久前,我安装了每个版本的 Porteus 系统的虚拟机。那很有趣,所以也许我会再看一下它们。每当提到微型发行版的话题时,我总是想起我记得的第一个使用的发行版:**tomsrtbt**。它一直被设计成适合放在软盘上。我不知道它现在有多大用处,但我想我应该把它放在一起。“ —[Alan Formy-Duval][8] +### 其它:Knoppix -”作为一个长期的 Slackware 用户,我很欣赏 **Porteus** 提供的 Slack 的最新版本,以及一个灵活的环境。你可以用 Porteus 在内存中运行启动,这样就不需要把 U 盘连接到你的电脑上,或者你可以从驱动器上运行,这样你就可以保留你的修改。打包应用很容易,而且 Slacker 社区有很多现有的软件包。这是我唯一需要的实时发行版“。—[Seth Kenlon][4]。 +“我已经有一段时间没有使用过 **Knoppix** 了,但我曾一度经常使用它来拯救那些被恶意软件破坏的 Windows 电脑。它最初于 2000 年 9 月发布,此后一直在持续开发。它最初是由 Linux 顾问 Klaus Knopper 开发并以他的名字命名的,被设计为临场 CD。我们用它来拯救由于恶意软件和病毒而变得无法访问的 Windows 系统上的用户文件。” —— [Don Watkins][9] -### 额外的:Knoppix +“Knoppix 对临场 Linux 影响很大,但它也是对盲人用户使用最方便的发行版之一。它的 [ADRIANE 界面][10] 被设计成可以在没有视觉显示器的情况下使用,并且可以处理任何用户可能需要从计算机上获得的所有最常见的任务。” —— [Seth Kenlon][11] -”我已经有一段时间没有使用 **Knoppix** 了,但我曾一度经常使用它来拯救那些被恶意软件破坏的 Windows 电脑。它最初于 2000 年 9 月发布,此后一直在持续开发。它最初是以 Linux 顾问 Klaus Knopper 的名字开发并命名的,被设计为 Live CD。我们用它来拯救由于恶意软件和病毒而变得无法访问的 Windows 系统上的用户文件“。—[Don Watkins][9] +### 选择你的临场 Linux -”Knoppix 对实时 Linux 有很大的影响,但它也是对盲人用户最方便的发行版之一。它的 [ADRIANE 界面][10] 被设计成可以在没有视觉显示器的情况下使用,并且可以处理任何用户可能需要从计算机上获得的所有最常见的任务。“ —[Seth Kenlon][11] 。 - -### 选择你的实时 Linux - -有很多没有提到的,比如 [Slax][12](一个基于 Debian 的实时发行版)、[Tiny Core][13]、[Slitaz][14]、[Kali][15](一个注重安全的实用发行版)、[E-live][16],等等。如果你有一个空闲的 U 盘,把 Linux 放在上面,在任何时候都可以在任何电脑上使用 Linux! +有很多没有提到的,比如 [Slax][12](一个基于 Debian 的实时发行版)、[Tiny Core][13]、[Slitaz][14]、[Kali][15](一个以安全为重点的实用程序发行版)、[E-live][16],等等。如果你有一个空闲的 U 盘,请把 Linux 放在上面,在任何时候都可以在任何电脑上使用 Linux! -------------------------------------------------------------------------------- @@ -64,7 +63,7 @@ via: https://opensource.com/article/21/4/usb-drive-linux-distro 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From c1fe2a059fbc46b816ef0489382ff07043eb5999 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 10:47:06 +0800 Subject: [PATCH 063/170] PUB @geekpi https://linux.cn/article-13355-1.html --- .../20210426 3 beloved USB drive Linux distros.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20210426 3 beloved USB drive Linux distros.md (97%) diff --git a/translated/tech/20210426 3 beloved USB drive Linux distros.md b/published/20210426 3 beloved USB drive Linux distros.md similarity index 97% rename from translated/tech/20210426 3 beloved USB drive Linux distros.md rename to published/20210426 3 beloved USB drive Linux distros.md index 0be81fc011..505b90a5e2 100644 --- a/translated/tech/20210426 3 beloved USB drive Linux distros.md +++ b/published/20210426 3 beloved USB drive Linux distros.md @@ -4,15 +4,15 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13355-1.html) 爱了!3 个受欢迎的 U 盘 Linux 发行版 ====== > 开源技术人员对此深有体会。 -![Linux keys on the keyboard for a desktop computer][1] +![](https://img.linux.net.cn/data/attachment/album/202105/03/104610np5piwaavaa5qu2u.jpg) Linux 用户几乎都会记得他们第一次发现无需实际安装,就可以用 Linux 引导计算机并在上面运行。当然,许多用户都知道可以引导计算机进入操作系统安装程序,但是 Linux 不同:它根本就不需要安装!你的计算机甚至不需要有一个硬盘。你可以通过一个 U 盘运行 Linux 几个月甚至几 _年_。 From 1102f38442fb3b9a5949b426c5e235cb833612e0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 11:20:04 +0800 Subject: [PATCH 064/170] PRF @MjSeven --- ...n package index JSON APIs with requests.md | 63 +++++++------------ 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/translated/tech/20210330 Access Python package index JSON APIs with requests.md b/translated/tech/20210330 Access Python package index JSON APIs with requests.md index 7aee86822f..31fdde087b 100644 --- a/translated/tech/20210330 Access Python package index JSON APIs with requests.md +++ b/translated/tech/20210330 Access Python package index JSON APIs with requests.md @@ -7,93 +7,76 @@ [#]: publisher: " " [#]: url: " " -使用 Resuests 访问 Python 包索引的 JSON API +使用 resuests 访问 Python 包索引(PyPI)的 JSON API ====== -PyPI 的 JSON API 是一种机器可直接使用的数据源,你可以在浏览网站时访问相同类型的数据。 -![Python programming language logo with question marks][1] + +> PyPI 的 JSON API 是一种机器可直接使用的数据源,你可以访问和你浏览网站时相同类型的数据。 + +![](https://img.linux.net.cn/data/attachment/album/202105/03/111943du0lgbjj6br6sruu.jpg) PyPI(Python 软件包索引)提供了有关其软件包信息的 JSON API。本质上,它是机器可以直接使用的数据源,与你在网站上直接访问是一样的的。例如,作为人类,我可以在浏览器中打开 [Numpy][2] 项目页面,点击左侧相关链接,查看有哪些版本,哪些文件可用以及发行日期和支持的 Python 版本等内容: ![NumPy project page][3] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 但是,如果我想编写一个程序来访问此数据,则可以使用 JSON API,而不必在这些页面上抓取和解析 HTML。 -顺便说一句:在旧的 PyPI 网站上,当它托管在 `pypi.python.org` 时,NumPy 的项目页面位于 `pypi.python.org/pypi/numpy`,访问其 JSON API 也很简单,只需要在最后面添加一个 `/json` ,即 `https://pypi.org/pypi/numpy/json`。现在,PyPI 网站托管在 `pypi.org`,NumPy 的项目页面是 `pypi.org/project/numpy`。新站点不会有单独的 JSON API URL,但它仍像以前一样工作。因此,你不必在 URL 后添加 `/json`,只要记住 URL 就够了。 +顺便说一句:在旧的 PyPI 网站上,还托管在 `pypi.python.org` 时,NumPy 的项目页面位于 `pypi.python.org/pypi/numpy`,访问其 JSON API 也很简单,只需要在最后面添加一个 `/json` ,即 `https://pypi.org/pypi/numpy/json`。现在,PyPI 网站托管在 `pypi.org`,NumPy 的项目页面是 `pypi.org/project/numpy`。新站点不会有单独的 JSON API URL,但它仍像以前一样工作。因此,你不必在 URL 后添加 `/json`,只要记住 URL 就够了。 你可以在浏览器中打开 NumPy 的 JSON API URL,Firefox 很好地渲染了数据: ![JSON rendered in Firefox][5] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 你可以查看 `info`,`release` 和 `urls` 其中的内容。或者,你可以将其加载到 Python Shell 中,以下是几行入门教程: - -```python +``` import requests url = "https://pypi.org/pypi/numpy/json" r = requests.get(url) data = r.json() ``` -获得数据后,调用 `.json()` 提供数据的[字典][6],你可以对其进行查看: +获得数据后(调用 `.json()` 提供了该数据的 [字典][6]),你可以对其进行查看: ![Inspecting data][7] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 查看 `release` 中的键: ![Inspecting keys in releases][8] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 这表明 `release` 是一个以版本号为键的字典。选择一个并查看以下内容: ![Inspecting version][9] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 每个版本都包含一个列表,`release` 包含 24 项。但是每个项目是什么?由于它是一个列表,因此你可以索引第一项并进行查看: ![Indexing an item][10] -(Ben Nuttall, [CC BY-SA 4.0][4]) +这是一个字典,其中包含有关特定文件的详细信息。因此,列表中的 24 个项目中的每一个都与此特定版本号关联的文件相关,即在 列出的 24 个文件。 -这是一个字典,其中包含有关特定文件的详细信息。因此,列表中的 24 个项目中的每一个都与此特定版本号关联的文件相关,即在 列出的 24 个文件中。 +你可以编写一个脚本在可用数据中查找内容。例如,以下的循环查找带有 sdist(源代码包)的版本,它们指定了 `requires_python` 属性并进行打印: -你可以编写一个脚本在可用数据中查找内容。例如,以下的循环查找带有 stdis (源代码包) 的版本,它们指定了 `requires_python` 属性并进行打印: - - -```python +``` for version, files in data['releases'].items():     for f in files:         if f.get('packagetype') == 'sdist' and f.get('requires_python'):             print(version, f['requires_python']) ``` -![sdist files with requires_python attribute ][11] - -(Ben Nuttall, [CC BY-SA 4.0][4]) +![sdist files with requires_python attribute][11] ### piwheels -去年,我在 piwheels 网站上[实现了类似的 API][12]。[piwheels.org][13] 是一个 Python 软件包索引,为 Raspberry Pi 架构提供了 wheel(预编译的二进制软件包)。它本质上是 PyPI 软件包的镜像,但带有 Arm wheel,而不是软件包维护者上传到 PyPI 的文件。 +去年,我在 piwheels 网站上[实现了类似的 API][12]。[piwheels.org][13] 是一个 Python 软件包索引,为树莓派架构提供了 wheel(预编译的二进制软件包)。它本质上是 PyPI 软件包的镜像,但带有 Arm wheel,而不是软件包维护者上传到 PyPI 的文件。 由于 piwheels 模仿了 PyPI 的 URL 结构,因此你可以将项目页面 URL 的 `pypi.org` 部分更改为 `piwheels.org`。它将向你显示类似的项目页面,其中详细说明了构建的版本和可用的文件。由于我喜欢旧站点允许你在 URL 末尾添加 `/json` 的方式,所以我也支持这种方式。NumPy 在 PyPI 上的项目页面为 [pypi.org/project/numpy][14],在 piwheels 上,它是 [piwheels.org/project/numpy][15],而 JSON API 是 [piwheels.org/project/numpy/json][16] 页面。 -没有必要重复 PyPI API 的内容,所以我们提供了 piwheels 上可用内容的信息,包括所有已知发行版的列表,一些基本信息以及我们拥有的文件列表: +没有必要重复 PyPI API 的内容,所以我们提供了 piwheels 上可用内容的信息,包括所有已知发行版的列表,一些基本信息以及我们拥有的文件列表: ![JSON files available in piwheels][17] -(Ben Nuttall, [CC BY-SA 4.0][4]) - 与之前的 PyPI 例子类似,你可以创建一个脚本来分析 API 内容。例如,对于每个 NumPy 版本,其中有多少 piwheels 文件: - -```python +``` import requests url = "https://www.piwheels.org/project/numpy/json" @@ -110,14 +93,12 @@ for version, info in package['releases'].items(): ![Metadata in JSON files in piwheels][18] -(Ben Nuttall, [CC BY-SA 4.0][4]) - -方便的一件事是 `apt_dependencies` 字段,它列出了使用该库所需的 Apt 软件包。本例中的 NumPy 文件,或者通过 pip 安装 Numpy,你还需要使用 Debian 的 Apt 包管理器安装 `libatlas3-base` 和 `libgfortran`。 +方便的是 `apt_dependencies` 字段,它列出了使用该库所需的 Apt 软件包。本例中的 NumPy 文件,或者通过 `pip` 安装 Numpy,你还需要使用 Debian 的 `apt` 包管理器安装 `libatlas3-base` 和 `libgfortran`。 以下是一个示例脚本,显示了程序包的 Apt 依赖关系: -```python +``` import requests def get_install(package, abi): @@ -140,7 +121,6 @@ get_install('opencv-python-headless', 'cp35m') 我们还为软件包列表提供了一个通用的 API 入口,其中包括每个软件包的下载统计: - ```python import requests @@ -160,10 +140,9 @@ print(package, "has had", d_all, "downloads in total") ### pip search -`pip search` 因为其 XMLRPC 接口过载而被禁用,因此人们一直在寻找替代方法。你可以使用 piwheels 的 JSON API 来搜索软件包名称,因为软件包的集合是相同的: +`pip search` 因为其 XMLRPC 接口过载而被禁用,因此人们一直在寻找替代方法。你可以使用 piwheels 的 JSON API 来搜索软件包名称,因为软件包的集合是相同的: - -```python +``` #!/usr/bin/python3 import sys @@ -192,7 +171,7 @@ if __name__ == '__main__': * * * -_本文最初发表在 Ben Nuttall 的 [Tooling Tuesday 博客上][20],经许可可转载使用。_ +_本文最初发表在 Ben Nuttall 的 [Tooling Tuesday 博客上][20],经许可转载使用。_ -------------------------------------------------------------------------------- @@ -201,7 +180,7 @@ via: https://opensource.com/article/21/3/python-package-index-json-apis-requests 作者:[Ben Nuttall][a] 选题:[lujun9972][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 723b8b969e57c9badf2e770777d718e4cc7b24fc Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 11:21:02 +0800 Subject: [PATCH 065/170] PUB @MjSeven https://linux.cn/article-13356-1.html --- ...0 Access Python package index JSON APIs with requests.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20210330 Access Python package index JSON APIs with requests.md (99%) diff --git a/translated/tech/20210330 Access Python package index JSON APIs with requests.md b/published/20210330 Access Python package index JSON APIs with requests.md similarity index 99% rename from translated/tech/20210330 Access Python package index JSON APIs with requests.md rename to published/20210330 Access Python package index JSON APIs with requests.md index 31fdde087b..2abdac6935 100644 --- a/translated/tech/20210330 Access Python package index JSON APIs with requests.md +++ b/published/20210330 Access Python package index JSON APIs with requests.md @@ -3,9 +3,9 @@ [#]: author: "Ben Nuttall https://opensource.com/users/bennuttall" [#]: collector: "lujun9972" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-13356-1.html" 使用 resuests 访问 Python 包索引(PyPI)的 JSON API ====== From 0bab379da59b0932a7bcef569562bd8192c46e12 Mon Sep 17 00:00:00 2001 From: RiaXu <1257021170@qq.com> Date: Mon, 3 May 2021 14:39:38 +0800 Subject: [PATCH 066/170] translated 20210412 --- .../tech/20210421 Build smaller containers.md | 148 +++++++++--------- 1 file changed, 76 insertions(+), 72 deletions(-) diff --git a/sources/tech/20210421 Build smaller containers.md b/sources/tech/20210421 Build smaller containers.md index 5e22fa232c..7403eb33b8 100644 --- a/sources/tech/20210421 Build smaller containers.md +++ b/sources/tech/20210421 Build smaller containers.md @@ -7,39 +7,40 @@ [#]: publisher: ( ) [#]: url: ( ) -Build smaller containers +构建更小的容器 ====== ![build smaller containers][1] -Otter image excerpted from photo by [Dele Oluwayomi][2] on [Unsplash][3] +水獭图片节选自[Dele Oluwayomi][2] 发表在 [Unsplash][3]上的照片 -Working with containers is a daily task for many users and developers. Container developers often need to (re)build container images frequently. If you develop containers, have you ever thought about reducing the image size? Smaller images have several benefits. They require less bandwidth to download and they save costs when run in cloud environments. Also, using smaller container images on Fedora [CoreOS][4], [IoT][5] and [Silverblue][6] improves overall system performance because those operating systems rely heavily on container workflows. This article will provide a few tips for reducing the size of container images. +使用容器工作是很多用户和开发者的日常任务。容器开发者经常需要频繁地(重)构建容器镜像。如果你开发容器,你有想过减小镜像的大小吗?比较小的镜像有一些好处。在下载的时候所需要的带宽更少,而且在云环境中运行的时候也可以节省开销。而且在Fedora [CoreOS][4]、[IoT][5]以及[Silverblue][6]上使用较小的容器镜像提升了整体系统性能,因为这些操作系统严重依赖于容器工作流。这篇文章将会提供一些减小容器镜像大小的技巧。 -### The tools +### 工具 + +以下例子所用到的主机操作系统是Fedora Linux33。例子使用 [Podman][7] 3.1.0 和[Buildah][8] 1.2.0。在大多数Fedora Linux变体中,Podman和Buildah都被预装好了。如果你没有安装Podman和Buildah,可以用下边的命令安装: -The host operating system in the following examples is Fedora Linux 33. The examples use [Podman][7] 3.1.0 and [Buildah][8] 1.2.0. Podman and Buildah are pre-installed in most Fedora Linux variants. If you don’t have Podman or Buildah installed, run the following command to install them. ``` $ sudo dnf install -y podman buildah ``` -### The task +### 任务 -Begin with a basic example. Build a web container meeting the following requirements. +从一个基础的例子开始。构建一个满足以下需求的web容器。 - * The container must be based on Fedora Linux - * Use the Apache httpd web server - * Include a custom website - * The container should be relatively small + * 容器必须基于Fedora Linux + * 使用Apache httpd web 服务器 + * 包含一个定制的网站 + * 容器应该比较小 -The following steps will also work on more complex images. +下边的步骤都是在比较复杂的镜像上进行的。 -### The setup +### 设置 -First, create a project directory. This directory will include your website and container file. +首先,创建一个工程目录。这个目录将会包含你的网站和容器文件。 ``` $ mkdir smallerContainer @@ -48,7 +49,7 @@ $ mkdir files $ touch files/index.html ``` -Make a simple landing page. For this demonstration, you may copy the below HTML into the _index.html_ file. +制作一个简单的登录页面。对于这个演示,你可以将下面的HTML复制到 _index.html_ 文件中。 ``` @@ -99,20 +100,20 @@ Make a simple landing page. For this demonstration, you may copy the below HTML ``` -Optionally, test the above _index.html_ file in your browser. +此时你可以选择在浏览器中测试上面的 _index.html_ 文件。 ``` $ firefox files/index.html ``` -Finally, create a container file. The file can be named either _Dockerfile_ or _Containerfile_. +最后,创建一个容器文件。这个文件可以命名为 _Dockerfile_ 或者 _Containerfile_。 + ``` $ touch Containerfile ``` -You should now have a project directory with a file system layout similar to what is shown in the below diagram. - +现在你应该有了一个工程目录,并且该目录中的文件系统布局如下。 ``` smallerContainer/ |- files/ @@ -121,48 +122,48 @@ smallerContainer/ |- Containerfile ``` -### The build +### 构建 -Now make the image. Each of the below stages will add a layer of improvements to help reduce the size of the image. You will end up with a series of images, but only one _Containerfile_. +现在构建镜像。下边的每个阶段都会添加一层改进来帮助减小镜像的大小。你最终会得到一系列镜像,但只有一个 _Containerfile_ 。 -#### Stage 0: a baseline container image +#### 阶段0:一个基本的容器镜像 -Your new image will be very simple and it will only include the mandatory steps. Place the following text in _Containerfile_. +你的新镜像将会非常简单,它只包含强制性步骤。在 _Containerfile_ 中添加以下内容。 ``` -# Use Fedora 33 as base image +# 使用 Fedora 33作为基镜像 FROM registry.fedoraproject.org/fedora:33 -# Install httpd +# 安装 httpd RUN dnf install -y httpd -# Copy the website +# 复制这个网站 COPY files/* /var/www/html/ -# Expose Port 80/tcp +# 设置端口为80/tcp EXPOSE 80 -# Start httpd +# 启动 httpd CMD ["httpd", "-DFOREGROUND"] ``` -In the above file there are some comments to indicate what is being done. More verbosely, the steps are: +在上边的文件中有一些注释来解释每一行内容都是在做什么。更详细的步骤: - 1. Create a build container with the base FROM registry.fedoraproject.org/fedora:33 - 2. RUN the command: _dnf install -y httpd_ - 3. COPY files relative to the _Containerfile_ to the container - 4. Set EXPOSE 80 to indicate which port is auto-publishable - 5. Set a CMD to indicate what should be run if one creates a container from this image + 1. 在FROM registry.fedoraproject.org/fedora:33 的基础上创建一个构建容器 + 2. 运行命令: _dnf install -y httpd_ + 3. 将与 _Containerfile_ 有关的文件拷贝到容器中 + 4. 设置EXPOSE 80来说明哪个端口是可以自动设置的 + 5. 设置一个CMD指令来说明如果从这个镜像创建一个容器应该运行什么 -Run the below command to create a new image from the project directory. +运行下边的命令从工程目录创建一个新的镜像。 ``` $ podman image build -f Containerfile -t localhost/web-base ``` -Use the following command to examine your image’s attributes. Note in particular the size of your image (467 MB). +使用一下命令来查看你的镜像的属性。注意你的镜像的大小(467 MB)。 ``` $ podman image ls @@ -171,15 +172,15 @@ localhost/web-base latest ac8c5ed73bb5 5 minutes ago 467 MB registry.fedoraproject.org/fedora 33 9f2a56037643 3 months ago 182 MB ``` -The example image shown above is currently occupying 467 MB of storage. The remaining stages should reduce the size of the image significantly. But first, verify that the image works as intended. +以上这个例子中展示的镜像在现在占用了467 MB的空间。剩下的阶段将会显著地减小镜像的大小。但是首先要验证镜像是否能够按照预期工作。 -Enter the following command to start the container. +输入以下命令来启动容器。 ``` $ podman container run -d --name web-base -P localhost/web-base ``` -Enter the following command to list your containers. +输入以下命令可以列出你的容器。 ``` $ podman container ls @@ -187,15 +188,16 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS d24063487f9f localhost/web-base httpd -DFOREGROUN... 2 seconds ago Up 3 seconds ago 0.0.0.0:46191->80/tcp web-base ``` -The container shown above is running and it is listening on port _46191_. Going to _localhost:46191_ from a web browser running on the host operating system should render your web page. +以上展示的容器正在运行,它正在监听的端口是 _46191_ 。从运行在主机操作系统上的web浏览器转到 _localhost:46191_ 应该呈现你的web页面。 + ``` $ firefox localhost:46191 ``` -#### Stage 1: clear caches and remove other leftovers from the container +#### 阶段1:清除缓存并将残余的内容从容器中删除 -The first step one should always perform to optimize the size of their container image is “clean up”. This will ensure that leftovers from installations and packaging are removed. What exactly this process entails will vary depending on your container. For the above example you can just edit _Containerfile_ to include the following lines. +为了优化容器镜像的大小,第一步应该总是执行”清理“。这将保证安装和打包所残余的内容都被删掉。这个过程到底需要什么取决于你的容器。对于以上的例子,只需要编辑 _Containerfile_ 让它包含以下几行。 ``` [...] @@ -205,7 +207,7 @@ RUN dnf install -y httpd && \ [...] ``` -Build the modified _Containerfile_ to reduce the size of the image significantly (237 MB in this example). +构建修改后的 _Containerfile_ 来显著地减小镜像(这个例子中是237 MB)。 ``` $ podman image build -f Containerfile -t localhost/web-clean @@ -214,11 +216,11 @@ REPOSITORY TAG IMAGE ID CREATED SIZE localhost/web-clean latest f0f62aece028 6 seconds ago 237 MB ``` -#### Stage 2: remove documentation and unneeded package dependencies +#### 阶段2:删除文档和不需要的依赖包 -Many packages will pull in recommendations, weak dependencies and documentation when they are installed. These are often not needed in a container and can be excluded. The _dnf_ command has options to indicate that it should not include weak dependencies or documentation. +许多包在安装时会被建议拉下来,包含一些弱依赖和文档。这些在容器中通常是不需要的,可以删除。 _dnf_ 命令的选项表明了他不需要包含弱依赖或文档。 -Edit _Containerfile_ again and add the options to exclude documentation and weak dependencies on the _dnf install_ line: +再次编辑 _Containerfile_ ,并在 _dnf install_ 行中添加删除文档和弱依赖的选项: ``` [...] @@ -228,7 +230,7 @@ RUN dnf install -y httpd --nodocs --setopt install_weak_deps=False && \ [...] ``` -Build _Containerfile_ with the above modifications to achieve an even smaller image (231 MB). +构建经过以上修改后的 _Containerfile_ 可以得到一个更小的镜像(231 MB)。 ``` $ podman image build -f Containerfile -t localhost/web-docs @@ -237,11 +239,11 @@ REPOSITORY TAG IMAGE ID CREATED SIZE localhost/web-docs latest 8a76820cec2f 8 seconds ago 231 MB ``` -#### Stage 3: use a smaller container base image +#### 阶段3:使用更小的容器基镜像 -The prior stages, in combination, have reduced the size of the example image by half. But there is still one more thing that can be done to reduce the size of the image. The base image _registry.fedoraproject.org/fedora:33_ is meant for general purpose use. It provides a collection of packages that many people expect to be pre-installed in their Fedora Linux containers. The collection of packages provided in the general purpose Fedora Linux base image is often more extensive than needed, however. The Fedora Project also provides a _fedora-minimal_ base image for those who wish to start with only the essential packages and then add only what they need to achieve a smaller total image size. +前面的阶段结合起来,使得示例镜像的大小减少了一半。但是仍然还有一些途径来进一步减小镜像的大小。这个基镜像 _registry.fedoraproject.org/fedora:33_ 是通用的。它提供了一组软件包,许多人希望这些软件包预先安装在他们的Fedora Linux容器中。但是,通用Fedora Linux基镜像中提供的包通常必须要的更多。Fedora工程也为那些希望只从基本包开始,然后只添加所需内容来实现较小总镜像大小的用户提供了一个 _fedora-minimal_ 镜像。 -Use _podman image search_ to search for the _fedora-minimal_ image as shown below. +使用 _podman image search_ 来查找 _fedora-minimal_ 镜像如下所示。 ``` $ podman image search fedora-minimal @@ -249,19 +251,19 @@ INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED fedoraproject.org registry.fedoraproject.org/fedora-minimal 0 ``` -The _fedora-minimal_ base image excludes [DNF][9] in favor of the smaller [microDNF][10] which does not require Python. When _registry.fedoraproject.org/fedora:33_ is replaced with _registry.fedoraproject.org/fedora-minimal:33_, _dnf_ needs to be replaced with _microdnf_. +_fedora-minimal_ 基镜像不包含[DNF][9],而是倾向于不需要Python的较小的[microDNF][10]。当 _registry.fedoraproject.org/fedora:33_ 被 _registry.fedoraproject.org/fedora-minimal:33_ 替换后,需要用 _microdnf_ 来替换 _dnf_。 + ``` -# Use Fedora minimal 33 as base image +# 使用Fedora minimal 33作为基镜像 FROM registry.fedoraproject.org/fedora-minimal:33 -# Install httpd +# 安装 httpd RUN microdnf install -y httpd --nodocs --setopt install_weak_deps=0 && \ microdnf clean all -y [...] ``` - -Rebuild the image to see how much storage space has been recovered by using _fedora-minimal_ (169 MB). +使用 _fedora-minimal_ 重新构建后的镜像大小如下所示 (169 MB)。 ``` $ podman image build -f Containerfile -t localhost/web-docs @@ -270,46 +272,47 @@ REPOSITORY TAG IMAGE ID CREATED SIZE localhost/web-minimal latest e1603bbb1097 7 minutes ago 169 MB ``` -The initial image size was **467 MB**. Combining the methods detailed in each of the above stages has resulted in a final image size of **169 MB**. The final _total_ image size is smaller than the original _base_ image size of 182 MB! +最开始的镜像大小是**467 MB**。结合以上每个阶段所提到的方法,进行重新构建之后可以得到最终大小为**169 MB**的镜像。最终的 _总_ 镜像大小比最开始的 _基_ 镜像大小小了182 MB! -### Building containers from scratch +### 从零开始构建容器 -The previous section used a container file and Podman to build a new image. There is one last thing to demonstrate — building a container from scratch using Buildah. Podman uses the same libraries to build containers as Buildah. But Buildah is considered a pure build tool. Podman is designed to work as a replacement for Docker. +前边的内容使用一个容器文件和Podman来构建一个新的镜像。还有最后一个方法要展示——使用Buildah来从头构建一个容器。Podman使用与Buildah相同的库来构建容器。但是Buildah被认为是一个纯构建工具。Podman被设计来是为了代替Docker的。 + +使用Buildah从头构建的容器是空的——它里边什么都 _没有_ 。所有的东西都需要安装或者从容器外拷贝。幸运地是,使用Buildah可以相当简单。下边是一个从头开始构建镜像的小的Bash脚本。除了运行这个脚本,你也可以在终端逐条地运行脚本中的命令,来更好的理解每一步都是做什么的。 -When building from scratch using Buildah, the container is empty — there is _nothing_ in it. Everything needed must be installed or copied from outside the container. Fortunately, this is quite easy with Buildah. Below, a small Bash script is provided which will build the image from scratch. Instead of running the script, you can run each of the commands from the script individually in a terminal to better understand what is being done. ``` #!/usr/bin/env bash set -o errexit -# Create a container +# 创建一个容器 CONTAINER=$(buildah from scratch) -# Mount the container filesystem +# 挂载容器文件系统 MOUNTPOINT=$(buildah mount $CONTAINER) -# Install a basic filesystem and minimal set of packages, and nginx +# 安装一个基本的文件系统和最小的包以及nginx dnf install -y --installroot $MOUNTPOINT --releasever 33 glibc-minimal-langpack httpd --nodocs --setopt install_weak_deps=False dnf clean all -y --installroot $MOUNTPOINT --releasever 33 -# Cleanup +# 清除 buildah unmount $CONTAINER -# Copy the website +# 复制网站 buildah copy $CONTAINER 'files/*' '/var/www/html/' -# Expose Port 80/tcp +# 设置端口为 80/tcp buildah config --port 80 $CONTAINER -# Start httpd +# 启动httpd buildah config --cmd "httpd -DFOREGROUND" $CONTAINER -# Save the container to an image +# 将容器保存为一个镜像 buildah commit --squash $CONTAINER web-scratch ``` -Alternatively, the image can be built by passing the above script to Buildah. Notice that root privileges are not required. +或者,可以通过将上面的脚本传递给Buildah来构建镜像。注意不需要root权限。 ``` $ buildah unshare bash web-scratch.sh @@ -318,13 +321,14 @@ REPOSITORY TAG IMAGE ID CREATED SIZE localhost/web-scratch latest acca45fc9118 9 seconds ago 155 MB ``` -The final image is only **155 MB**! Also, the [attack surface][11] has been reduced. Not even DNF (or microDNF) is installed in the final image. +最后的镜像只有**155 MB**!而且[攻击面][11]也减少了。甚至在最后的镜像中都没有安装DNF(或者microDNF)。 -### Conclusion +### 结论 -Building smaller container images has many advantages. Reducing the needed bandwidth, the disk footprint and attack surface will lead to better images overall. It is easy to reduce the footprint with just a few small changes. Many of the changes can be done without altering the functionality of the resulting image. +构建一个比较小的容器镜像有许多优点。减少所需要的带宽、磁盘占用以及攻击面,都会得到更好的镜像。只用很少的更改来减小镜像的大小很简单。许多更改都可以在不改变结果镜像的功能下完成。 -It is also possible to build very small images from scratch which will only hold the needed binaries and configuration files. + +只保存所需的二进制文件和配置文件来构建非常小的镜像也是可能的。 -------------------------------------------------------------------------------- From f4adb57aa24ef2300ba06f4066f091cab583bcb7 Mon Sep 17 00:00:00 2001 From: RiaXu <1257021170@qq.com> Date: Mon, 3 May 2021 14:40:30 +0800 Subject: [PATCH 067/170] Rename sources/tech/20210421 Build smaller containers.md to translated/tech/20210421 Build smaller containers.md --- {sources => translated}/tech/20210421 Build smaller containers.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210421 Build smaller containers.md (100%) diff --git a/sources/tech/20210421 Build smaller containers.md b/translated/tech/20210421 Build smaller containers.md similarity index 100% rename from sources/tech/20210421 Build smaller containers.md rename to translated/tech/20210421 Build smaller containers.md From 200186dfb6eff80a2cb208cf5038573ff32bbc72 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 21:40:52 +0800 Subject: [PATCH 068/170] PRF --- ...10330 Access Python package index JSON APIs with requests.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20210330 Access Python package index JSON APIs with requests.md b/published/20210330 Access Python package index JSON APIs with requests.md index 2abdac6935..437bd5c3ea 100644 --- a/published/20210330 Access Python package index JSON APIs with requests.md +++ b/published/20210330 Access Python package index JSON APIs with requests.md @@ -7,7 +7,7 @@ [#]: publisher: "wxy" [#]: url: "https://linux.cn/article-13356-1.html" -使用 resuests 访问 Python 包索引(PyPI)的 JSON API +使用 requests 访问 Python 包索引(PyPI)的 JSON API ====== > PyPI 的 JSON API 是一种机器可直接使用的数据源,你可以访问和你浏览网站时相同类型的数据。 From 392ec392386f55fbcf42047379d7a0856d129d21 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 22:15:24 +0800 Subject: [PATCH 069/170] PRF @geekpi --- ...lay a fun math game with Linux commands.md | 44 +++++++------------ 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/translated/tech/20210416 Play a fun math game with Linux commands.md b/translated/tech/20210416 Play a fun math game with Linux commands.md index c4aad23a15..a2d470edb4 100644 --- a/translated/tech/20210416 Play a fun math game with Linux commands.md +++ b/translated/tech/20210416 Play a fun math game with Linux commands.md @@ -3,22 +3,24 @@ [#]: author: (Jim Hall https://opensource.com/users/jim-hall) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) 用 Linux 命令玩一个有趣的数学游戏 ====== -在家玩流行的英国游戏节目 “Countdown” 中的数字游戏。 -![Math formulas in green writing][1] -像许多人一样,我在大流行期间探索了许多新的电视节目。我最近发现了一个英国的游戏节目,叫做 _[Countdown][2]_,参赛者在其中玩两种游戏:一种是_单词_游戏,他们试图从杂乱的字母中找出最长的单词;另一种是_数字_游戏,他们从随机选择的数字中计算出一个目标数字。因为我喜欢数学,我发现自己被数字游戏所吸引。 +> 在家玩流行的英国游戏节目 “Countdown” 中的数字游戏。 -数字游戏可以为你的下一个家庭游戏之夜增添乐趣,所以我想分享我自己的变化。你以一组随机数字开始,分为 1 到 10 的“小”数字和 15、20、25 的“大”数字,以此类推,直到 100。你从大数字和小数字中挑选六个数字的任何组合。 +![](https://img.linux.net.cn/data/attachment/album/202105/03/221459uchb0f8xcxfrhc86.jpg) + +像许多人一样,我在大流行期间看了不少新的电视节目。我最近发现了一个英国的游戏节目,叫做 [Countdown][2],参赛者在其中玩两种游戏:一种是 _单词_ 游戏,他们试图从杂乱的字母中找出最长的单词;另一种是 _数字_ 游戏,他们从随机选择的数字中计算出一个目标数字。因为我喜欢数学,我发现自己被数字游戏所吸引。 + +数字游戏可以为你的下一个家庭游戏之夜增添乐趣,所以我想分享我自己的一个游戏变体。你以一组随机数字开始,分为 1 到 10 的“小”数字和 15、20、25,以此类推,直到 100 的“大”数字。你从大数字和小数字中挑选六个数字的任何组合。 接下来,你生成一个 200 到 999 之间的随机“目标”数字。然后用你的六个数字进行简单的算术运算,尝试用每个“小”和“大”数字计算出目标数字,但使用不能超过一次。如果你能准确地计算出目标数字,你就能得到最高分,如果距离目标数字 10 以内就得到较低的分数。 -例如,如果你的随机数是 75、100、2、3、4 和 1,而你的目标数是 505,你可以说 _2+3=5_,_5×100=500_,_4+1=5_,以及 _5+500=505_。或者更直接地:(**2**+**3**)×**100** \+ **4** \+ **1** = **505**. +例如,如果你的随机数是 75、100、2、3、4 和 1,而你的目标数是 505,你可以说 `2+3=5`,`5×100=500`,`4+1=5`,以及 `5+500=505`。或者更直接地:`(2+3)×100 + 4 + 1 = 505`。 ### 在命令行中随机化列表 @@ -40,8 +42,7 @@ $ seq 1 10 10 ``` -为了随机化这个列表,你可以使用 Linux 的 `shuf`("shuffle")命令。`shuf` 将随机化你给它的东西的顺序,通常是一个文件。例如,如果你把 `seq` 命令的输出发送到 `shuf` 命令,你会收到一个 1 到 10 之间的随机数字列表: - +为了随机化这个列表,你可以使用 Linux 的 `shuf`(“shuffle”,打乱)命令。`shuf` 将随机化你给它的东西的顺序,通常是一个文件。例如,如果你把 `seq` 命令的输出发送到 `shuf` 命令,你会收到一个 1 到 10 之间的随机数字列表: ``` $ seq 1 10 | shuf @@ -59,7 +60,6 @@ $ seq 1 10 | shuf 要从 1 到 10 的列表中只选择四个随机数,你可以将输出发送到 `head` 命令,它将打印出输入的前几行。使用 `-4` 选项来指定 `head` 只打印前四行: - ``` $ seq 1 10 | shuf | head -4 6 @@ -70,8 +70,7 @@ $ seq 1 10 | shuf | head -4 注意,这个列表与前面的例子不同,因为 `shuf` 每次都会生成一个随机顺序。 -现在你可以采取下一步措施来生成”大“数字的随机列表。第一步是生成一个可能的数字列表,从 15 开始,以 5 为单位递增,直到达到 100。你可以用 Linux 的 `seq` 命令生成这个列表。为了使每个数字以 5 为单位递增,在 `seq` 命令中插入另一个选项来表示_步进_: - +现在你可以采取下一步措施来生成“大”数字的随机列表。第一步是生成一个可能的数字列表,从 15 开始,以 5 为单位递增,直到达到 100。你可以用 Linux 的 `seq` 命令生成这个列表。为了使每个数字以 5 为单位递增,在 `seq` 命令中插入另一个选项来表示 _步进_: ``` $ seq 15 5 100 @@ -95,8 +94,7 @@ $ seq 15 5 100 100 ``` -就像以前一样,你可以随机化这个列表,选择两个”大“数字: - +就像以前一样,你可以随机化这个列表,选择两个“大”数字: ``` $ seq 15 5 100 | shuf | head -2 @@ -108,11 +106,9 @@ $ seq 15 5 100 | shuf | head -2 我想你可以用类似的方法从 200 到 999 的范围内选择游戏的目标数字。但是生成单个随机数的最简单的方案是直接在 Bash 中使用 `RANDOM` 变量。当你引用这个内置变量时,Bash 会生成一个大的随机数。要把它放到 200 到 999 的范围内,你需要先把随机数放到 0 到 799 的范围内,然后加上 200。 -要把随机数放到从 0 开始的特定范围内,你可以使用**模数**算术运算符。模数计算的是两个数字相除后的_余数_。如果我用 801 除以 800,结果是 1,余数是 1(模数是 1)。800 除以 800 的结果是 1,余数是 0(模数是 0)。而用 799 除以 800 的结果是 0,余数是 799(模数是 799)。 - -Bash 通过 `$(())` 结构支持算术扩展。在双括号之间,Bash 将对你提供的数值进行算术运算。要计算 801 除以 800 的模数,然后加上 200,你可以输入: - +要把随机数放到从 0 开始的特定范围内,你可以使用**模数**算术运算符。模数计算的是两个数字相除后的 _余数_。如果我用 801 除以 800,结果是 1,余数是 1(模数是 1)。800 除以 800 的结果是 1,余数是 0(模数是 0)。而用 799 除以 800 的结果是 0,余数是 799(模数是 799)。 +Bash 通过 `$(())` 结构支持算术展开。在双括号之间,Bash 将对你提供的数值进行算术运算。要计算 801 除以 800 的模数,然后加上 200,你可以输入: ``` $ echo $(( 801 % 800 + 200 )) @@ -121,7 +117,6 @@ $ echo $(( 801 % 800 + 200 )) 通过这个操作,你可以计算出一个 200 到 999 之间的随机目标数: - ``` $ echo $(( RANDOM % 800 + 200 )) 673 @@ -131,8 +126,7 @@ $ echo $(( RANDOM % 800 + 200 )) ### 玩数字游戏 -让我们把所有这些放在一起,玩玩数字游戏。产生两个随机的”大“数字, 四个随机的”小“数值,以及目标值: - +让我们把所有这些放在一起,玩玩数字游戏。产生两个随机的“大”数字, 四个随机的“小”数值,以及目标值: ``` $ seq 15 5 100 | shuf | head -2 @@ -149,8 +143,7 @@ $ echo $(( RANDOM % 800 + 200 )) 我的数字是 **75**、**100**、**4**、**3**、**10** 和 **2**,而我的目标数字是 **868**。 -如果我用每个”小“和”大“数字做这些算术运算,并不超过一次,我就能接近目标数字了: - +如果我用每个“小”和“大”数字做这些算术运算,并不超过一次,我就能接近目标数字了: ``` 10×75 = 750 @@ -163,10 +156,8 @@ $ echo $(( RANDOM % 800 + 200 )) 862+2 = 864 ``` -That's only four away—not bad! But I found this way to calculate the exact number using each random number no more than once: 只相差 4 了,不错!但我发现这样可以用每个随机数不超过一次来计算出准确的数字: - ``` 4×2 = 8 8×100 = 800 @@ -177,8 +168,7 @@ That's only four away—not bad! But I found this way to calculate the exact nu 800+68 = 868 ``` -或者我可以做_这些_计算来准确地得到目标数字。这只用了六个随机数中的五个: - +或者我可以做 _这些_ 计算来准确地得到目标数字。这只用了六个随机数中的五个: ``` 4×3 = 12 @@ -199,7 +189,7 @@ via: https://opensource.com/article/21/4/math-game-linux-commands 作者:[Jim Hall][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 03d11b7bc573d8c1f7d9e8a12b116f04f557c029 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 22:16:12 +0800 Subject: [PATCH 070/170] PUB @geekpi https://linux.cn/article-13358-1.html --- .../20210416 Play a fun math game with Linux commands.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210416 Play a fun math game with Linux commands.md (98%) diff --git a/translated/tech/20210416 Play a fun math game with Linux commands.md b/published/20210416 Play a fun math game with Linux commands.md similarity index 98% rename from translated/tech/20210416 Play a fun math game with Linux commands.md rename to published/20210416 Play a fun math game with Linux commands.md index a2d470edb4..64cdaf210d 100644 --- a/translated/tech/20210416 Play a fun math game with Linux commands.md +++ b/published/20210416 Play a fun math game with Linux commands.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13358-1.html) 用 Linux 命令玩一个有趣的数学游戏 ====== From 3a2a78ecbdcb59abbfe18491dba7928f28c2cfb3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 22:31:32 +0800 Subject: [PATCH 071/170] APL --- sources/tech/20210427 What-s new in Fedora Workstation 34.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210427 What-s new in Fedora Workstation 34.md b/sources/tech/20210427 What-s new in Fedora Workstation 34.md index 7141e775ec..921c728c38 100644 --- a/sources/tech/20210427 What-s new in Fedora Workstation 34.md +++ b/sources/tech/20210427 What-s new in Fedora Workstation 34.md @@ -2,7 +2,7 @@ [#]: via: (https://fedoramagazine.org/whats-new-fedora-34-workstation/) [#]: author: (Christian Fredrik Schaller https://fedoramagazine.org/author/uraeus/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wxy) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From a43a754e70ef0828d4a9b71f70736a8dfcd04f73 Mon Sep 17 00:00:00 2001 From: HuengchI <37769009+HuengchI@users.noreply.github.com> Date: Mon, 3 May 2021 22:57:36 +0800 Subject: [PATCH 072/170] =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8E=9F=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...s Detecting Network Change in Linux- Here-s How to Fix it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md index 1f14cae866..3c44d5a588 100644 --- a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md +++ b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/network-change-detected/) [#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (HuengchI) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 7139e44ad81616c4b12c0eaa3faa95afeaee428a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 23:38:37 +0800 Subject: [PATCH 073/170] TSL&PRF --- ...427 What-s new in Fedora Workstation 34.md | 106 ------------------ ...427 What-s new in Fedora Workstation 34.md | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 106 deletions(-) delete mode 100644 sources/tech/20210427 What-s new in Fedora Workstation 34.md create mode 100644 translated/tech/20210427 What-s new in Fedora Workstation 34.md diff --git a/sources/tech/20210427 What-s new in Fedora Workstation 34.md b/sources/tech/20210427 What-s new in Fedora Workstation 34.md deleted file mode 100644 index 921c728c38..0000000000 --- a/sources/tech/20210427 What-s new in Fedora Workstation 34.md +++ /dev/null @@ -1,106 +0,0 @@ -[#]: subject: (What’s new in Fedora Workstation 34) -[#]: via: (https://fedoramagazine.org/whats-new-fedora-34-workstation/) -[#]: author: (Christian Fredrik Schaller https://fedoramagazine.org/author/uraeus/) -[#]: collector: (lujun9972) -[#]: translator: (wxy) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -What’s new in Fedora Workstation 34 -====== - -![][1] - -Fedora Workstation 34 is the latest version of our leading-edge operating system and this time there are major improvements heading your way. Best of all, you can download it from [the official website][2]. What’s new, I hear you ask!?  Well let’s get to it. - -### GNOME 40 - -[GNOME 40][3] is a major update to the GNOME desktop, which Fedora community members played a key role in designing and implementing, so you can be sure that the needs of Fedora users were taken into account. - -The first thing you notice as you log into the GNOME 40 desktop is that you are now taken directly to a redesigned overview screen. You will notice that the dash bar has moved to the bottom of the screen. Another major change to GNOME 40 is the virtual work spaces are now horizontal which brings GNOME more in line with most other desktops out there and should thus make getting used to GNOME and Fedora easier for new users. - -Work has also been done to improve gesture support in the desktop with 3-finger horizontal swipes for switching workspaces, and 3-finger vertical swipes for bringing up the overview. - -![][4] - -The updated overview design brings a collection of other improvements, including: - - * The dash now separates favorite and non-favorite running apps. This makes it clear which apps have been favorited and which haven’t. - * Window thumbnails have been improved, and now have an app icon over each one, to help identification. - * When workspaces are set to be on all displays, the workspace switcher is now shown on all displays rather than just the primary one. - * App launcher drag and drop has been improved, to make it easier to customize the arrangement of the app grid. - - - -The changes in GNOME 40 underwent a good deal of user testing, and have had a very positive reaction so far, so we’re excited to be introducing them to the Fedora community. For more information, see [forty.gnome.org][3] or the [GNOME 40 release notes][5]. - -### App Improvements - -GNOME Weather has been redesigned for this release with two views, one for the hourly forecast for the next 48 hours, and one for the daily forecast for the next 10 days. - -The new version now shows more information, and is more mobile-friendly, as it supports narrower sizes. - -![][6] - -Other apps which have been improved include Files, Maps, Software and Settings. See the [GNOME 40 release notes][5] for more details. - -### **PipeWire** - -PipeWire is the new audio and video server, created by Wim Taymans, who also co-created the GStreamer multimedia framework. Until now, it has only been used for video capture, but in Fedora Workstation 34 we are making the jump to also use it for audio, replacing PulseAudio. - -PipeWire is designed to be compatible with both PulseAudio and Jack, so applications should generally work as before. We have also worked with Firefox and Chrome to ensure that they work well with PipeWire. PipeWire support is also coming soon in OBS Studio, so if you are a podcaster, we’ve got you covered. - -PipeWire has had a very positive reception from the pro-audio community. It is prudent to say that there may be pro-audio applications that will not work 100% from day one, but we are receiving a constant stream of test reports and patches, which we will be using to continue the pro-audio PipeWire experience during the Fedora Workstation 34 lifecycle. - -### **Improved Wayland support** - -Support for running Wayland on top of the proprietary NVIDIA driver is expected to be resolved within the Fedora Workstation 34 lifetime. Support for running a pure Wayland client on the NVIDIA driver already exists. However, this currently lacks support for the Xwayland compatibility layer, which is used by many applications. This is why Fedora still defaults to X.Org when you install the NVIDIA driver. - -We are [working upstream with NVIDIA][7]  to ensure Xwayland  works in Fedora with NVIDIA hardware acceleration. - -### **QtGNOME platform and Adwaita-Qt** - -Jan Grulich has continued his great work on the QtGNOME platform and Adawaita-qt themes, ensuring that  Qt applications integrate well with Fedora Workstation. The Adwaita theme that we use in Fedora has evolved over the years, but with the updates to QtGNOME platform and Adwaita-Qt in Fedora 34, Qt applications will more closely match the current GTK style in Fedora Workstation 34. - -As part of this work, the appearance and styling of Fedora Media Writer has also been improved. - -![][8] - -### **Toolbox** - -Toolbox is our great tool for creating development environments that are isolated from your host system, and it has seen lots of improvements for Fedora 34. For instance we have put a lot of work into improving the CI system integration for toolbox to avoid breakages in our stack causing Toolbox to stop working. - -A lot of work has been put into the RHEL integration in Toolbox, which means that you can easily set up a containerized RHEL environment on a Fedora system, and thus conveniently do development for RHEL servers and cloud instances. Creating a RHEL environment on Fedora is now as easy as running: toolbox create –distro rhel –release 8.4.  - -This gives you the advantage of an up to date desktop which supports the latest hardware, while being able to do RHEL-targeted development in a way that feels completely native. -![][9] - -### **Btrfs** - -Fedora Workstation has been using Btrfs as its default file system since Fedora 33. Btrfs is a modern filesystem that is developed by many companies and projects. Workstation’s adoption of Btrfs came about through fantastic collaboration between Facebook and the Fedora community. Based on user feedback so far, people feel that Btrfs provides a snappier and more responsive experience, compared with the old ext4 filesystem. - -With Fedora 34, new workstation installs now use Btrfs transparent compression by default. This saves significant disk space compared with uncompressed Btrfs, often in the range of 20-40%. It also increases the lifespan of SSDs and other flash media. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/whats-new-fedora-34-workstation/ - -作者:[Christian Fredrik Schaller][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/uraeus/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-workstation-816x345.jpg -[2]: https://getfedora.org/workstation -[3]: https://forty.gnome.org/ -[4]: https://lh3.googleusercontent.com/xDklMWAGBWvRGRp2kby-XKr6b0Jvan8Obmn11sfmkKnsnXizKePYV9aWdEgyxmJetcvwMifYRUm6TcPRCH9szZfZOE9pCpv2bkjQhnq2II05Yu6o_DjEBmqTlRUGvvUyMN_VRtq8zkk2J7GUmA -[5]: https://help.gnome.org/misc/release-notes/40.0/ -[6]: https://lh6.googleusercontent.com/pQ3IIAvJDYrdfXoTUnrOcCQBjtpXqd_5Rmbo4xwxIj2qMCXt7ZxJEQ12OoV7yUSF8zpVR0VFXkMP0M8UK1nLbU7jhgQPJAHPayzjAscQmTtqqGsohyzth6-xFDjUXogmeFmcP-yR9GWXfXv-yw -[7]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/587 -[8]: https://lh6.googleusercontent.com/PDXxFS7SBFGI-3jRtR-TmqupvJRxy_CbWTfjB4sc1CKyO1myXkqfpg4jGHQJRK2e1vUh1KD_jyBsy8TURwCIkgAJcETCOlSPFBabqB5yDeWj3cvygOOQVe3X0tLFjuOz3e-ZX6owNZJSqIEHOQ -[9]: https://lh6.googleusercontent.com/dVRCL14LGE9WpmdiH3nI97OW2C1TkiZqREvBlHClNKdVcYvR1nZpZgWfup_GP5SN17iQtSJf59FxX2GYqoajXbdXLRfOwAREn7gVJ1fa_bspmcTZ81zkUQC4tNUx3f7D7uD7Peeg2Zc9Kldpww diff --git a/translated/tech/20210427 What-s new in Fedora Workstation 34.md b/translated/tech/20210427 What-s new in Fedora Workstation 34.md new file mode 100644 index 0000000000..aa0e300338 --- /dev/null +++ b/translated/tech/20210427 What-s new in Fedora Workstation 34.md @@ -0,0 +1,106 @@ +[#]: subject: (What’s new in Fedora Workstation 34) +[#]: via: (https://fedoramagazine.org/whats-new-fedora-34-workstation/) +[#]: author: (Christian Fredrik Schaller https://fedoramagazine.org/author/uraeus/) +[#]: collector: (lujun9972) +[#]: translator: (wxy) +[#]: reviewer: (wxy) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora Workstation 34 中的新变化 +====== + +![](https://img.linux.net.cn/data/attachment/album/202105/03/233735glmkkimcz8ilmcmr.jpg) + +Fedora Workstation 34 是我们领先的操作系统的最新版本,这次你将获得重大改进。最重要的是,你可以从 [官方网站][2] 下载它。我听到你在问,有什么新的东西?好吧,让我们来介绍一下。 + +### GNOME 40 + +[GNOME 40][3] 是对 GNOME 桌面的一次重大更新,Fedora 社区成员在其设计和实现过程中发挥了关键作用,因此你可以确信 Fedora 用户的需求被考虑在内。 + +当你登录到 GNOME 40 桌面时,首先注意到的就是你现在会被直接带到一个重新设计的概览屏幕。你会注意到仪表盘已经移到了屏幕的底部。GNOME 40 的另一个主要变化是虚拟工作空间现在是水平摆放的,这使 GNOME 与其他大多数桌面更加一致,因此应该使新用户更容易适应 GNOME 和 Fedora。 + +我们还做了一些工作来改善桌面中的手势支持,用三根手指水平滑动来切换工作空间,用三根手指垂直滑动来调出概览。 + +![][4] + +更新后的概览设计带来了一系列其他改进,包括: + + * 仪表盘现在将收藏的和未收藏的运行中的应用程序分开。这使得可以清楚了解哪些应用已经被收藏,哪些未收藏。 + * 窗口缩略图得到了改进,现在每个窗口上都有一个应用程序图标,以帮助识别。 + * 当工作区被设置为在所有显示器上显示时,工作区切换器现在会显示在所有显示器上,而不仅仅是主显示器。 + * 应用启动器的拖放功能得到了改进,可以更轻松地自定义应用程序网格的排列方式。 + +GNOME 40 中的变化经历了大量的用户测试,到目前为止反应非常正面,所以我们很高兴能将它们介绍给 Fedora 社区。更多信息请见 [forty.gnome.org][3] 或 [GNOME 40 发行说明][5]。 + +### 应用程序的改进 + +GNOME “天气”为这个版本进行了重新设计,具有两个视图,一个是未来 48 小时的小时预报,另一个是未来 10 天的每日预报。 + +新版本现在显示了更多的信息,并且更适合移动设备,因为它支持更窄的尺寸。 + +![][6] + +其他被改进的应用程序包括“文件”、“地图”、“软件”和“设置”。更多细节请参见 [GNOME 40 发行说明][5]。 + +### PipeWire + +PipeWire 是新的音频和视频服务器,由 Wim Taymans 创建,他也共同创建了 GStreamer 多媒体框架。到目前为止,它只被用于视频捕获,但在 Fedora Workstation 34 中,我们也开始将其用于音频,取代 PulseAudio。 + +PipeWire 旨在与 PulseAudio 和 Jack 兼容,因此应用程序通常应该像以前一样可以工作。我们还与 Firefox 和 Chrome 合作,确保它们能与 PipeWire 很好地配合。OBS Studio 也即将支持 PipeWire,所以如果你是一个播客,我们已经帮你搞定了这些。 + +PipeWire 在专业音频界获得了非常积极的回应。谨慎地说,从一开始就可能有一些专业音频应用不能完全工作,但我们会源源不断收到测试报告和补丁,我们将在 Fedora Workstation 34 的生命周期内使用这些报告和补丁来延续专业音频 PipeWire 的体验。 + +### 改进的 Wayland 支持 + +我们预计将在 Fedora Workstation 34 的生命周期内解决在专有的 NVIDIA 驱动之上运行 Wayland 的支持。已经支持在 NVIDIA 驱动上运行纯 Wayland 客户端。然而,当前还缺少对许多应用程序使用的 Xwayland 兼容层的支持。这就是为什么当你安装 NVIDIA 驱动时,Fedora 仍然默认为 X.Org。 + +我们正在 [与 NVIDIA 上游合作][7],以确保 Xwayland 能在 Fedora 中使用 NVIDIA 硬件加速。 + +### QtGNOME 平台和 Adwaita-Qt + +Jan Grulich 继续他在 QtGNOME 平台和 Adawaita-qt 主题上的出色工作,确保 Qt 应用程序与 Fedora 工作站的良好整合。多年来,我们在 Fedora 中使用的 Adwaita 主题已经发生了演变,但随着 QtGNOME 平台和 Adwaita-Qt 在 Fedora 34 中的更新,Qt 应用程序将更接近于 Fedora Workstation 34 中当前的 GTK 风格。 + +作为这项工作的一部分,Fedora Media Writer 的外观和风格也得到了改进。 + +![][8] + +### Toolbox + +Toolbox 是我们用于创建与主机系统隔离的开发环境的出色工具,它在 Fedora 34 上有了很多改进。例如,我们在改进 Toolbox 的 CI 系统集成方面做了大量的工作,以避免在我们的环境中出现故障时导致 Toolbox 停止工作。 + +我们在 Toolbox 的 RHEL 集成方面投入了大量的工作,这意味着你可以很容易地在 Fedora 系统上建立一个容器化的 RHEL 环境,从而方便地为 RHEL 服务器和云实例做开发。现在在 Fedora 上创建一个 RHEL 环境就像运行:`toolbox create -distro rhel -release 8.4` 一样简单。  + +这给你提供了一个最新桌面的优势:支持最新硬件,同时能够以一种完全原生的方式进行针对 RHEL 的开发。 + +![][9] + +### Btrfs + +自 Fedora 33 以来,Fedora Workstation 一直使用 Btrfs 作为其默认文件系统。Btrfs 是一个现代文件系统,由许多公司和项目开发。Workstation 采用 Btrfs 是通过 Facebook 和 Fedora 社区之间的奇妙合作实现的。根据到目前为止的用户反馈,人们觉得与旧的 ext4 文件系统相比,Btrfs 提供了更快捷、更灵敏的体验。 + +在 Fedora 34 中,新安装的 Workstation 系统现在默认使用 Btrfs 透明压缩。与未压缩的 Btrfs 相比,这可以节省 20-40% 的大量磁盘空间。它也增加了 SSD 和其他闪存介质的寿命。 + + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/whats-new-fedora-34-workstation/ + +作者:[Christian Fredrik Schaller][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/uraeus/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-workstation-816x345.jpg +[2]: https://getfedora.org/workstation +[3]: https://forty.gnome.org/ +[4]: https://lh3.googleusercontent.com/xDklMWAGBWvRGRp2kby-XKr6b0Jvan8Obmn11sfmkKnsnXizKePYV9aWdEgyxmJetcvwMifYRUm6TcPRCH9szZfZOE9pCpv2bkjQhnq2II05Yu6o_DjEBmqTlRUGvvUyMN_VRtq8zkk2J7GUmA +[5]: https://help.gnome.org/misc/release-notes/40.0/ +[6]: https://lh6.googleusercontent.com/pQ3IIAvJDYrdfXoTUnrOcCQBjtpXqd_5Rmbo4xwxIj2qMCXt7ZxJEQ12OoV7yUSF8zpVR0VFXkMP0M8UK1nLbU7jhgQPJAHPayzjAscQmTtqqGsohyzth6-xFDjUXogmeFmcP-yR9GWXfXv-yw +[7]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/587 +[8]: https://lh6.googleusercontent.com/PDXxFS7SBFGI-3jRtR-TmqupvJRxy_CbWTfjB4sc1CKyO1myXkqfpg4jGHQJRK2e1vUh1KD_jyBsy8TURwCIkgAJcETCOlSPFBabqB5yDeWj3cvygOOQVe3X0tLFjuOz3e-ZX6owNZJSqIEHOQ +[9]: https://lh6.googleusercontent.com/dVRCL14LGE9WpmdiH3nI97OW2C1TkiZqREvBlHClNKdVcYvR1nZpZgWfup_GP5SN17iQtSJf59FxX2GYqoajXbdXLRfOwAREn7gVJ1fa_bspmcTZ81zkUQC4tNUx3f7D7uD7Peeg2Zc9Kldpww From 6580ea93d4f0892423bf0810c68ec2572fe1e8ca Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 3 May 2021 23:40:57 +0800 Subject: [PATCH 074/170] PUB @wxy https://linux.cn/article-13359-1.html --- .../20210427 What-s new in Fedora Workstation 34.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210427 What-s new in Fedora Workstation 34.md (99%) diff --git a/translated/tech/20210427 What-s new in Fedora Workstation 34.md b/published/20210427 What-s new in Fedora Workstation 34.md similarity index 99% rename from translated/tech/20210427 What-s new in Fedora Workstation 34.md rename to published/20210427 What-s new in Fedora Workstation 34.md index aa0e300338..88369c6f6a 100644 --- a/translated/tech/20210427 What-s new in Fedora Workstation 34.md +++ b/published/20210427 What-s new in Fedora Workstation 34.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13359-1.html) Fedora Workstation 34 中的新变化 ====== From e8377bb9be07e91e17bfc76aa9fafd94cdb25e11 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 4 May 2021 05:03:24 +0800 Subject: [PATCH 075/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210503=20?= =?UTF-8?q?Configure=20WireGuard=20VPNs=20with=20NetworkManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md --- ...gure WireGuard VPNs with NetworkManager.md | 246 ++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md diff --git a/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md b/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md new file mode 100644 index 0000000000..a5cadaf43c --- /dev/null +++ b/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md @@ -0,0 +1,246 @@ +[#]: subject: (Configure WireGuard VPNs with NetworkManager) +[#]: via: (https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/) +[#]: author: (Maurizio Garcia https://fedoramagazine.org/author/malgnuz/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Configure WireGuard VPNs with NetworkManager +====== + +![wireguard][1] + +Photo excerpted from [Thin Ethernet Ramble (TS 10:38)][2] by [High Treason][3] + +Virtual Private Networks (VPNs) are used extensively. Nowadays there are different solutions available which allow users access to any kind of resource while maintaining their confidentiality and privacy. + +Lately, one of the most commonly used VPN protocols is WireGuard because of its simplicity, speed and the security it offers. WireGuard’s implementation started in the Linux kernel but currently it is available in other platforms such as iOS and Android among others. + +WireGuard uses UDP as its transport protocol and it bases the communication between peers upon Critokey Routing (CKR). Each peer, either server or client, has a pair of keys (public and private) and there is a link between public keys and allowed IPs to communicate with. For further information about WireGuard please visit its [page][4]. + +This article describes how to set up WireGuard between two peers: PeerA and PeerB. Both nodes are running Fedora Linux and both are using NetworkManager for a persistent configuration. + +## **WireGuard set up and networking configuration** + +You are only three steps away from having a persistent VPN connection between PeerA and PeerB: + + 1. Install the required packages. + 2. Generate key pairs. + 3. Configure the WireGuard interfaces. + + + +### **Installation** + +Install the _wireguard-tools_ package on both peers (PeerA and PeerB): + +``` +$ sudo -i +# dnf -y install wireguard-tools +``` + +This package is available in the Fedora Linux updates repository. It creates a configuration directory at _/etc/wireguard/_. This is where you will create the keys and the interface configuration file. + +### **Generate the key pairs** + +Next, use the _wg_ utility to generate both public and private keys on each node: + +``` +# cd /etc/wireguard +# wg genkey | tee privatekey | wg pubkey > publickey +``` + +### **Configure the WireGuard interface on PeerA** + +WireGuard interfaces use the names: _wg0_, _wg1_ and so on. Create the configuration for the WireGuard interface. For this, you need the following items: + + * The IP address and MASK you want to configure in the PeerA node. + * The UDP port where this peer listens. + * PeerA’s private key. + + + +``` +# cat << EOF > /etc/wireguard/wg0.conf +[Interface] +Address = 172.16.1.254/24 +SaveConfig = true +ListenPort = 60001 +PrivateKey = mAoO2RxlqRvCZZoHhUDiW3+zAazcZoELrYbgl+TpPEc= + +[Peer] +PublicKey = IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw= +AllowedIPs = 172.16.1.2/32 +EOF +``` + +Allow UDP traffic through the port on which this peer will listen: + +``` +# firewall-cmd --add-port=60001/udp --permanent --zone=public +# firewall-cmd --reload +success +``` + +Finally, import the interface profile into NetworkManager. As a result, the WireGuard interface will persist after reboots. + +``` +# nmcli con import type wireguard file /etc/wireguard/wg0.conf +Connection 'wg0' (21d939af-9e55-4df2-bacf-a13a4a488377) successfully added. +``` + +Verify the status of device _wg0_: + +``` +# wg +interface: wg0 + public key: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8= + private key: (hidden) + listening port: 60001 + +peer: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw= + allowed ips: 172.16.1.2/32 + +# nmcli -p device show wg0 + +=============================================================================== + Device details (wg0) +=============================================================================== +GENERAL.DEVICE: wg0 +------------------------------------------------------------------------------- +GENERAL.TYPE: wireguard +------------------------------------------------------------------------------- +GENERAL.HWADDR: (unknown) +------------------------------------------------------------------------------- +GENERAL.MTU: 1420 +------------------------------------------------------------------------------- +GENERAL.STATE: 100 (connected) +------------------------------------------------------------------------------- +GENERAL.CONNECTION: wg0 +------------------------------------------------------------------------------- +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveC> +------------------------------------------------------------------------------- +IP4.ADDRESS[1]: 172.16.1.254/24 +IP4.GATEWAY: -- +IP4.ROUTE[1]: dst = 172.16.1.0/24, nh = 0.0.0.0, mt => +------------------------------------------------------------------------------- +IP6.GATEWAY: -- +------------------------------------------------------------------------------- +``` + +The above output shows that interface _wg0_ is connected. It is now able to communicate with one peer whose VPN IP address is 172.16.1.2. + +### Configure the WireGuard interface in PeerB + +It is time to create the configuration file for the _wg0_ interface on the second peer. Make sure you have the following: + + * The IP address and MASK to set on PeerB. + * The PeerB’s private key. + * The PeerA’s public key. + * The PeerA’s IP address or hostname and the UDP port on which it is listening for WireGuard traffic. + + + +``` +# cat << EOF > /etc/wireguard/wg0.conf +[Interface] +Address = 172.16.1.2 +SaveConfig = true +PrivateKey = UBiF85o7937fBK84c2qLFQwEr6eDhLSJsb5SAq1lF3c= + +[Peer] +PublicKey = FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8= +AllowedIPs = 172.16.1.254/32 +Endpoint = peera.example.com:60001 +EOF +``` + +The last step is about importing the interface profile into NetworkManager. As I mentioned before, this allows the WireGuard interface to have a persistent configuration after reboots. + +``` +# nmcli con import type wireguard file /etc/wireguard/wg0.conf +Connection 'wg0' (39bdaba7-8d91-4334-bc8f-85fa978777d8) successfully added. +``` + +Verify the status of device _wg0_: + +``` +# wg +interface: wg0 + public key: IOePXA9igeRqzCSzw4dhpl4+6l/NiQvkDSAnj5LtShw= + private key: (hidden) + listening port: 47749 + +peer: FEPcisOjLaZsJbYSxb0CI5pvbXwIB3BCjMUPxuaLrH8= + endpoint: 192.168.124.230:60001 + allowed ips: 172.16.1.254/32 + +# nmcli -p device show wg0 + +=============================================================================== + Device details (wg0) +=============================================================================== +GENERAL.DEVICE: wg0 +------------------------------------------------------------------------------- +GENERAL.TYPE: wireguard +------------------------------------------------------------------------------- +GENERAL.HWADDR: (unknown) +------------------------------------------------------------------------------- +GENERAL.MTU: 1420 +------------------------------------------------------------------------------- +GENERAL.STATE: 100 (connected) +------------------------------------------------------------------------------- +GENERAL.CONNECTION: wg0 +------------------------------------------------------------------------------- +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveC> +------------------------------------------------------------------------------- +IP4.ADDRESS[1]: 172.16.1.2/32 +IP4.GATEWAY: -- +------------------------------------------------------------------------------- +IP6.GATEWAY: -- +------------------------------------------------------------------------------- +``` + +The above output shows that interface _wg0_ is connected. It is now able to communicate with one peer whose VPN IP address is 172.16.1.254. + +### **Verify connectivity between peers** + +After executing the procedure described earlier both peers can communicate to each other through the VPN connection as demonstrated in the following ICMP test: + +``` +[root@peerb ~]# ping 172.16.1.254 -c 4 +PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data. +64 bytes from 172.16.1.254: icmp_seq=1 ttl=64 time=0.566 ms +64 bytes from 172.16.1.254: icmp_seq=2 ttl=64 time=1.33 ms +64 bytes from 172.16.1.254: icmp_seq=3 ttl=64 time=1.67 ms +64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=1.47 ms +``` + +In this scenario, if you capture UDP traffic on port 60001 on PeerA you will see the communication relying on WireGuard protocol and the encrypted data: + +![Capture of UDP traffic between peers relying on WireGuard protocol][5] + +## Conclusion + +Virtual Private Networks (VPNs) are very common. Among a wide variety of protocols and tools for deploying a VPN, WireGuard is a simple, lightweight and secure choice. It allows secure point-to-point connections between peers based on CryptoKey routing and the procedure is very straight-forward. In addition, NetworkManager supports WireGuard interfaces allowing persistent configurations after reboots. + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/ + +作者:[Maurizio Garcia][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/malgnuz/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/05/wireguard-nm-816x345.jpg +[2]: https://youtu.be/0eiXMGfZc60?t=633 +[3]: https://www.youtube.com/c/HighTreason610/featured +[4]: https://www.wireguard.com/ +[5]: https://fedoramagazine.org/wp-content/uploads/2021/04/capture-1024x601.png From abf100fb219c21c67e43e3dd163fab6f3fcbef17 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 4 May 2021 05:03:34 +0800 Subject: [PATCH 076/170] add done: 20210503 Configure WireGuard VPNs with NetworkManager.md --- sources/tech/20210504 .md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sources/tech/20210504 .md diff --git a/sources/tech/20210504 .md b/sources/tech/20210504 .md new file mode 100644 index 0000000000..e04e3d6d49 --- /dev/null +++ b/sources/tech/20210504 .md @@ -0,0 +1,25 @@ +[#]: subject: () +[#]: via: (https://www.2daygeek.com/linux-beginners-guide-firewalld/) +[#]: author: ( ) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + + +====== + +-------------------------------------------------------------------------------- + +via: https://www.2daygeek.com/linux-beginners-guide-firewalld/ + +作者:[][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: +[b]: https://github.com/lujun9972 From 5a6bea61fc4b65becc04ebe3031cf0f3362ed345 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 4 May 2021 05:04:06 +0800 Subject: [PATCH 077/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210503=20?= =?UTF-8?q?Why=20I=20support=20systemd's=20plan=20to=20take=20over=20the?= =?UTF-8?q?=20world?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210503 Why I support systemd-s plan to take over the world.md --- ...t systemd-s plan to take over the world.md | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 sources/tech/20210503 Why I support systemd-s plan to take over the world.md diff --git a/sources/tech/20210503 Why I support systemd-s plan to take over the world.md b/sources/tech/20210503 Why I support systemd-s plan to take over the world.md new file mode 100644 index 0000000000..1684e78409 --- /dev/null +++ b/sources/tech/20210503 Why I support systemd-s plan to take over the world.md @@ -0,0 +1,188 @@ +[#]: subject: (Why I support systemd's plan to take over the world) +[#]: via: (https://opensource.com/article/21/5/systemd) +[#]: author: (David Both https://opensource.com/users/dboth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Why I support systemd's plan to take over the world +====== +There is no nefarious plan, just one to bring service management into +the 21st century. +![A rack of servers, blue background][1] + +Over the years, I have read many articles and posts about how systemd is trying to replace everything and take over everything in Linux. I agree; it is taking over pretty much everything. + +But not really "everything-everything." Just "everything" in that middle ground of services that lies between the kernel and things like the GNU core utilities, graphical user interface desktops, and user applications. + +Examining Linux's structure is a way to explore this. The following figure shows the three basic software layers found in the operating system. The bottom is the Linux kernel; the middle layer consists of services that may perform startup tasks, such as launching various other services like Network Time Protocol (NTP), Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), secure shell (SSH), device management, login services, gettys, Network Manager, journal and log management, logical volume management, printing, kernel module management, local and remote filesystems, sound and video, display management, swap space, system statistics collection, and much more. There are also tens of thousands of new and powerful applications at the top layer. + +![systemd services][2] + +systemd and the services it manages with respect to the kernel and application programs, including tools used by the sysadmin. (David Both, [CC BY-SA 4.0][3]) + +This diagram (as well as sysadmins' collective experience over the last several years) makes it clear that systemd is indeed intended to completely replace the old SystemV init system. But I also know (and explained in the previous articles in this systemd series) that it significantly extends the capabilities of the init system. + +It is also important to recognize that, although Linus Torvalds rewrote the Unix kernel as an exercise, he did nothing to change the middle layer of system services. He simply recompiled SystemV init to work with his completely new kernel. SystemV is much older than Linux and has needed a complete change to something totally new for decades. + +So the kernel is new and is refreshed frequently through the leadership of Torvalds and the work of thousands of programmers around the planet. All of the programs on the top layer of the image above also contribute. + +But until recently, there have been no significant enhancements to the init system and management of system services. + +In authoring systemd, [Lennart Poettering][4] has done for system services what Linus Torvalds did for the kernel. Like Torvalds and the Linux kernel, Poettering has become the leader and arbiter of what happens inside this middle system services layer. And I like what I see. + +### More data for the admin + +The new capabilities of systemd include far more status information about services, whether they're running or not. I like having more information about the services I am trying to monitor. For example, look at the DHCPD service. Were I to use the SystemV command, `service dhcpd status`, I would get a simple message that the service is running or stopped. Using the systemd command, `systemctl status dhcpd`, I get much more useful information. + +This data is from the server on my personal network: + + +``` +[root@yorktown ~]# systemctl status dhcpd +● dhcpd.service - DHCPv4 Server Daemon +     Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled) +     Active: active (running) since Fri 2021-04-09 21:43:41 EDT; 4 days ago +       Docs: man:dhcpd(8) +             man:dhcpd.conf(5) +   Main PID: 1385 (dhcpd) +     Status: "Dispatching packets..." +      Tasks: 1 (limit: 9382) +     Memory: 3.6M +        CPU: 240ms +     CGroup: /system.slice/dhcpd.service +             └─1385 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid + +Apr 14 20:51:01 yorktown.both.org dhcpd[1385]: DHCPREQUEST for 192.168.0.7 from e0:d5:5e:a2🇩🇪a4 via eno1 +Apr 14 20:51:01 yorktown.both.org dhcpd[1385]: DHCPACK on 192.168.0.7 to e0:d5:5e:a2🇩🇪a4 via eno1 +Apr 14 20:51:14 yorktown.both.org dhcpd[1385]: DHCPREQUEST for 192.168.0.8 from e8:40:f2:3d:0e:a8 via eno1 +Apr 14 20:51:14 yorktown.both.org dhcpd[1385]: DHCPACK on 192.168.0.8 to e8:40:f2:3d:0e:a8 via eno1 +Apr 14 20:51:14 yorktown.both.org dhcpd[1385]: DHCPREQUEST for 192.168.0.201 from 80:fa:5b:63:37:88 via eno1 +Apr 14 20:51:14 yorktown.both.org dhcpd[1385]: DHCPACK on 192.168.0.201 to 80:fa:5b:63:37:88 via eno1 +Apr 14 20:51:24 yorktown.both.org dhcpd[1385]: DHCPREQUEST for 192.168.0.6 from e0:69:95:45:c4:cd via eno1 +Apr 14 20:51:24 yorktown.both.org dhcpd[1385]: DHCPACK on 192.168.0.6 to e0:69:95:45:c4:cd via eno1 +Apr 14 20:52:41 yorktown.both.org dhcpd[1385]: DHCPREQUEST for 192.168.0.5 from 00:1e:4f:df:3a:d7 via eno1 +Apr 14 20:52:41 yorktown.both.org dhcpd[1385]: DHCPACK on 192.168.0.5 to 00:1e:4f:df:3a:d7 via eno1 +[root@yorktown ~]# +``` + +Having all this information available in a single command is empowering and simplifies problem determination for me. I get more information right at the start. I not only see that the service is up and running but also some of the most recent log entries. + +Here is another example that uses a non-operating-system tool. [BOINC][5], the Berkeley Open Infrastructure Network Computing Client, is used to create ad hoc supercomputers out of millions of home computers around the world that are signed up to participate in the computational stages of many types of scientific studies. I am signed up with the [IBM World Community Grid][6] and participate in studies about COVID-19, mapping cancer markers, rainfall in Africa, and more. + +The information from this command gives me a more complete picture of how this service is faring: + + +``` +[root@yorktown ~]# systemctl status boinc-client.service +● boinc-client.service - Berkeley Open Infrastructure Network Computing Client +     Loaded: loaded (/usr/lib/systemd/system/boinc-client.service; enabled; vendor preset: disabled) +     Active: active (running) since Fri 2021-04-09 21:43:41 EDT; 4 days ago +       Docs: man:boinc(1) +   Main PID: 1389 (boinc) +      Tasks: 18 (limit: 9382) +     Memory: 1.1G +        CPU: 1month 1w 2d 3h 42min 47.398s +     CGroup: /system.slice/boinc-client.service +             ├─  1389 /usr/bin/boinc +             ├─712591 ../../projects/www.worldcommunitygrid.org/wcgrid_mcm1_map_7.43_x86_64-pc-linux-gnu -SettingsFile MCM1_0174482_7101.txt -DatabaseFile dataset> +             ├─712614 ../../projects/www.worldcommunitygrid.org/wcgrid_mcm1_map_7.43_x86_64-pc-linux-gnu -SettingsFile MCM1_0174448_7280.txt -DatabaseFile dataset> +             ├─713275 ../../projects/www.worldcommunitygrid.org/wcgrid_opn1_autodock_7.17_x86_64-pc-linux-gnu -jobs OPN1_0040707_05092.job -input OPN1_0040707_050> +             ├─713447 ../../projects/www.worldcommunitygrid.org/wcgrid_mcm1_map_7.43_x86_64-pc-linux-gnu -SettingsFile MCM1_0174448_2270.txt -DatabaseFile dataset> +             ├─713517 ../../projects/www.worldcommunitygrid.org/wcgrid_opn1_autodock_7.17_x86_64-pc-linux-gnu -jobs OPN1_0040871_00826.job -input OPN1_0040871_008> +             ├─713657 ../../projects/www.worldcommunitygrid.org/wcgrid_mcm1_map_7.43_x86_64-pc-linux-gnu -SettingsFile MCM1_0174525_7317.txt -DatabaseFile dataset> +             ├─713672 ../../projects/www.worldcommunitygrid.org/wcgrid_mcm1_map_7.43_x86_64-pc-linux-gnu -SettingsFile MCM1_0174529_1537.txt -DatabaseFile dataset> +             └─714586 ../../projects/www.worldcommunitygrid.org/wcgrid_opn1_autodock_7.17_x86_64-pc-linux-gnu -jobs OPN1_0040864_01640.job -input OPN1_0040864_016> + +Apr 14 19:57:16 yorktown.both.org boinc[1389]: 14-Apr-2021 19:57:16 [World Community Grid] Finished upload of OPN1_0040707_05063_0_r181439640_0 +Apr 14 20:57:36 yorktown.both.org boinc[1389]: 14-Apr-2021 20:57:36 [World Community Grid] Sending scheduler request: To report completed tasks. +Apr 14 20:57:36 yorktown.both.org boinc[1389]: 14-Apr-2021 20:57:36 [World Community Grid] Reporting 1 completed tasks +Apr 14 20:57:36 yorktown.both.org boinc[1389]: 14-Apr-2021 20:57:36 [World Community Grid] Not requesting tasks: don't need (job cache full) +Apr 14 20:57:38 yorktown.both.org boinc[1389]: 14-Apr-2021 20:57:38 [World Community Grid] Scheduler request completed +Apr 14 20:57:38 yorktown.both.org boinc[1389]: 14-Apr-2021 20:57:38 [World Community Grid] Project requested delay of 121 seconds +Apr 14 21:38:03 yorktown.both.org boinc[1389]: 14-Apr-2021 21:38:03 [World Community Grid] Computation for task MCM1_0174482_7657_1 finished +Apr 14 21:38:03 yorktown.both.org boinc[1389]: 14-Apr-2021 21:38:03 [World Community Grid] Starting task OPN1_0040864_01640_0 +Apr 14 21:38:05 yorktown.both.org boinc[1389]: 14-Apr-2021 21:38:05 [World Community Grid] Started upload of MCM1_0174482_7657_1_r1768267288_0 +Apr 14 21:38:09 yorktown.both.org boinc[1389]: 14-Apr-2021 21:38:09 [World Community Grid] Finished upload of MCM1_0174482_7657_1_r1768267288_0 +[root@yorktown ~]# +``` + +The key is that the BOINC client runs as a daemon and should be managed by the init system. All software that runs as a daemon should be managed by systemd. In fact, even software that still provides SystemV start scripts is managed by systemd. + +### systemd standardizes configuration + +One of the problems I have had over the years is that, even though "Linux is Linux," not all distributions store their configuration files in the same places or use the same names or even formats. With the huge numbers of Linux hosts in the world, that lack of standardization is a problem. I have also encountered horrible config files and SystemV startup files created by developers trying to jump on the Linux bandwagon and who have no idea how to create software for Linux—and especially the services that must be included in the Linux startup sequence. + +The systemd unit files standardize configuration and enforce a startup methodology and organization that provides a level of safety from poorly written SystemV start scripts. They also provide tools that the sysadmin can use to monitor and manage services. + +Lennart Poettering wrote a short blog post describing [standard names and locations][7] for common critical systemd configuration files. This standardization makes the sysadmin's job easier. It also makes it easier to automate administrative tasks in environments with multiple Linux distributions. Developers also benefit from this standardization. + +### Sometimes, the pain + +Any undertaking as massive as replacing and extending an entire init system will cause some level of pain during the transition. I don't mind learning the new commands and how to create configuration files of various types, such as targets, timers, and so on. It does take some work, but I think the results are well worth the effort. + +New configuration files and changes in the subsystems that own and manage them can also seem daunting at first. Not to mention that sometimes new tools such as systemd-resolvd can break the way things have worked for a long time, as I point out in [_Resolve systemd-resolved name-service failures with Ansible_][8]. + +Tools like scripts and Ansible can mitigate the pain while we wait for changes that resolve the pain. + +### Conclusion + +As I write in [_Learning to love systemd_][9], I can work with either SystemV or systemd init systems, and I have reasons for liking and disliking each: + +> "…the real issue and the root cause of most of the controversy between SystemV and systemd is that there is [no choice][10] on the sysadmin level. The choice of whether to use SystemV or systemd has already been made by the developers, maintainers, and packagers of the various distributions—but with good reason. Scooping out and replacing an init system, by its extreme, invasive nature, has a lot of consequences that would be hard to tackle outside the distribution design process." + +Because this wholesale replacement is such a massive undertaking, the developers of systemd have been working in stages for several years and replacing various parts of the init system and services and tools that were not parts of the init system but should have been. Many of systemd's new capabilities are made possible only by its tight integration with the services and tools used to manage modern Linux systems. + +Although there has been some pain along the way and there will undoubtedly be more, I think the long-term plan and goals are good ones. The advantages of systemd that I have experienced are quite significant. + +There is no nefarious plan to take over the world, just one to bring service management into the 21st century. + +### Other resources + +There is a great deal of information about systemd available on the internet, but much is terse, obtuse, or even misleading. In addition to the resources mentioned in this article, the following web pages offer more detailed and reliable information about systemd startup. This list has grown since I started this series of articles to reflect the research I have done. + + * [5 reasons sysadmins love systemd][11] + * The Fedora Project has a good, practical [guide to systemd][12]. It has pretty much everything you need to know to configure, manage, and maintain a Fedora computer using systemd. + * The Fedora Project also has a good [cheat sheet][13] that cross-references the old SystemV commands to comparable systemd ones. + * The [systemd.unit(5) manual page][14] contains a nice list of unit file sections and their configuration options, along with concise descriptions of each. + * Fedora Magazine has a good description of the [Unit file structure][15] as well as other important information.  + * For detailed technical information about systemd and the reasons for creating it, check out Freedesktop.org's [description of systemd][16]. This page is one of the best I have found because it contains many links to other important and accurate documentation. + * Linux.com's "More systemd fun" offers more advanced systemd [information and tips][17]. + + + +There is also a series of deeply technical articles for Linux sysadmins by Lennart Poettering, the designer and primary developer of systemd. He wrote these articles between April 2010 and September 2011, but they are just as relevant now as they were then. Much of everything else good written about systemd and its ecosystem is based on these papers. These links are all available at [FreeDesktop.org][18]. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/systemd + +作者:[David Both][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dboth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rack_server_sysadmin_cloud_520.png?itok=fGmwhf8I (A rack of servers, blue background) +[2]: https://opensource.com/sites/default/files/uploads/systemd-architecture_0.png (systemd services) +[3]: https://creativecommons.org/licenses/by-sa/4.0/ +[4]: https://en.wikipedia.org/wiki/Lennart_Poettering +[5]: https://boinc.berkeley.edu/ +[6]: https://www.worldcommunitygrid.org/ +[7]: http://0pointer.de/blog/projects/the-new-configuration-files +[8]: https://opensource.com/article/21/4/systemd-resolved +[9]: https://opensource.com/article/20/4/systemd +[10]: http://www.osnews.com/story/28026/Editorial_Thoughts_on_Systemd_and_the_Freedom_to_Choose +[11]: https://opensource.com/article/21/4/sysadmins-love-systemd +[12]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/index.html +[13]: https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet +[14]: https://man7.org/linux/man-pages/man5/systemd.unit.5.html +[15]: https://fedoramagazine.org/systemd-getting-a-grip-on-units/ +[16]: https://www.freedesktop.org/wiki/Software/systemd/ +[17]: https://www.linux.com/training-tutorials/more-systemd-fun-blame-game-and-stopping-services-prejudice/ +[18]: http://www.freedesktop.org/wiki/Software/systemd From 7e09c816b46bf7641630bd555c08397e30a9d815 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 4 May 2021 05:04:18 +0800 Subject: [PATCH 078/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210503=20?= =?UTF-8?q?Learn=20the=20Lisp=20programming=20language=20in=202021?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210503 Learn the Lisp programming language in 2021.md --- ...n the Lisp programming language in 2021.md | 305 ++++++++++++++++++ 1 file changed, 305 insertions(+) create mode 100644 sources/tech/20210503 Learn the Lisp programming language in 2021.md diff --git a/sources/tech/20210503 Learn the Lisp programming language in 2021.md b/sources/tech/20210503 Learn the Lisp programming language in 2021.md new file mode 100644 index 0000000000..a1de95ead8 --- /dev/null +++ b/sources/tech/20210503 Learn the Lisp programming language in 2021.md @@ -0,0 +1,305 @@ +[#]: subject: (Learn the Lisp programming language in 2021) +[#]: via: (https://opensource.com/article/21/5/learn-lisp) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Learn the Lisp programming language in 2021 +====== +A lot of Lisp code lurks inside big codebases, so it's smart to get +familiar with the language. +![Woman sitting in front of her laptop][1] + +Lisp was invented in 1958, which makes it the second-oldest computer programming language. It has spawned several modern derivatives, including Common Lisp, Emacs Lisp (Elisp), Clojure, Racket, Scheme, Fennel, and GNU Guile. + +People who love thinking about the design of programming languages often love Lisp because of how its syntax and data share the same structure: Lisp code is essentially a list of lists, and its name is an acronym for _LISt Processing_. People who love thinking about the aesthetics of programming languages often hate Lisp because of its frequent use of parentheses for scoping; in fact, it's a common joke that Lisp stands for _Lots of Irritating Superfluous Parentheses_. + +Whether you love or hate its design philosophies, Lisp is an interesting glimpse at the past and, thanks to Clojure and Guile, into the future. You might be surprised how much Lisp code there is lurking within big codebases in any given industry, so it's a good idea to have at least a passing familiarity with the language. + +### Install Lisp + +There are many implementations of Lisp. Popular open source versions include [SBCL][2] and [GNU Common Lisp][3] (GCL). You can install either of these with your distribution's package manager. + +On Fedora Linux: + + +``` +`$ sudo dnf install gcl` +``` + +On Debian: + + +``` +`$ sudo apt install gcl` +``` + +For macOS, you can use [MacPorts][4] or [Homebrew][5]: + + +``` +`$ sudo port install gcl` +``` + +For Windows, download a binary from [gnu.org/software/gcl][6]. + +For this article, I'm using GCL and its `clisp` command, but most of the principles apply to any Lisp. + +### List processing + +The basic unit of Lisp source code is an _expression_, which is written as a list. For instance, this is a list of an operator (`+`) and two integers (`1` and `2`): + + +``` +`(+ 1 2)` +``` + +It's also a Lisp expression, using a symbol (`+`) that evaluates to a function (addition) and two arguments (`1` and `2`). You can run this expression and others in an interactive Common Lisp environment called REPL (read-eval-print loop). If you're familiar with Python's IDLE, Lisp's REPL should feel somewhat familiar to you. + +To launch a REPL, launch Common Lisp: + + +``` +$ clisp +[1]> +``` + +At the REPL prompt, type a few expressions: + + +``` +[1]> (+ 1 2) +3 +[2]> (- 1 2) +-1 +[3]> (- 2 1) +1 +[4]> (+ 2 3 4) +9 +``` + +### Functions + +Now that you know the basic structure of a Lisp expression, you can utilize Lisp functions in useful ways. The `print` function takes any argument you provide and displays it on your terminal, while the `pprint` function "pretty" prints it. There are other variations on the print function, but `pprint` is nice in REPL: + + +``` +[1]> (pprint "hello world") + +"hello world" + +[2]> +``` + +You can create your own functions with `defun`. The `defun` function requires a name for your function and any parameters you want your function to accept: + + +``` +[1]> (defun myprinter (s) (pprint s)) +MYPRINTER +[2]> (myprinter "hello world") + +"hello world" + +[3]> +``` + +### Variables + +You can create variables in Lisp with `setf`: + + +``` +[1]> (setf foo "hello world") +"hello world" +[2]> (pprint foo) + +"hello world" + +[3]> +``` + +You can nest expressions within expressions in a kind of pipeline. For instance, you can pretty print the contents of your variable after invoking the `string-upcase` function to convert its characters to uppercase: + + +``` +[3]> (pprint (string-upcase foo)) + +"HELLO WORLD" + +[4]> +``` + +Lisp is dynamically typed in the sense that you don't have to declare variable types when setting them. Lisp treats integers as integers by default: + + +``` +[1]> (setf foo 2) +[2]> (setf bar 3) +[3]> (+ foo bar) +5 +``` + +If you intend for an integer to be interpreted as a string, you can quote it: + + +``` +[4]> (setf foo "2")                                                                                                                       +"2"                                                                                                                                       +[5]> (setf bar "3")                                                                                                                       +"3" +[6]> (+ foo bar) + +*** - +: "2" is not a number +The following restarts are available: +USE-VALUE      :R1      Input a value to be used instead. +ABORT          :R2      Abort main loop +Break 1 [7]> +``` + +In this sample REPL session, both `foo` and `bar` are set to quoted numbers, so Lisp interprets them as strings. Math operators can't be used on strings, so REPL drops into a debugger mode. To get out of the debugger, press **Ctrl+D** on your keyboard. + +You can do some introspection on objects using the `typep` function, which tests for a specific data type. The tokens `T` and `NIL` represent _True_ and _False_, respectively. + + +``` +[4]> (typep foo 'string) +NIL +[5]> (typep foo 'integer) +T +``` + +The single quote (`'`) before `string` and `integer` prevents Lisp from (incorrectly) evaluating those keywords as variables: + + +``` +[6]> (typep foo string) +*** - SYSTEM::READ-EVAL-PRINT: variable STRING has no value +[...] +``` + +It's a shorthand way to protect the terms, normally done with the `quote` function: + + +``` +[7]> (typep foo (quote string)) +NIL +[5]> (typep foo (quote integer)) +T +``` + +### Lists + +Unsurprisingly, you can also create lists in Lisp: + + +``` +[1]> (setf foo (list "hello" "world")) +("hello" "world") +``` + +Lists can be indexed with the `nth` function: + + +``` +[2]> (nth 0 foo) +"hello" +[3]> (pprint (string-capitalize (nth 1 foo))) + +"World" +``` + +### Exiting REPL + +To end a REPL session, press **Ctrl+D** on your keyboard, or use the `quit` keyword in Lisp: + + +``` +[99]> (quit) +$ +``` + +### Scripting + +Lisp can be compiled or used as an interpreted scripting language. The latter is probably the easiest option when you're starting, especially if you're already familiar with Python or [shell scripting][7]. + +Here's a simple dice roller script written in GNU Common Lisp: + + +``` +#!/usr/bin/clisp + +(defun roller (num)   +  (pprint (random (parse-integer (nth 0 num)))) +) + +(setf userput *args*) +(setf *random-state* (make-random-state t)) +(roller userput) +``` + +The first line tells your [POSIX][8] terminal what executable to use to run the script. + +The `roller` function, created with `defun`, uses the `random` function to print a pseudo-random number up to, and not including, the zeroth item of the `num` list. The `num` list hasn't been created yet in the script, but the function doesn't get executed until it's called. + +The next line assigns any argument provided to the script at launch time to a variable called `userput`. The `userput` variable is a list, and it's what becomes `num` once it's passed to the `roller` function. + +The penultimate line of the script starts a _random seed_. This provides Lisp with enough entropy to generate a mostly random number. + +The final line invokes the custom `roller` function, providing the `userput` list as its sole argument. + +Save the file as `dice.lisp` and mark it executable: + + +``` +`$ chmod +x dice.lisp` +``` + +Finally, try running it, providing it with a maximum number from which to choose its random number: + + +``` +$ ./dice.lisp 21 + +13 +$ ./dice.lisp 21 + +7 +$ ./dice.lisp 21 + +20 +``` + +Not bad! + +### Learn Lisp + +Whether you can imagine using Lisp as a utilitarian language for personal scripts, to advance your career, or just as a fun experiment, you can see some particularly inventive uses at the annual [Lisp Game Jam][9] (most submissions are open source, so you can view the code to learn from what you play). + +Lisp is a fun and unique language with an ever-growing developer base and enough historic and emerging dialects to keep programmers from all disciplines happy. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/learn-lisp + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_4.png?itok=VGZO8CxT (Woman sitting in front of her laptop) +[2]: http://sbcl.org +[3]: https://www.gnu.org/software/gcl/ +[4]: https://opensource.com/article/20/11/macports +[5]: https://opensource.com/article/20/6/homebrew-linux +[6]: http://mirror.lagoon.nc/gnu/gcl/binaries/stable +[7]: https://opensource.com/article/20/4/bash-programming-guide +[8]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains +[9]: https://itch.io/jam/spring-lisp-game-jam-2021 From e16c8b3aba704b3ca67afb6b9b7df6e9919911fc Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 4 May 2021 05:04:49 +0800 Subject: [PATCH 079/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210503=20?= =?UTF-8?q?Ubuntu=2021.10=20=E2=80=9CImpish=20Indri=E2=80=9D=20Development?= =?UTF-8?q?=20Begins,=20Daily=20Builds=20Available=20Now?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md --- ...ment Begins, Daily Builds Available Now.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md diff --git a/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md b/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md new file mode 100644 index 0000000000..602634be04 --- /dev/null +++ b/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md @@ -0,0 +1,85 @@ +[#]: subject: (Ubuntu 21.10 “Impish Indri” Development Begins, Daily Builds Available Now) +[#]: via: (https://news.itsfoss.com/ubuntu-21-10-release-schedule/) +[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Ubuntu 21.10 “Impish Indri” Development Begins, Daily Builds Available Now +====== + +I was slightly disappointed at the lack of enough new features in the [recent release of Ubuntu 21.04][1]. However, Canonical is set to change that with the upcoming release of Ubuntu 21.10 ‘**Impish Indri**‘. + +It is slated to have a variety of new features, including the [recently released Gnome 40][2]/41, [GCC 11][3], and more usage of the [Flutter toolkit][4]. + +### Ubuntu 21.10 Release Schedule + +The final stable release date of Ubuntu 21.10 is October 14, 2021. Here are the milestones of the release schedule: + + * Beta release: **23rd September** + * Release Candidate: **7th October** + * Final Release: **14th October** + + + +Ubuntu 21.10 is codenamed Impish Idri. Impish is an adjective that means “inclined to do slightly naughty things for fun”. Idrish is a Lemur found in Madagascar. + +If you are not aware already, all Ubuntu releases are codenamed in alphabetical order and composed of an adjective and an animal species, both starting with the same letter. + +### New Features Expected in Ubuntu 21.04 + +Although an official feature list has not been released yet, you can expect the following features to be present: + + * [Gnome 40][2]/41 + * [GCC 11][3] + * More usage of [Flutter][4] + * [A new desktop installer][5] + * Linux Kernel 5.14 + + + +Together, these will provide a huge upgrade from Ubuntu 21.04. In my opinion, the biggest upgrade will be the inclusion of GNOME 40, especially with the new horizontal overview. + +Moreover, it should be fascinating to see how the Ubuntu team makes use of the [new design changes in GNOME 40][2]. + +### Daily Builds of Ubuntu 21.10 Available (For Testing Only) + +Although the development of Ubuntu 21.10 has only just started, there are already daily builds available from the official Ubuntu website. + +Please bear in mind that these are daily builds (early development) and are not meant to be used as a daily driver. + +[Ubuntu 21.10 Daily Builds][6] + +### Wrapping Up + +With the sheer number of upgrades, the Ubuntu team is rushing to implement all the new features destined for this release. Consequently, this should then allow them time to fully bake the new features ahead of the release of Ubuntu 22.04 LTS (I can’t wait already!) + +Between Gnome 40, Linux 5.14, and the new desktop installer, Ubuntu 21.10 is shaping up to be one of the biggest releases in recent years. It will be really exciting to see how the Ubuntu team embraces Gnome 40’s new looks, as well as what the new desktop installer will look like. + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/ubuntu-21-10-release-schedule/ + +作者:[Jacob Crume][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/jacob/ +[b]: https://github.com/lujun9972 +[1]: https://news.itsfoss.com/ubuntu-21-04-features/ +[2]: https://news.itsfoss.com/gnome-40-release/ +[3]: https://www.gnu.org/software/gcc/gcc-11/ +[4]: https://flutter.dev/ +[5]: https://news.itsfoss.com/ubuntu-new-installer/ +[6]: https://cdimage.ubuntu.com/ubuntu/daily-live/current/ From 8f9086bb902e260d862d8e1116d83d819893fb73 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Tue, 4 May 2021 22:37:56 +0800 Subject: [PATCH 080/170] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pting and decrypting files with OpenSSL.md | 217 +++++++++--------- 1 file changed, 105 insertions(+), 112 deletions(-) rename {sources => translated}/tech/20210429 Encrypting and decrypting files with OpenSSL.md (57%) diff --git a/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md b/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md similarity index 57% rename from sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md rename to translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md index 5d6903fff8..29024e5500 100644 --- a/sources/tech/20210429 Encrypting and decrypting files with OpenSSL.md +++ b/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md @@ -1,39 +1,36 @@ -[#]: subject: (Encrypting and decrypting files with OpenSSL) -[#]: via: (https://opensource.com/article/21/4/encryption-decryption-openssl) -[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) -[#]: collector: (lujun9972) -[#]: translator: (MjSeven) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Encrypting and decrypting files with OpenSSL" +[#]: via: "https://opensource.com/article/21/4/encryption-decryption-openssl" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" +[#]: collector: "lujun9972" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " -Encrypting and decrypting files with OpenSSL +使用 OpenSSL 加密和解密文件 ====== -OpenSSL is a practical tool for ensuring your sensitive and secret -messages can't be opened by outsiders. +OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息。 ![A secure lock.][1] -Encryption is a way to encode a message so that its contents are protected from prying eyes. There are two general types: +加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视。一般有两种类型: - 1. Secret-key or symmetric encryption - 2. Public-key or asymmetric encryption + 1. 密钥或对称加密 + 2. 公钥或非对称加密 + +私钥加密使用相同的密钥进行加密和解密,而公钥加密使用不同的密钥进行加密和解密。每种方法各有利弊。私钥加密速度更快,而公钥加密更安全,因为它解决了安全共享密钥的问题,将它们结合在一起可以最大限度地利用每种类型的优势。 + +### 公钥加密 + +公钥加密使用两组密钥,称为密钥对。一个是公钥,可以与你想要秘密通信的任何人自由共享。另一个是私钥,应该是一个秘密,永远不会共享。 + +公钥用于加密。如果某人想与你交流敏感信息,你可以将你的公钥发送给他们,他们可以使用公钥加密消息或文件,然后再将其发送给你。私钥用于解密。解密发件人加密消息的唯一方法是使用私钥。因此,它们被称为“密钥对”,它们是相互关联的的。 + +### 如何使用 OpenSSL 加密文件 + +[OpenSSL][2] 是一个了不起的工具,可以执行各种任务,例如加密文件。本文使用安装了 OpenSSL 的 Fedora 计算机。如果你的机器上没有,则可以使用软件包管理器进行安装: - -Secret-key encryption uses the same key for encryption and decryption, while public-key encryption uses different keys for encryption and decryption. There are pros and cons to each method. Secret-key encryption is faster, and public-key encryption is more secure since it addresses concerns around securely sharing the keys. Using them together makes optimal use of each type's strengths. - -### Public-key encryption - -Public-key encryption uses two sets of keys, called a key pair. One is the public key and can be freely shared with anyone you want to communicate with secretly. The other, the private key, is supposed to be a secret and never shared. - -Public keys are used for encryption. If someone wants to communicate sensitive information with you, you can send them your public key, which they can use to encrypt their messages or files before sending them to you. Private keys are used for decryption. The only way you can decrypt your sender's encrypted message is by using your private key. Hence the descriptor "key-pair"; the set of keys goes hand-in-hand. - -### How to encrypt files with OpenSSL - -[OpenSSL][2] is an amazing tool that does a variety of tasks, including encrypting files. This demo uses a Fedora machine with OpenSSL installed. The tool is usually installed by default by most Linux distributions; if not, you can use your package manager to install it: - - -``` +```bash $ cat /etc/fedora-release Fedora release 33 (Thirty Three) $ @@ -42,25 +39,25 @@ OpenSSL 1.1.1i FIPS  8 Dec 2020 alice $ ``` -To explore file encryption and decryption, imagine two users, Alice and Bob, who want to communicate with each other by exchanging encrypted files using OpenSSL. +要探索文件加密和解密,想象两个用户 Alice 和 Bob,他们想通过使用 OpenSSL 交换加密文件来相互通信。 -#### Step 1: Generate key pairs +#### 步骤 1:生成密钥对 -Before you can encrypt files, you need to generate a pair of keys. You will also need a passphrase, which you must use whenever you use OpenSSL, so make sure to remember it. +在加密文件之前,你需要生成密钥对。你还需要一个密码短语,每当你使用 OpenSSL 时都必须使用该密码短语,因此务必记住它。 -Alice generates her set of key pairs with: +Alice 使用以下命令生成她的一组密钥对: -``` -`alice $ openssl genrsa -aes128 -out alice_private.pem 1024` +```bash +alice $ openssl genrsa -aes128 -out alice_private.pem 1024 ``` -This command uses OpenSSL's [genrsa][3] command to generate a 1024-bit public/private key pair. This is possible because the RSA algorithm is asymmetric. It also uses aes128, a symmetric key algorithm, to encrypt the private key that Alice generates using genrsa. +此命令使用 OpenSSL 的 [genrsa][3] 命令生成一个 1024 位的公钥/私钥对。这是可以的,因为 RSA 算法是不对称的。它也可以使用 aes 128 对称密钥算法来加密 Alice 生成的私钥。 -After entering the command, OpenSSL prompts Alice for a passphrase, which she must enter each time she wants to use the keys: +输入命令后,OpenSSL 会提示 Alice 输入密码,每次使用密钥时,她都必须输入该密码: -``` +```bash alice $ openssl genrsa -aes128 -out alice_private.pem 1024 Generating RSA private key, 1024 bit long modulus (2 primes) ..........+++++ @@ -78,10 +75,10 @@ alice_private.pem: PEM RSA private key alice $ ``` -Bob follows the same procedure to create his key pair: +Bob 使用相同的步骤来创建他的密钥对: -``` +```bash bob $ openssl genrsa -aes128 -out bob_private.pem 1024 Generating RSA private key, 1024 bit long modulus (2 primes) ..................+++++ @@ -98,10 +95,10 @@ bob_private.pem: PEM RSA private key bob $ ``` -If you are curious about what the key file looks like, you can open the .pem file that the command generated—but all you will see is a bunch of text on the screen: +如果你对密钥文件感到好奇,可以打开命令生成的 .pem 文件,但是你会看到屏幕上的一堆文本: -``` +```bash alice $ head alice_private.pem \-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED @@ -116,10 +113,10 @@ pyAnN9uGUTBCDYeTwdw8TEzkyaL08FkzLfFbS2N9BDksA3rpI1cxpxRVFr9+jDBz alice $ ``` -To view the key's details, you can use the following OpenSSL command to input the .pem file and display the contents. You may be wondering where to find the other key since this is a single file. This is a good observation. Here's how to get the public key: +要查看密钥的详细信息,可以使用以下 OpenSSL 命令打开 .pem 文件并显示内容。你可能想知道在哪里可以找到另一个密钥,因为这是单个文件。你观察的很细致,获取公钥的方法如下: -``` +```bash alice $ openssl rsa -in alice_private.pem -noout -text Enter pass phrase for alice_private.pem: RSA Private-Key: (1024 bit, 2 primes) @@ -135,7 +132,7 @@ modulus:     ff:1b:12:af:53:22:c0:41:51 publicExponent: 65537 (0x10001) -<< snip >> +<< snip >> exponent2:     6e:aa:8c:6e:37:d0:57:37:13:c0:08:7e:75:43:96: @@ -152,13 +149,13 @@ coefficient: alice $ ``` -#### Step 2: Extract the public keys +#### 步骤 2:提取公钥 -Remember, the public key is the one you can freely share with others, whereas you must keep your private key secret. So, Alice must extract her public key and save it to a file using the following command: +注意,公钥是你可以与他人自由共享的密钥,而你必须将私钥保密。因此,Alice 必须提取她的公钥,并将其保存到文件中: -``` -alice $ openssl rsa -in alice_private.pem -pubout > alice_public.pem +```bash +alice $ openssl rsa -in alice_private.pem -pubout > alice_public.pem Enter pass phrase for alice_private.pem: writing RSA key alice $ @@ -168,10 +165,10 @@ alice $ ls -l *.pem alice $ ``` -You can view the public key details the same way as before, but this time, input the public key .pem file instead: +你可以使用与之前相同的方式查看公钥详细信息,但是这次,输入公钥 .pem 文件: -``` +```bash alice $ alice $ openssl rsa -in alice_public.pem -pubin -text -noout RSA Public-Key: (1024 bit) @@ -183,11 +180,11 @@ Modulus: $ ``` -Bob can follow the same process to extract his public key and save it to a file: +Bob 可以按照相同的过程来提取他的公钥并将其保存到文件中: -``` -bob $ openssl rsa -in bob_private.pem -pubout > bob_public.pem +```bash +bob $ openssl rsa -in bob_private.pem -pubout > bob_public.pem Enter pass phrase for bob_private.pem: writing RSA key bob $ @@ -197,28 +194,28 @@ bob $ ls -l *.pem bob $ ``` -#### Step 3: Exchange public keys +#### 步骤 3:交换公钥 -These public keys are not much use to Alice and Bob until they exchange them with each other. Several methods are available for sharing public keys, including copying the keys to each other's workstations using the `scp` command. +这些公钥在 Alice 和 Bob 彼此交换之前没有太大用处。有几种共享公钥的方法,例如使用 `scp` 命令将密钥复制到彼此的工作站。 -To send Alice's public key to Bob's workstation: +将 Alice 的公钥发送到 Bob 的工作站: -``` -` alice $ scp alice_public.pem bob@bob-machine-or-ip:/path/` +```bash +alice $ scp alice_public.pem bob@bob-machine-or-ip:/path/ ``` -To send Bob's public key to Alice's workstation: +将 Bob 的公钥发送到 Alice 的工作站: -``` -`bob $ scp bob_public.pem alice@alice-machine-or-ip:/path/` +```bash +bob $ scp bob_public.pem alice@alice-machine-or-ip:/path/ ``` -Now, Alice has Bob's public key and vice versa: +现在,Alice 有 Bob 的公钥,反之亦然: -``` +```bash alice $ ls -l bob_public.pem -rw-r--r--. 1 alice alice 272 Mar 22 17:51 bob_public.pem alice $ @@ -230,12 +227,12 @@ bob $ ls -l alice_public.pem bob $ ``` -#### Step 4: Exchange encrypted messages with a public key +#### 步骤 4:使用公钥交换加密的消息 -Say Alice needs to communicate secretly with Bob. She writes her secret message in a file and saves it to `top_secret.txt`. Since this is a regular file, anybody can open it and see its contents. There isn't much protection here: +假设 Alice 需要与 Bob 秘密交流。她将秘密信息写入文件中,并将其保存到 `top_secret.txt` 中。由于这是一个普通文件,因此任何人都可以打开它并查看其内容,这里并没有太多保护: -``` +```bash alice $ alice $ echo "vim or emacs ?" > top_secret.txt alice $ @@ -244,16 +241,14 @@ vim or emacs ? alice $ ``` -To encrypt this secret message, Alice needs to use the `openssls -encrypt` command. She needs to provide three inputs to the tool: +要加密此秘密消息,Alice 需要使用 `openssls -encrypt` 命令。她需要为该工具提供三个输入: - 1. The name of the file that contains the secret message - 2. Bob's public key (file) - 3. The name of a file where the encrypted message will be stored + 1. 秘密消息文件的名称 + 2. Bob 的公钥(文件) + 3. 加密后新文件的名称 - - -``` +```bash alice $ openssl rsautl -encrypt -inkey bob_public.pem -pubin -in top_secret.txt -out top_secret.enc alice $ alice $ ls -l top_secret.* @@ -263,10 +258,10 @@ alice $ alice $ ``` -After encryption, the original file is still viewable, whereas the newly created encrypted file looks like gibberish on the screen. You can be assured that the secret message has been encrypted: +加密后,原始文件仍然是可见的,而新创建的加密文件在屏幕上看起来像乱码。这样,你可以确定秘密消息已被加密: -``` +```bash alice $ cat top_secret.txt vim or emacs ? alice $ @@ -290,24 +285,24 @@ top_secret.enc: data alice $ ``` -It's safe to delete the original file with the secret message to remove any traces of it: +删除秘密消息的原始文件是安全的,这样确保任何痕迹都没有: -``` -`alice $ rm -f top_secret.txt` +```bash +alice $ rm -f top_secret.txt ``` -Now Alice needs to send this encrypted file to Bob over a network, once again, using the `scp` command to copy the file to Bob's workstation. Remember, even if the file is intercepted, its contents are encrypted, so the contents can't be revealed: +现在,Alice 需要再次使用 `scp` 命令将此加密文件通过网络发送给 Bob 的工作站。注意,即使文件被截获,其内容也会是加密的,因此内容不会被泄露: -``` -`alice $  scp top_secret.enc bob@bob-machine-or-ip:/path/` +```bash +alice $  scp top_secret.enc bob@bob-machine-or-ip:/path/ ``` -If Bob uses the usual methods to try to open and view the encrypted message, he won't be able to read it: +如果 Bob 使用常规方法尝试打开并查看加密的消息,他将无法看懂该消息: -``` +```bash bob $ ls -l top_secret.enc -rw-r--r--. 1 bob bob 128 Mar 22 13:59 top_secret.enc bob $ @@ -327,27 +322,25 @@ bob $ hexdump -C top_secret.enc bob $ ``` -#### Step 5: Decrypt the file using a private key +#### 步骤 5:使用私钥解密文件 -Bob needs to do his part by decrypting the message using OpenSSL, but this time using the `-decrypt` command-line argument. He needs to provide the following information to the utility: +Bob 需要使用 OpenSSL 来解密消息,但是这次使用的是 `-decrypt` 命令行参数。他需要向工具程序提供以下信息: - 1. The encrypted file (which he got from Alice) - 2. Bob's own private key (for decryption, since it was encrypted using Bob's public key) - 3. A file name to save the decrypted output to via redirection + 1. 加密的文件(从 Alice 那里得到) + 2. Bob 的私钥(用于解密,因为文件是用 Bob 的公钥加密的) + 3. 通过重定向保存解密输出的文件名 - - -``` +```bash bob $ openssl rsautl -decrypt -inkey bob_private.pem -in top_secret.enc > top_secret.txt Enter pass phrase for bob_private.pem: bob $ ``` -Bob can now read the secret message that Alice sent him: +现在,Bob 可以阅读 Alice 发送给他的秘密消息: -``` +```bash bob $ ls -l top_secret.txt -rw-r--r--. 1 bob bob 15 Mar 22 14:02 top_secret.txt bob $ @@ -356,10 +349,10 @@ vim or emacs ? bob $ ``` -Bob needs to reply to Alice, so he writes his secret reply in a file: +Bob 需要回复 Alice,因此他将秘密回复写在一个文件中: -``` +```bash bob $ echo "nano for life" > reply_secret.txt bob $ bob $ cat reply_secret.txt @@ -367,12 +360,12 @@ nano for life bob $ ``` -#### Step 6: Repeat the process with the other key +#### 步骤 6:使用其他密钥重复该过程 -To send his message, Bob follows the same process Alice used, but since the message is intended for Alice, he uses Alice's public key to encrypt the file: +为了发送消息,Bob 采用和 Alice 相同的步骤,但是由于该消息是发送给 Alice 的,因此他需要使用 Alice 的公钥来加密文件: -``` +```bash bob $ openssl rsautl -encrypt -inkey alice_public.pem -pubin -in reply_secret.txt -out reply_secret.enc bob $ bob $ ls -l reply_secret.enc @@ -397,17 +390,17 @@ bob $ # remove clear text secret message file bob $ rm -f reply_secret.txt ``` -Bob sends the encrypted file back to Alice's workstation via `scp`: +Bob 通过 `scp` 将加密的文件发送至 Alice 的工作站: -``` -`$ scp reply_secret.enc alice@alice-machine-or-ip:/path/` +```bash +$ scp reply_secret.enc alice@alice-machine-or-ip:/path/ ``` -Alice cannot make sense of the encrypted text if she tries to read it using normal tools: +如果 Alice 尝试使用常规工具去阅读加密的文本,她将无法理解加密的文本: -``` +```bash alice $ alice $ ls -l reply_secret.enc -rw-r--r--. 1 alice alice 128 Mar 22 18:01 reply_secret.enc @@ -430,11 +423,11 @@ alice $ hexdump -C ./reply_secret.enc alice $ ``` -So she decrypts the message with OpenSSL, only this time she provides her secret key and saves the output to a file: +所以,她使用 OpenSSL 解密消息,只不过这次她提供了自己的私钥并将输出保存到文件中: -``` -alice $ openssl rsautl -decrypt -inkey alice_private.pem -in reply_secret.enc > reply_secret.txt +```bash +alice $ openssl rsautl -decrypt -inkey alice_private.pem -in reply_secret.enc > reply_secret.txt Enter pass phrase for alice_private.pem: alice $ alice $ ls -l reply_secret.txt @@ -445,9 +438,9 @@ nano for life alice $ ``` -### Learn more about OpenSSL +### 了解 OpenSSL 的更多信息 -OpenSSL is a true Swiss Army knife utility for cryptography-related use cases. It can do many tasks besides encrypting files. You can find out all the ways you can use it by accessing the OpenSSL [docs page][4], which includes links to the manual, the _OpenSSL Cookbook_, frequently asked questions, and more. To learn more, play around with its various included encryption algorithms to see how it works. +OpenSSL 在加密界是真正的瑞士军刀。除了加密文件外,它还可以执行许多任务,你可以通过访问 OpenSSL [文档页面][4]来找到使用它的所有方式,包括手册的链接、 _OpenSSL Cookbook_、常见问题解答等。要了解更多信息,尝试使用其自带的各种加密算法,看看它是如何工作的。 -------------------------------------------------------------------------------- @@ -455,14 +448,14 @@ via: https://opensource.com/article/21/4/encryption-decryption-openssl 作者:[Gaurav Kamathe][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[MjSeven](https://github.com/MjSeven) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://opensource.com/users/gkamathe [b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook2016_security_cc.png?itok=3V07Lpko (A secure lock.) +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003601_05_mech_osyearbook2016_security_cc.png?itok=3V07Lpko "A secure lock." [2]: https://www.openssl.org/ [3]: https://www.openssl.org/docs/man1.0.2/man1/genrsa.html -[4]: https://www.openssl.org/docs/ +[4]: https://www.openssl.org/docs/ \ No newline at end of file From 6cd9bb48538b66abc054d94ae00534e36538ded6 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 5 May 2021 05:05:07 +0800 Subject: [PATCH 081/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210504=20?= =?UTF-8?q?Keep=20multiple=20Linux=20distros=20on=20a=20USB=20with=20this?= =?UTF-8?q?=20open=20source=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md --- ...ros on a USB with this open source tool.md | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md diff --git a/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md b/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md new file mode 100644 index 0000000000..e2a58a3467 --- /dev/null +++ b/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md @@ -0,0 +1,99 @@ +[#]: subject: (Keep multiple Linux distros on a USB with this open source tool) +[#]: via: (https://opensource.com/article/21/5/linux-ventoy) +[#]: author: (Don Watkins https://opensource.com/users/don-watkins) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Keep multiple Linux distros on a USB with this open source tool +====== +Create a multiboot USB drive with Ventoy, and you'll never be without +your favorite Linux distros. +![USB drive][1] + +Giving friends and neighbors a bootable USB drive containing your favorite Linux distribution is a great way to introduce neophyte Linux users to the experience we all enjoy. There are still a large number of folks who have never heard of Linux, and putting your favorite distribution on a bootable USB drive is a great way to break the ice. + +A few years ago, I was teaching an introductory computer class to a group of middle schoolers. We used old laptops, and I introduced the students to Fedora, Ubuntu, and Pop!_OS. When the class was over, I gave each student a copy of their favorite distribution to take home and install on a computer of their choice. They were eager to try their new skills at home. + +### Put multiple distros on one drive + +Recently, a friend introduced me to Ventoy, which (according to its [GitHub repository][2]) is "an open source tool to create bootable a USB drive for ISO/WIM/IMG/VHD(x)/EFI files." Instead of creating separate drives for each Linux distribution I want to share, I can create a single drive with _all_ my favorite Linux distributions on the drive! + +![USB space][3] + +(Don Watkins, [CC BY-SA 4.0][4]) + +As you might expect, a USB drive's size will determine how many distributions you can fit onto it. On a 16GB drive, I placed Elementary 5.1, Linux Mint Cinnamon 5.1, and Linux Mint XFCE 5.1… and still have 9.9GB free. + +### Get Ventoy + +Ventoy is open source with a [GPL v3][5] license and available for Windows and Linux. There is excellent documentation to download and install Ventoy on Microsoft Windows. The Linux installation happens from the command line, so it can be a little confusing if you're not familiar with that process. Yet, it's easier than it might seem. + +First, [download Ventoy][6]. I downloaded the archive file to my desktop. + +Next, extract the `ventoy-x.y.z-linux.tar.gz` archive (but replace `x.y.z` with your download's version number) using the `tar` command (to keep things simple, I use the `*` character as an infinite wildcard in the command): + + +``` +`$ tar -xvf ventoy*z` +``` + +This command extracts all the necessary files into a folder named `ventoy-x.y.z` on my desktop. + +You can also use your Linux distribution's archive manager to accomplish the same task. After the download and extraction are complete, you are ready to install Ventoy to your USB drive. + +### Install Ventoy and Linux on a USB + +Insert your USB drive into your computer. Change directory into the Ventoy folder, and look for a shell script named `Ventoy2Disk.sh`. You need to determine your USB drive's correct mount point for this script to work properly. You can find it by issuing the `mount` command on the command line or with the [GNOME Disks][7] command, which provides a graphical interface. The latter shows that my USB drive is mounted at `/dev/sda`. On your computer, the location could be `/dev/sdb` or `/dev/sdc` or something similar. + +![USB mount point in GNOME Disks][8] + +(Don Watkins, [CC BY-SA 4.0][4]) + +The next step is to execute the Ventoy shell script. Because it's designed to copy data onto a drive indiscriminately, I'm using a fake location (`/dev/sdx`) to foil copy/paste errors, so replace the trailing `x` with the letter of the actual drive you want to overwrite. + +_Let me reiterate:_ This shell script is designed to copy data to a drive, _destroying all data on that drive._ If there is data you care about on the drive, back it up before trying this! If you're not sure about your drive's location, verify it until you're absolutely sure before you proceed! + +Once you're sure of your drive's location, run the script: + + +``` +`$ sudo sh Ventoy2Disk.sh -i /dev/sdX` +``` + +This formats the drive and installs Ventoy to your USB. Now you can copy and paste all the Linux distributions that will fit on the drive. If you boot the newly created drive on your computer, you'll see a menu with the distributions you have copied to your USB drive. + +![Linux distros in Ventoy][9] + +(Don Watkins, [CC BY-SA 4.0][4]) + +### Build a portable powerhouse + +Ventoy is your key to carrying a multiboot drive on your keychain, so you'll never be without the distributions you rely on. You can have a full-featured desktop, a lightweight distro, a console-only maintenance utility, _and_ anything else you want. + +I never leave the house without a Linux distro anymore, and neither should you. Grab Ventoy, a USB drive, and a handful of ISOs. You won't be sorry. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/linux-ventoy + +作者:[Don Watkins][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/markus-winkler-usb-unsplash.jpg?itok=5ZXDp0V4 (USB drive) +[2]: https://github.com/ventoy/Ventoy +[3]: https://opensource.com/sites/default/files/uploads/ventoy1.png (USB space) +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: https://www.ventoy.net/en/doc_license.html +[6]: https://github.com/ventoy/Ventoy/releases +[7]: https://wiki.gnome.org/Apps/Disks +[8]: https://opensource.com/sites/default/files/uploads/usb-mountpoint.png (USB mount point in GNOME Disks) +[9]: https://opensource.com/sites/default/files/uploads/ventoy_distros.jpg (Linux distros in Ventoy) From e31eed7cf1f13dd3dfbed84c3a61133e948e36c7 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Wed, 5 May 2021 05:05:26 +0800 Subject: [PATCH 082/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210504=20?= =?UTF-8?q?5=20ways=20the=20Star=20Wars=20universe=20embraces=20open=20sou?= =?UTF-8?q?rce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210504 5 ways the Star Wars universe embraces open source.md --- ...Star Wars universe embraces open source.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 sources/tech/20210504 5 ways the Star Wars universe embraces open source.md diff --git a/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md b/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md new file mode 100644 index 0000000000..7ecbfde0f0 --- /dev/null +++ b/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md @@ -0,0 +1,100 @@ +[#]: subject: (5 ways the Star Wars universe embraces open source) +[#]: via: (https://opensource.com/article/21/5/open-source-star-wars) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +5 ways the Star Wars universe embraces open source +====== +Growing up with Star Wars taught me a lot about being open. +![Man with lasers in night sky][1] + +Let's get one thing straight up front: there's nothing open about the Star Wars franchise in real life (although its owner does publish [some open source code][2]). Star Wars is a tightly controlled property with nothing published under a free-culture license. Setting aside any debate of when [cultural icons should become the property of the people][3] who've grown up with them, this article invites you to step _into_ the Star Wars universe and imagine you're a computer user a long time ago, in a galaxy far, far away… + +### Droids + +> "But I was going into Tosche Station to pick up some power converters!" +> — Luke Skywalker + +Before George Lucas made his first Star Wars movie, he directed a movie called _American Graffiti_, a coming-of-age movie set in the 1960s. Part of the movie's backdrop was the hot-rod and street-racing culture, featuring a group of mechanical tinkerers who spent hours and hours in the garage, endlessly modding their cars. This can still be done today, but most car enthusiasts will tell you that "classic" cars are a lot easier to work on because they use mostly mechanical rather than technological parts, and they use common parts in a predictable way. + +I've always seen Luke and his friends as the science fiction interpretation of the same nostalgia. Sure, fancy new battle stations are high tech and can destroy entire planets, but what do you do when a [blast door fails to open correctly][4] or when the trash compactor on the detention level starts crushing people? If you don't have a spare R2 unit to interface with the mainframe, you're out of luck. Luke's passion for fixing and maintaining 'droids and his talent for repairing vaporators and X-wings were evident from the first film. + +Seeing how technology is treated on Tatooine, I can't help but believe that most of the commonly used equipment was the people's technology. Luke didn't have an end-user license agreement for C-3PO or R2-D2. He didn't void his warranty when he let Threepio relax in a hot oil bath or when Chewbacca reassembled him in Lando's Cloud City. Likewise, Han Solo and Chewbacca never took the Millennium Falcon to the dealership for approved parts. + +I can't prove it's all open source technology. Given the amount of end-user repair and customization in the films, I believe that technology is open and common knowledge intended to be [owned and repaired by users][5] in the Star Wars universe. + +### Encryption and steganography + +> "Help me, Obi-Wan Kenobi. You're my only hope." +> — Princess Leia + +Admittedly, digital authentication in the Star Wars universe is difficult to understand, but if one thing is clear, encryption and steganography are vital to the Rebellion's success. And when you're in a rebellion, you can't rely on corporate standards, suspiciously sanctioned by the evil empire you're fighting. There were no backdoors into Artoo's memory banks when he was concealing Princess Leia's desperate plea for help, and the Rebellion struggles to get authentication credentials when infiltrating enemy territory (it's an older code, but it checks out). + +Encryption isn't just a technological matter. It's a form of communication, and there are examples of it throughout history. When governments attempt to outlaw encryption, it's an effort to outlaw community. I assume that this is part of what the Rebellion was meant to resist. + +### Lightsabers + +> "I see you have constructed a new lightsaber. Your skills are now complete." +> — Darth Vader + +In _The Empire Strikes Back_, Luke Skywalker loses his iconic blue lightsaber, along with his hand, to nefarious overlord Darth Vader. In the next film, _Return of the Jedi,_ Luke reveals—to the absolute enchantment of every fan—a green lightsaber that he _constructed_ himself. + +It's not explicitly stated that the technical specifications of the Jedi Knight's laser sword are open source, but there are implications. For example, there's no indication that Luke had to license the design from a copyright-holding firm before building his weapon. He didn't contract a high-tech factory to produce his sword. + +He built it _all by himself_ as a rite of passage. Maybe the method for building such a powerful weapon is a secret guarded by the Jedi order; then again, maybe that's just another way of describing open source. I learned all the coding I know from trusted mentors, random internet streamers, artfully written blog posts, and technical talks. + +Closely guarded secrets? Or open information for anyone seeking knowledge? + +Based on the Jedi order I saw in the original trilogy, I choose to believe the latter. + +### Ewok culture + +> "Yub nub!" +> — Ewoks + +The Ewoks of Endor are a stark contrast to the rest of the Empire's culture. They're ardently communal, sharing meals and stories late into the night. They craft their own weapons, honey pots, and firewalls for security, as well as their own treetop village. As the figurative underdogs, they shouldn't have been able to rid themselves of the Empire's occupation. They did their research by consulting a protocol 'droid, pooled their resources, and rose to the occasion. When strangers dropped into their homes, they didn't reject them. Rather, they helped them (after determining that they were not, after all, food). When they were confronted with frightening technology, they engaged with it and learned from it. + +Ewoks are a celebration of open culture and open source within the Star Wars universe. Theirs is the community we should strive for: sharing information, sharing knowledge, being receptive to strangers and progressive technology, and maintaining the resolve to stand up for what's right. + +### The Force + +> "The Force will be with you. Always." +> — Obi-Wan Kenobi + +In the original films and even in the nascent Expanded Universe (the original EU novel, and my personal favorite, is _Splinter of the Mind's Eye_, in which Luke learns more about the Force from a woman named Halla), the Force was just that: a force that anyone can learn to wield. It isn't an innate talent, rather a powerful discipline to master. + +![The very beginning of the expanded universe][6] + +By contrast, the evil Sith are protective of their knowledge, inviting only a select few to join their ranks. They may believe they have a community, but it's the very model of seemingly arbitrary exclusivity. + +I don't know of a better analogy for open source and open culture. The danger of perceived exclusivity is ever-present because enthusiasts always seem to be in the "in-crowd." But the reality is, the invitation is there for everyone to join. And the ability to go back to the source (literally the source code or assets) is always available to anyone. + +### May the source be with you + +Our task, as a community, is to ask how we can make it clear that whatever knowledge we possess isn't meant to be privileged information and instead, a force that anyone can learn to use to improve their world. + +To paraphrase the immortal words of Obi-Wan Kenobi: "Use the source." + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/open-source-star-wars + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tobias-cornille-light-sabres-unsplash.jpg?itok=rYwXA2CX (Man with lasers in night sky) +[2]: https://disney.github.io/ +[3]: https://opensource.com/article/18/1/creative-commons-real-world +[4]: https://www.hollywoodreporter.com/heat-vision/star-wars-40th-anniversary-head-banging-stormtrooper-explains-classic-blunder-1003769 +[5]: https://www.eff.org/issues/right-to-repair +[6]: https://opensource.com/sites/default/files/20210501_100930.jpg (The very beginning of the expanded universe) From 676fee852f813d7eb39f85d05d21995f45f3dc82 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Wed, 5 May 2021 10:05:44 +0800 Subject: [PATCH 083/170] Delete 20210504 .md --- sources/tech/20210504 .md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 sources/tech/20210504 .md diff --git a/sources/tech/20210504 .md b/sources/tech/20210504 .md deleted file mode 100644 index e04e3d6d49..0000000000 --- a/sources/tech/20210504 .md +++ /dev/null @@ -1,25 +0,0 @@ -[#]: subject: () -[#]: via: (https://www.2daygeek.com/linux-beginners-guide-firewalld/) -[#]: author: ( ) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - - -====== - --------------------------------------------------------------------------------- - -via: https://www.2daygeek.com/linux-beginners-guide-firewalld/ - -作者:[][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: -[b]: https://github.com/lujun9972 From f48c5312d2ebb99c53ed9f19ea6ef928ed1f0594 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 5 May 2021 10:29:35 +0800 Subject: [PATCH 084/170] APL --- ...ultiple Linux distros on a USB with this open source tool.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md b/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md index e2a58a3467..2f6889c22a 100644 --- a/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md +++ b/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/linux-ventoy) [#]: author: (Don Watkins https://opensource.com/users/don-watkins) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wxy) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From f40ea10f345b27d1d478a16440ec2bd552006e99 Mon Sep 17 00:00:00 2001 From: MjSeven Date: Wed, 5 May 2021 11:20:10 +0800 Subject: [PATCH 085/170] translating --- sources/tech/20210114 Cross-compiling made easy with Golang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210114 Cross-compiling made easy with Golang.md b/sources/tech/20210114 Cross-compiling made easy with Golang.md index b7599a2bf9..7e359112b4 100644 --- a/sources/tech/20210114 Cross-compiling made easy with Golang.md +++ b/sources/tech/20210114 Cross-compiling made easy with Golang.md @@ -1,5 +1,5 @@ [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (MjSeven) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 85f07bdd7a3cb76ef538b224cc1aabb03248a6c0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 5 May 2021 13:14:52 +0800 Subject: [PATCH 086/170] TSL&PRF --- ...ros on a USB with this open source tool.md | 99 ------------------- ...ros on a USB with this open source tool.md | 92 +++++++++++++++++ 2 files changed, 92 insertions(+), 99 deletions(-) delete mode 100644 sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md create mode 100644 translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md diff --git a/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md b/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md deleted file mode 100644 index 2f6889c22a..0000000000 --- a/sources/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md +++ /dev/null @@ -1,99 +0,0 @@ -[#]: subject: (Keep multiple Linux distros on a USB with this open source tool) -[#]: via: (https://opensource.com/article/21/5/linux-ventoy) -[#]: author: (Don Watkins https://opensource.com/users/don-watkins) -[#]: collector: (lujun9972) -[#]: translator: (wxy) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Keep multiple Linux distros on a USB with this open source tool -====== -Create a multiboot USB drive with Ventoy, and you'll never be without -your favorite Linux distros. -![USB drive][1] - -Giving friends and neighbors a bootable USB drive containing your favorite Linux distribution is a great way to introduce neophyte Linux users to the experience we all enjoy. There are still a large number of folks who have never heard of Linux, and putting your favorite distribution on a bootable USB drive is a great way to break the ice. - -A few years ago, I was teaching an introductory computer class to a group of middle schoolers. We used old laptops, and I introduced the students to Fedora, Ubuntu, and Pop!_OS. When the class was over, I gave each student a copy of their favorite distribution to take home and install on a computer of their choice. They were eager to try their new skills at home. - -### Put multiple distros on one drive - -Recently, a friend introduced me to Ventoy, which (according to its [GitHub repository][2]) is "an open source tool to create bootable a USB drive for ISO/WIM/IMG/VHD(x)/EFI files." Instead of creating separate drives for each Linux distribution I want to share, I can create a single drive with _all_ my favorite Linux distributions on the drive! - -![USB space][3] - -(Don Watkins, [CC BY-SA 4.0][4]) - -As you might expect, a USB drive's size will determine how many distributions you can fit onto it. On a 16GB drive, I placed Elementary 5.1, Linux Mint Cinnamon 5.1, and Linux Mint XFCE 5.1… and still have 9.9GB free. - -### Get Ventoy - -Ventoy is open source with a [GPL v3][5] license and available for Windows and Linux. There is excellent documentation to download and install Ventoy on Microsoft Windows. The Linux installation happens from the command line, so it can be a little confusing if you're not familiar with that process. Yet, it's easier than it might seem. - -First, [download Ventoy][6]. I downloaded the archive file to my desktop. - -Next, extract the `ventoy-x.y.z-linux.tar.gz` archive (but replace `x.y.z` with your download's version number) using the `tar` command (to keep things simple, I use the `*` character as an infinite wildcard in the command): - - -``` -`$ tar -xvf ventoy*z` -``` - -This command extracts all the necessary files into a folder named `ventoy-x.y.z` on my desktop. - -You can also use your Linux distribution's archive manager to accomplish the same task. After the download and extraction are complete, you are ready to install Ventoy to your USB drive. - -### Install Ventoy and Linux on a USB - -Insert your USB drive into your computer. Change directory into the Ventoy folder, and look for a shell script named `Ventoy2Disk.sh`. You need to determine your USB drive's correct mount point for this script to work properly. You can find it by issuing the `mount` command on the command line or with the [GNOME Disks][7] command, which provides a graphical interface. The latter shows that my USB drive is mounted at `/dev/sda`. On your computer, the location could be `/dev/sdb` or `/dev/sdc` or something similar. - -![USB mount point in GNOME Disks][8] - -(Don Watkins, [CC BY-SA 4.0][4]) - -The next step is to execute the Ventoy shell script. Because it's designed to copy data onto a drive indiscriminately, I'm using a fake location (`/dev/sdx`) to foil copy/paste errors, so replace the trailing `x` with the letter of the actual drive you want to overwrite. - -_Let me reiterate:_ This shell script is designed to copy data to a drive, _destroying all data on that drive._ If there is data you care about on the drive, back it up before trying this! If you're not sure about your drive's location, verify it until you're absolutely sure before you proceed! - -Once you're sure of your drive's location, run the script: - - -``` -`$ sudo sh Ventoy2Disk.sh -i /dev/sdX` -``` - -This formats the drive and installs Ventoy to your USB. Now you can copy and paste all the Linux distributions that will fit on the drive. If you boot the newly created drive on your computer, you'll see a menu with the distributions you have copied to your USB drive. - -![Linux distros in Ventoy][9] - -(Don Watkins, [CC BY-SA 4.0][4]) - -### Build a portable powerhouse - -Ventoy is your key to carrying a multiboot drive on your keychain, so you'll never be without the distributions you rely on. You can have a full-featured desktop, a lightweight distro, a console-only maintenance utility, _and_ anything else you want. - -I never leave the house without a Linux distro anymore, and neither should you. Grab Ventoy, a USB drive, and a handful of ISOs. You won't be sorry. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/linux-ventoy - -作者:[Don Watkins][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/don-watkins -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/markus-winkler-usb-unsplash.jpg?itok=5ZXDp0V4 (USB drive) -[2]: https://github.com/ventoy/Ventoy -[3]: https://opensource.com/sites/default/files/uploads/ventoy1.png (USB space) -[4]: https://creativecommons.org/licenses/by-sa/4.0/ -[5]: https://www.ventoy.net/en/doc_license.html -[6]: https://github.com/ventoy/Ventoy/releases -[7]: https://wiki.gnome.org/Apps/Disks -[8]: https://opensource.com/sites/default/files/uploads/usb-mountpoint.png (USB mount point in GNOME Disks) -[9]: https://opensource.com/sites/default/files/uploads/ventoy_distros.jpg (Linux distros in Ventoy) diff --git a/translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md b/translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md new file mode 100644 index 0000000000..7240898448 --- /dev/null +++ b/translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md @@ -0,0 +1,92 @@ +[#]: subject: (Keep multiple Linux distros on a USB with this open source tool) +[#]: via: (https://opensource.com/article/21/5/linux-ventoy) +[#]: author: (Don Watkins https://opensource.com/users/don-watkins) +[#]: collector: (lujun9972) +[#]: translator: (wxy) +[#]: reviewer: (wxy) +[#]: publisher: ( ) +[#]: url: ( ) + +神器:在一个 U 盘上放入多个 Linux 发行版 +====== + +> 用 Ventoy 创建多启动 U 盘,你将永远不会缺少自己喜欢的 Linux 发行版。 + +![](https://img.linux.net.cn/data/attachment/album/202105/05/131432p5q7hh5cm7a8ffsd.jpg) + +给朋友和邻居一个可启动 U 盘,里面包含你最喜欢的 Linux 发行版,是向 Linux 新手介绍我们都喜欢的 Linux 体验的好方法。仍然有许多人从未听说过 Linux,把你喜欢的发行版放在一个可启动的 U 盘上是让他们进入 Linux 世界的好办法。 + +几年前,我在给一群中学生教授计算机入门课。我们使用旧笔记本电脑,我向学生们介绍了 Fedora、Ubuntu 和 Pop!_OS。下课后,我给每个学生一份他们喜欢的发行版的副本,让他们带回家安装在自己选择的电脑上。他们渴望在家里尝试他们的新技能。 + +### 把多个发行版放在一个驱动器上 + +最近,一个朋友向我介绍了 Ventoy,它(根据其 [GitHub 仓库][2])是 “一个开源工具,可以为 ISO/WIM/IMG/VHD(x)/EFI 文件创建可启动的 USB 驱动器”。与其为每个我想分享的 Linux 发行版创建单独的驱动器,我可以在一个 U 盘上放入我喜欢的 _所有_ Linux 发行版! + +![USB 空间][3] + +正如你所能想到的那样,U 盘的大小决定了你能在上面容纳多少个发行版。在一个 16GB 的 U 盘上,我放置了 Elementary 5.1、Linux Mint Cinnamon 5.1 和 Linux Mint XFCE 5.1......但仍然有 9.9GB 的空间。 + +### 获取 Ventoy + +Ventoy 是开源的,采用 [GPLv3][5] 许可证,可用于 Windows 和 Linux。有很好的文档介绍了如何在 Windows 上下载和安装 Ventoy。Linux 的安装是通过命令行进行的,所以如果你不熟悉这个过程,可能会有点混乱。然而,其实很容易。 + +首先,[下载 Ventoy][6]。我把存档文件下载到我的桌面上。 + +接下来,使用 `tar` 命令解压 `ventoy-x.y.z-linux.tar.gz` 档案(但要用你下载的版本号替换 `x.y.z`)(为了保持简单,我在命令中使用 `*` 字符作为任意通配符): + +``` +$ tar -xvf ventoy*z +``` + +这个命令将所有必要的文件提取到我桌面上一个名为 `ventoy-x.y.z` 的文件夹中。 + +你也可以使用你的 Linux 发行版的存档管理器来完成同样的任务。下载和提取完成后,你就可以把 Ventoy 安装到你的 U 盘上了。 + +### 在 U 盘上安装 Ventoy 和 Linux + +把你的 U 盘插入你的电脑。改变目录进入 Ventoy 的文件夹,并寻找一个名为 `Ventoy2Disk.sh` 的 shell 脚本。你需要确定你的 U 盘的正确挂载点,以便这个脚本能够正常工作。你可以通过在命令行上发出 `mount` 命令或者使用 [GNOME 磁盘][7] 来找到它,后者提供了一个图形界面。后者显示我的 U 盘被挂载在 `/dev/sda`。在你的电脑上,这个位置可能是 `/dev/sdb` 或 `/dev/sdc` 或类似的位置。 + +![GNOME 磁盘中的 USB 挂载点][8] + +下一步是执行 Ventoy shell 脚本。因为它被设计成不加选择地复制数据到一个驱动器上,我使用了一个假的位置(`/dev/sdX`)来防止你复制/粘贴错误,所以用你想覆盖的实际驱动器的字母替换后面的 `X`。 + +**让我重申**:这个 shell 脚本的目的是把数据复制到一个驱动器上, _破坏该驱动器上的所有数据。_ 如果该驱动器上有你关心的数据,在尝试这个方法之前,先把它备份! 如果你不确定你的驱动器的位置,在你继续进行之前,请验证它,直到你完全确定为止。 + +一旦你确定了你的驱动器的位置,就运行这个脚本: + +``` +$ sudo sh Ventoy2Disk.sh -i /dev/sdX +``` + +这样就可以格式化它并将 Ventoy 安装到你的 U 盘上。现在你可以复制和粘贴所有适合放在 U 盘上的 Linux 发行版文件。如果你在电脑上用新创建的 U 盘引导,你会看到一个菜单,上面有你复制到 U 盘上的发行版。 + +![Ventoy中的Linux发行版][9] + +### 构建一个便携式的动力源 + +Ventoy 是你在钥匙串上携带多启动 U 盘的关键(钥匙),这样你就永远不会缺少你所依赖的发行版。你可以拥有一个全功能的桌面、一个轻量级的发行版、一个纯控制台的维护工具,以及其他你想要的东西。 + +我从来没有在没有 Linux 发行版的情况下离开家,你也不应该。拿上 Ventoy、一个 U 盘,和一串 ISO。你不会后悔的。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/linux-ventoy + +作者:[Don Watkins][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/don-watkins +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/markus-winkler-usb-unsplash.jpg?itok=5ZXDp0V4 (USB drive) +[2]: https://github.com/ventoy/Ventoy +[3]: https://opensource.com/sites/default/files/uploads/ventoy1.png (USB space) +[4]: https://creativecommons.org/licenses/by-sa/4.0/ +[5]: https://www.ventoy.net/en/doc_license.html +[6]: https://github.com/ventoy/Ventoy/releases +[7]: https://wiki.gnome.org/Apps/Disks +[8]: https://opensource.com/sites/default/files/uploads/usb-mountpoint.png (USB mount point in GNOME Disks) +[9]: https://opensource.com/sites/default/files/uploads/ventoy_distros.jpg (Linux distros in Ventoy) From 81ac0d28bbef9d82b29046db772d018280d793f8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 5 May 2021 13:16:50 +0800 Subject: [PATCH 087/170] PUB @wxy https://linux.cn/article-13361-1.html --- ...ple Linux distros on a USB with this open source tool.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename {translated/tech => published}/20210504 Keep multiple Linux distros on a USB with this open source tool.md (98%) diff --git a/translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md b/published/20210504 Keep multiple Linux distros on a USB with this open source tool.md similarity index 98% rename from translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md rename to published/20210504 Keep multiple Linux distros on a USB with this open source tool.md index 7240898448..dc17b8fd95 100644 --- a/translated/tech/20210504 Keep multiple Linux distros on a USB with this open source tool.md +++ b/published/20210504 Keep multiple Linux distros on a USB with this open source tool.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13361-1.html) 神器:在一个 U 盘上放入多个 Linux 发行版 ====== @@ -60,7 +60,7 @@ $ sudo sh Ventoy2Disk.sh -i /dev/sdX 这样就可以格式化它并将 Ventoy 安装到你的 U 盘上。现在你可以复制和粘贴所有适合放在 U 盘上的 Linux 发行版文件。如果你在电脑上用新创建的 U 盘引导,你会看到一个菜单,上面有你复制到 U 盘上的发行版。 -![Ventoy中的Linux发行版][9] +![Ventoy 中的 Linux 发行版][9] ### 构建一个便携式的动力源 From 7ef318976e817eddf191632ec07390239ae33e33 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Wed, 5 May 2021 13:51:53 +0800 Subject: [PATCH 088/170] PRF&PUB @geekpi https://linux.cn/article-13362-1.html --- ...e accessible and sustainable with Linux.md | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) rename {translated/tech => published}/20210424 Making computers more accessible and sustainable with Linux.md (68%) diff --git a/translated/tech/20210424 Making computers more accessible and sustainable with Linux.md b/published/20210424 Making computers more accessible and sustainable with Linux.md similarity index 68% rename from translated/tech/20210424 Making computers more accessible and sustainable with Linux.md rename to published/20210424 Making computers more accessible and sustainable with Linux.md index 1fc0ad6745..b405dcb76d 100644 --- a/translated/tech/20210424 Making computers more accessible and sustainable with Linux.md +++ b/published/20210424 Making computers more accessible and sustainable with Linux.md @@ -3,40 +3,42 @@ [#]: author: (Don Watkins https://opensource.com/users/don-watkins) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: reviewer: (wxy) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13362-1.html) 用 Linux 使计算机更容易使用和可持续 ====== -Free Geek 是一个非营利组织,通过向有需要的人和团体提供 Linux 电脑,帮助减少数字鸿沟。 -![Working from home at a laptop][1] -有很多理由选择 Linux 作为你的桌面操作系统。在[_为什么每个人都应该选择 Linux_][2]中,Opensource.com 的 Seth Kenlon 强调了许多选择 Linux 的最佳理由,并为人们提供了许多开始使用该操作系统的方法。 +> Free Geek 是一个非营利组织,通过向有需要的人和团体提供 Linux 电脑,帮助减少数字鸿沟。 -这也让我想到了我通常向人们介绍 Linux 的方式。这场大流行增加了人们上网购物、远程教育以及与家人和朋友[通过视频会议][3]联系的需求。 +![](https://img.linux.net.cn/data/attachment/album/202105/05/135048extplppp7miznpdp.jpg) -我和很多有固定收入的退休人员一起工作,他们并不特别精通技术。对于这些人中的大多数人来说,购买电脑是一项充满担忧的大投资。我的一些朋友和客户对在大流行期间去零售店感到不舒服,而且他们完全不熟悉在电脑中寻找什么,无论是台式机还是笔记本电脑,即使在非大流行时期。他们来找我,询问在哪里买,要注意些什么。 +有很多理由选择 Linux 作为你的桌面操作系统。在 [为什么每个人都应该选择 Linux][2] 中,Seth Kenlon 强调了许多选择 Linux 的最佳理由,并为人们提供了许多开始使用该操作系统的方法。 -我总是急于看到他们得到一台 Linux 电脑。他们中的许多人买不起名牌供应商出售的 Linux 设备。直到最近,我一直在为他们购买翻新的设备,然后用 Linux 改装它们。 +这也让我想到了我通常向人们介绍 Linux 的方式。这场大流行增加了人们上网购物、远程教育以及与家人和朋友 [通过视频会议][3] 联系的需求。 + +我和很多有固定收入的退休人员一起工作,他们并不特别精通技术。对于这些人中的大多数人来说,购买电脑是一项充满担忧的大投资。我的一些朋友和客户对在大流行期间去零售店感到不舒服,而且他们完全不熟悉如何买电脑,无论是台式机还是笔记本电脑,即使在非大流行时期。他们来找我,询问在哪里买,要注意些什么。 + +我总是想看到他们得到一台 Linux 电脑。他们中的许多人买不起名牌供应商出售的 Linux 设备。直到最近,我一直在为他们购买翻新的设备,然后用 Linux 改装它们。 但是,当我发现 [Free Geek][4] 时,这一切都改变了,这是一个位于俄勒冈州波特兰的非营利组织,它的使命是“可持续地重复使用技术,实现数字访问,并提供教育,以创建一个使人们能够实现其潜力的社区。” -Free Geek 有一个 eBay 商店,我在那里以可承受的价格购买了几台翻新的笔记本电脑。他们的电脑都安装了 [Linux Mint][5]。 事实上,电脑可以立即使用,这使得向[新用户介绍 Linux][6] 很容易,并帮助他们快速体验操作系统的力量。 +Free Geek 有一个 eBay 商店,我在那里以可承受的价格购买了几台翻新的笔记本电脑。他们的电脑都安装了 [Linux Mint][5]。 事实上,电脑可以立即使用,这使得向 [新用户介绍 Linux][6] 很容易,并帮助他们快速体验操作系统的力量。 ### 让电脑继续使用,远离垃圾填埋场 Oso Martin 在 2000 年地球日发起了 Free Geek。该组织为其志愿者提供课程和工作计划,对他们进行翻新和重建捐赠电脑的培训。志愿者们在服务 24 小时后还会收到一台捐赠的电脑。 -这些电脑在波特兰的 Free Geek 实体店和[网上][7]出售。该组织还通过其项目 [Plug Into Portland][8]、[Gift a Geekbox][9] 以及[组织][10]和[社区资助][11]向有需要的人和实体提供电脑。 +这些电脑在波特兰的 Free Geek 实体店和 [网上][7] 出售。该组织还通过其项目 [Plug Into Portland][8]、[Gift a Geekbox][9] 以及[组织][10]和[社区资助][11]向有需要的人和实体提供电脑。 -该组织表示,它已经“从垃圾填埋场转移了 200 多万件物品,向非营利组织、学校、社区变革组织和个人提供了 75000 多件技术设备,并从 Free Geek 学习者那里插入了 5000 多课时”。 +该组织表示,它已经“从垃圾填埋场翻新了 200 多万件物品,向非营利组织、学校、社区变革组织和个人提供了 75000 多件技术设备,并从 Free Geek 学习者那里提供了 5000 多课时”。 ### 参与其中 -自成立以来,Free Geek 已经从 3 名员工发展到近 50 名员工,并得到了世界各地的认可。它是波特兰市的[数字包容网络][12]的成员。 +自成立以来,Free Geek 已经从 3 名员工发展到近 50 名员工,并得到了世界各地的认可。它是波特兰市的 [数字包容网络][12] 的成员。 -你可以在 [Twitter][13]、[Facebook][14]、[LinkedIn][15]、[YouTube][16] 和 [Instagram][17] 上与 Free Geek 联系。你也可以订阅它的[通讯][18]。从 Free Geek 的[商店][19]购买物品,可以直接支持其工作,减少数字鸿沟。 +你可以在 [Twitter][13]、[Facebook][14]、[LinkedIn][15]、[YouTube][16] 和 [Instagram][17] 上与 Free Geek 联系。你也可以订阅它的[通讯][18]。从 Free Geek 的 [商店][19] 购买物品,可以直接支持其工作,减少数字鸿沟。 -------------------------------------------------------------------------------- @@ -45,7 +47,7 @@ via: https://opensource.com/article/21/4/linux-free-geek 作者:[Don Watkins][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ad2a1042dc6c5806e5d71de40eefc2448cc85951 Mon Sep 17 00:00:00 2001 From: Guoliang Han Date: Wed, 5 May 2021 17:20:36 +0800 Subject: [PATCH 089/170] translate complete and first commit of 20210104 Network address translation part 1 --- ...ess translation part 1 - packet tracing.md | 275 ---------------- ...ess translation part 1 - packet tracing.md | 293 ++++++++++++++++++ 2 files changed, 293 insertions(+), 275 deletions(-) delete mode 100644 sources/tech/20210104 Network address translation part 1 - packet tracing.md create mode 100644 translated/tech/20210104 Network address translation part 1 - packet tracing.md diff --git a/sources/tech/20210104 Network address translation part 1 - packet tracing.md b/sources/tech/20210104 Network address translation part 1 - packet tracing.md deleted file mode 100644 index 1a2b7b92cb..0000000000 --- a/sources/tech/20210104 Network address translation part 1 - packet tracing.md +++ /dev/null @@ -1,275 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (cooljelly) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Network address translation part 1 – packet tracing) -[#]: via: (https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/) -[#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) - -Network address translation part 1 – packet tracing -====== - -![][1] - -The first post in a series about network address translation (NAT). Part 1 shows how to use the iptables/nftables packet tracing feature to find the source of NAT related connectivity problems. - -### Introduction - -Network address translation is one way to expose containers or virtual machines to the wider internet. Incoming connection requests have their destination address rewritten to a different one. Packets are then routed to a container or virtual machine instead. The same technique can be used for load-balancing where incoming connections get distributed among a pool of machines. - -Connection requests fail when network address translation is not working as expected. The wrong service is exposed, connections end up in the wrong container, request time out, and so on. One way to debug such problems is to check that the incoming request matches the expected or configured translation. - -### Connection tracking - -NAT involves more than just changing the ip addresses or port numbers. For instance, when mapping address X to Y, there is no need to add a rule to do the reverse translation. A netfilter system called “conntrack” recognizes packets that are replies to an existing connection. Each connection has its own NAT state attached to it. Reverse translation is done automatically. - -### Ruleset evaluation tracing - -The utility nftables (and, to a lesser extent, iptables) allow for examining how a packet is evaluated and which rules in the ruleset were matched by it. To use this special feature “trace rules” are inserted at a suitable location. These rules select the packet(s) that should be traced. Lets assume that a host coming from IP address C is trying to reach the service on address S and port P. We want to know which NAT transformation is picked up, which rules get checked and if the packet gets dropped somewhere. - -Because we are dealing with incoming connections, add a rule to the prerouting hook point. Prerouting means that the kernel has not yet made a decision on where the packet will be sent to. A change to the destination address often results in packets to get forwarded rather than being handled by the host itself. - -### Initial setup -``` - -``` - -# nft 'add table inet trace_debug' -# nft 'add chain inet trace_debug trace_pre { type filter hook prerouting priority -200000; }' -# nft "insert rule inet trace_debug trace_pre ip saddr $C ip daddr $S tcp dport $P tcp flags syn limit rate 1/second meta nftrace set 1" -``` - -``` - -The first rule adds a new table This allows easier removal of the trace and debug rules later. A single “nft delete table inet trace_debug” will be enough to undo all rules and chains added to the temporary table during debugging. - -The second rule creates a base hook before routing decisions have been made (prerouting) and with a negative priority value to make sure it will be evaluated before connection tracking and the NAT rules. - -The only important part, however, is the last fragment of the third rule: “_meta nftrace set 1″_. This enables tracing events for all packets that match the rule. Be as specific as possible to get a good signal-to-noise ratio. Consider adding a rate limit to keep the number of trace events at a manageable level. A limit of one packet per second or per minute is a good choice. The provided example traces all syn and syn/ack packets coming from host $C and going to destination port $P on the destination host $S. The limit clause prevents event flooding. In most cases a trace of a single packet is enough. - -The procedure is similar for iptables users. An equivalent trace rule looks like this: -``` - -``` - -# iptables -t raw -I PREROUTING -s $C -d $S -p tcp --tcp-flags SYN SYN  --dport $P  -m limit --limit 1/s -j TRACE -``` - -``` - -### Obtaining trace events - -Users of the native nft tool can just run the nft trace mode: -``` - -``` - -# nft monitor trace -``` - -``` - -This prints out the received packet and all rules that match the packet (use CTRL-C to stop it): -``` - -``` - -trace id f0f627 ip raw prerouting  packet: iif "veth0" ether saddr .. -``` - -``` - -We will examine this in more detail in the next section. If you use iptables, first check the installed version via the “_iptables –version”_ command. Example: -``` - -``` - -# iptables --version -iptables v1.8.5 (legacy) -``` - -``` - -_(legacy)_ means that trace events are logged to the kernel ring buffer. You will need to check _dmesg or_ _journalctl_. The debug output lacks some information but is conceptually similar to the one provided by the new tools. You will need to check the rule line numbers that are logged and correlate those to the active iptables ruleset yourself. If the output shows _(nf_tables)_, you can use the xtables-monitor tool: -``` - -``` - -# xtables-monitor --trace -``` - -``` - -If the command only shows the version, you will also need to look at dmesg/journalctl instead. xtables-monitor uses the same kernel interface as the nft monitor trace tool. Their only difference is that it will print events in iptables syntax and that, if you use a mix of both iptables-nft and nft, it will be unable to print rules that use maps/sets and other nftables-only features. - -### Example - -Lets assume you’d like to debug a non-working port forward to a virtual machine or container. The command “ssh -p 1222 10.1.2.3” should provide remote access to a container running on the machine with that address, but the connection attempt times out. - -You have access to the host running the container image. Log in and add a trace rule. See the earlier example on how to add a temporary debug table. The trace rule looks like this: -``` - -``` - -nft "insert rule inet trace_debug trace_pre ip daddr 10.1.2.3 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1" -``` - -``` - -After the rule has been added, start nft in trace mode: _nft monitor trace_, then retry the failed ssh command. This will generate a lot of output if the ruleset is large. Do not worry about the large example output below – the next section will do a line-by-line walkthrough. -``` - -``` - -trace id 9c01f8 inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn -trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) -trace id 9c01f8 inet trace_debug trace_pre verdict continue -trace id 9c01f8 inet trace_debug trace_pre policy accept -trace id 9c01f8 inet nat prerouting packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp  tcp dport 1222 tcp flags == syn -trace id 9c01f8 inet nat prerouting rule ip daddr 10.1.2.3  tcp dport 1222 dnat ip to 192.168.70.10:22 (verdict accept) -trace id 9c01f8 inet filter forward packet: iif "enp0" oif "veth21" ether saddr .. ip daddr 192.168.70.10 .. tcp dport 22 tcp flags == syn tcp window 29200 -trace id 9c01f8 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) -trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) -trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn -``` - -``` - -### Line-by-line trace walkthrough - -The first line generated is the packet id that triggered the subsequent trace output. Even though this is in the same grammar as the nft rule syntax, it contains header fields of the packet that was just received. You will find the name of the receiving network interface (here named “enp0”) the source and destination mac addresses of the packet, the source ip address (can be important – maybe the reporter is connecting from a wrong/unexpected host) and the tcp source and destination ports. You will also see a “trace id” at the very beginning. This identification tells which incoming packet matched a rule. The second line contains the first rule matched by the packet: -``` - -``` - -trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) -``` - -``` - -This is the just-added trace rule. The first rule is always one that activates packet tracing. If there would be other rules before this, we would not see them. If there is no trace output at all, the trace rule itself is never reached or does not match. The next two lines tell that there are no further rules and that the “trace_pre” hook allows the packet to continue (_verdict accept)_. - -The next matching rule is -``` - -``` - -trace id 9c01f8 inet nat prerouting rule ip daddr 10.1.2.3  tcp dport 1222 dnat ip to 192.168.70.10:22 (verdict accept) -``` - -``` - -This rule sets up a mapping to a different address and port. Provided 192.168.70.10 really is the address of the desired VM, there is no problem so far. If its not the correct VM address, the address was either mistyped or the wrong NAT rule was matched. - -### IP forwarding - -Next we can see that the IP routing engine told the IP stack that the packet needs to be forwarded to another host: - -``` -trace id 9c01f8 inet filter forward packet: iif "enp0" oif "veth21" ether saddr .. ip daddr 192.168.70.10 .. tcp dport 22 tcp flags == syn tcp window 29200 -``` - -This is another dump of the packet that was received, but there are a couple of interesting changes. There is now an output interface set. This did not exist previously because the previous rules are located before the routing decision (the prerouting hook). The id is the same as before, so this is still the same packet, but the address and port has already been altered. In case there are rules that match “tcp dport 1222” they will have no effect anymore on this packet. - -If the line contains no output interface (oif), the routing decision steered the packet to the local host. Route debugging is a different topic and not covered here. - -trace id 9c01f8 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) - -This tells that the packet matched a rule that jumps to a chain named “allowed_dnats”. The next line shows the source of the connection failure: -``` - -``` - -trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) -``` - -``` - -The rule unconditionally drops the packet, so no further log output for the packet exists. The next output line is the result of a different packet: - -trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn - -The trace id is different, the packet however has the same content. This is a retransmit attempt: The first packet was dropped, so TCP re-tries. Ignore the remaining output, it does not contain new information. Time to inspect that chain. - -### Ruleset investigation - -The previous section found that the packet is dropped in a chain named “allowed_dnats” in the inet filter table. Time to look at it: -``` - -``` - -# nft list chain inet filter allowed_dnats -table inet filter { - chain allowed_dnats { -  meta nfproto ipv4 ip daddr . tcp dport @allow_in accept -  drop -   } -} -``` - -``` - -The rule that accepts packets in the @allow_in set did not show up in the trace log. Double-check that the address is in the @allow_set by listing the element: -``` - -``` - -# nft "get element inet filter allow_in { 192.168.70.10 . 22 }" -Error: Could not process rule: No such file or directory -``` - -``` - -As expected, the address-service pair is not in the set. We add it now. -``` - -``` - -# nft "add element inet filter allow_in { 192.168.70.10 . 22 }" -``` - -``` - -Run the query command now, it will return the newly added element. - -``` -# nft "get element inet filter allow_in { 192.168.70.10 . 22 }" -table inet filter { - set allow_in { - type ipv4_addr . inet_service - elements = { 192.168.70.10 . 22 } - } -} -``` - -The ssh command should now work and the trace output reflects the change: - -trace id 497abf58 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) - -trace id 497abf58 inet filter allowed_dnats rule meta nfproto ipv4 ip daddr . tcp dport @allow_in accept (verdict accept) - -trace id 497abf58 ip postrouting packet: iif "enp0" oif "veth21" ether .. trace id 497abf58 ip postrouting policy accept - -This shows the packet passes the last hook in the forwarding path – postrouting. - -In case the connect is still not working, the problem is somewhere later in the packet pipeline and outside of the nftables ruleset. - -### Summary - -This Article gave an introduction on how to check for packet drops and other sources of connectivity problems with the nftables trace mechanism. A later post in the series shows how to inspect the connection tracking subsystem and the NAT information that may be attached to tracked flows. - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/ - -作者:[Florian Westphal][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/strlen/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2020/12/network-address-translation-part-1-816x346.png diff --git a/translated/tech/20210104 Network address translation part 1 - packet tracing.md b/translated/tech/20210104 Network address translation part 1 - packet tracing.md new file mode 100644 index 0000000000..75b3292cb7 --- /dev/null +++ b/translated/tech/20210104 Network address translation part 1 - packet tracing.md @@ -0,0 +1,293 @@ +[#]: collector: (lujun9972) +[#]: translator: (cooljelly) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Network address translation part 1 – packet tracing) +[#]: via: (https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/) +[#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) + +网络地址转换第一部分 – 报文跟踪 +====== + +![][1] + +这是有关网络地址转换network address translation(NAT)的系列文章中的第一篇。这一部分将展示如何使用 iptables/nftables 报文跟踪功能来定位 NAT 相关的连接问题。 + +### 引言 + +网络地址转换是一种将容器或虚拟机暴露在互联网中的一种方式。传入连接请求的目标地址会被改写为另一个地址,随后被路由到容器或虚拟机。相同的技术可用于负载均衡,即传入的连接被分散到不同的服务器上去。 + +当网络地址转换无法正常工作时,连接请求将失败。这可能是因为发布了错误的服务,或者连接请求到达了错误的容器,或者请求超时,等等。调试此类问题的一种方法是检查传入请求是否与预期或已配置的转换相匹配。 + +### 连接跟踪 + +NAT 不仅仅涉及到修改 IP 地址或端口号。例如,在将地址 X 映射到 Y 时,无需添加新规则来执行反向转换。一个被称为“conntrack”的 netfilter 系统可以识别已有连接的回复报文。每个连接都在 conntrack 系统中有自己的 NAT 状态。反向转换是自动完成的。 + +### 规则匹配跟踪 + +nftables 应用程序(及 iptables 应用程序)允许针对某个报文检查其处理方式以及该报文匹配规则集合中的哪条规则。为了使用这项特殊的功能,可在合适的位置插入“跟踪规则”。这些规则会选择被跟踪的报文。假设一个来自 IP 地址 C 的终端正在访问一个 IP 地址是 S 以及端口是 P 的服务。我们想知道报文匹配了哪条 NAT 翻译规则,系统检查了哪些规则,以及报文是否在哪里被丢弃了。 + +由于我们在处理传入连接,所以我们将规则添加到 prerouting 钩子点。 Prerouting 意味着内核尚未决定将报文发往何处。修改目标地址通常会使报文被系统转发,而不是由主机自身处理。 + +### 初始配置 +``` + +``` + +# nft 'add table inet trace_debug' +# nft 'add chain inet trace_debug trace_pre { type filter hook prerouting priority -200000; }' +# nft "insert rule inet trace_debug trace_pre ip saddr $C ip daddr $S tcp dport $P tcp flags syn limit rate 1/second meta nftrace set 1" +``` + +``` + +第一条规则添加了一张新的规则表。这使将来删除和调试规则可以更轻松。单条“nft delete table inet trace_debug”命令就可以删除调试期间临时加入表中的所有规则和链。 + +第二条规则在系统进行路由选择之前(prerouting 钩子点)创建了一个钩子规则,并将其优先级设置为负数,以保证它在连接跟踪流程和 NAT 规则匹配之前被执行。 + +然而最重要的部分是第三条规则的最后一段:“_meta nftrace set 1_″。这条规则会使系统记录所有匹配这条规则的报文所关联的事件。为了尽可能高效地查看跟踪信息(提高信噪比),考虑对跟踪的事件增加一个速率限制以保证其数量处于可管理的范围。一个好的选择是限制每秒钟最多一个报文或一分钟最多一个报文。上述案例记录了所有来自终端 $C 且去往终端 $S 的端口 $P 的所有 SYN 报文和 SYN/ACK 报文。限制速率的配置语句可以防范事件过多导致的洪泛风险。事实上,大多数情况下只记录一个报文就足够了。 + +对于 iptables 用户来讲,配置流程是类似的。等价的配置规则类似于: +``` + +``` + +# iptables -t raw -I PREROUTING -s $C -d $S -p tcp --tcp-flags SYN SYN  --dport $P  -m limit --limit 1/s -j TRACE +``` + +``` + +### 获取跟踪事件 + +原生 nft 工具的用户可以直接运行 nft 进入 nft 跟踪模式: +``` + +``` + +# nft monitor trace +``` + +``` + +这条命令会将收到的报文以及所有匹配该报文的规则打印出来(用 CTRL-C 来停止输出): + +``` + +``` + +trace id f0f627 ip raw prerouting  packet: iif "veth0" ether saddr .. +``` + +``` + +我们将在下一章详细分析该结果。如果您用的是 iptables,首先通过“_iptables –version_” 命令检查一下已安装的版本。例如: + +``` + +``` + +# iptables --version +iptables v1.8.5 (legacy) +``` + +``` + +_(legacy)_ 意味着被跟踪的事件会被记录到内核的环形缓冲区中。您可以用 dmesg 或 journalctl 命令来查看这些时间。这些调试输出缺少一些信息,但和新工具提供的输出从概念上来讲很类似。您将需要首先查看规则被记录下来的行号,并与活跃的 iptables 规则集合手动关联。如果输出显示(nf_tables),您可以使用 xtables-monitor 工具: + +``` + +``` + +# xtables-monitor --trace +``` + +``` + +如果上述命令仅显示版本号,您仍然需要查看 dmesg/journalctl 的输出。xtables-monitor 工具和 nft 监控跟踪工具使用相同的内核接口。它们之间唯一的不同点就是,xtables-monitor 工具会用 iptables 的语法打印事件,且如果您同时使用了 iptables-nft 和 nft,它将不能打印那些使用了 maps/sets 或其他只有 nftables 才支持的功能的规则。 + +### 示例 + +我们假设需要调试一个到虚拟机/容器的端口不通的问题。“ssh -p 1222 10.1.2.3”命令应该可以远程连接那台服务器上的某个容器,但连接请求超时了。 + +您拥有运行那台容器的主机的登陆权限。现在登陆该机器并增加一条跟踪规则。可通过前述案例查看如何增加一个临时的调试规则表。跟踪规则类似于这样: + +``` + +``` + +nft "insert rule inet trace_debug trace_pre ip daddr 10.1.2.3 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1" +``` + +``` + +在添加完上述规则后,运行 _nft monitor trace_ ,在跟踪模式下启动 nft,然后重试刚才失败的 ssh 命令。如果规则集合较大,会出现大量的输出。不用担心这些输出 – 下一节我们会做逐行分析。 + +``` + +``` + +trace id 9c01f8 inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn +trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) +trace id 9c01f8 inet trace_debug trace_pre verdict continue +trace id 9c01f8 inet trace_debug trace_pre policy accept +trace id 9c01f8 inet nat prerouting packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp  tcp dport 1222 tcp flags == syn +trace id 9c01f8 inet nat prerouting rule ip daddr 10.1.2.3  tcp dport 1222 dnat ip to 192.168.70.10:22 (verdict accept) +trace id 9c01f8 inet filter forward packet: iif "enp0" oif "veth21" ether saddr .. ip daddr 192.168.70.10 .. tcp dport 22 tcp flags == syn tcp window 29200 +trace id 9c01f8 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) +trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) +trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn +``` + +``` + +### 对跟踪结果作逐行分析 + +输出结果的第一行是触发后续输出的报文信息。这一行的语法与 nft 规则语法相同,同时还包括了接收报文的首部字段信息。您也可以在这一行找到接收报文的接口名称(此处为“enp0”),报文的源和目的 MAC 地址,报文的源 IP 地址(可能很重要 - 报告问题的人可能选择了一个错误的或非预期的终端),以及 TCP 的源和目的端口。同时您也可以在这一行的开头看到一个“跟踪编号”。该编号标识了匹配跟踪规则的特定报文。第二行包括了该报文匹配的第一条跟踪规则: +``` + +``` + +trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) +``` + +``` + +这就是刚添加的跟踪规则。这里显示的第一条规则总是激活报文跟踪的那一条。如果在这之前还有其他规则,它们将不会在这里显示。如果没有任何跟踪输出结果,说明没有抵达这条跟踪规则,或者没有匹配成功。下面的两行表明没有后续的匹配规则,且“trace_pre”钩子允许报文继续传输(判定为 accept)。 + +下一条匹配规则是 +``` + +``` + +trace id 9c01f8 inet nat prerouting rule ip daddr 10.1.2.3  tcp dport 1222 dnat ip to 192.168.70.10:22 (verdict accept) +``` + +``` + +这条 DNAT 规则设置了一个到其他地址和端口的映射。规则中的参数 192.168.70.10 是需要收包的虚拟机的地址,目前为止没有问题。如果它不是正确的虚拟机地址,说明地址输入错误,或者匹配了错误的 NAT 规则。 + + +### IP 转发 + +通过下面的输出我们可以看到,IP路由引擎告诉IP协议栈说,该报文需要被转发到另一个终端: + + +``` +trace id 9c01f8 inet filter forward packet: iif "enp0" oif "veth21" ether saddr .. ip daddr 192.168.70.10 .. tcp dport 22 tcp flags == syn tcp window 29200 +``` + +这是接收到的报文的另一种呈现形式,但和之前相比有一些有趣的不同。现在的结果有了一个输出接口集合。这在之前不存在是因为之前的规则是在路由决策之前(prerouting 钩子)。跟踪编号和之前一样,因此仍然是相同的报文,但目标地址和端口已经被修改。假设现在还有匹配“TCP 目标端口 1222”的规则,它们将不会对现阶段的报文产生任何影响了。 + +如果该行不包含输出接口(oif),说明路由决策将报文路由到了本机。对路由过程的调试属于另外一个主题,本文不再涉及。 + +``` +trace id 9c01f8 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) +``` + +这条输出表明,报文匹配到了一个跳转到“allowed_dnats”链的规则。下一行则说明了连接失败的根本原因: +``` + +``` + +trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) +``` + +``` + +这条规则无条件地将报文丢弃,因此后续没有关于该报文的日志输出。下一行则是另一个报文的输出结果了: + +``` +trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn +``` + +跟踪编号已经和之前不一样,然后报文的内容却和之前是一样的。这是一个重传尝试:第一个报文被丢弃了,因此 TCP 尝试了重传。可以忽略掉剩余的输出结果了,因为它并没有提供新的信息。现在是时候检查那条链了。 + + +### 规则集合分析 + +上一节我们发现报文在 inet filter 表中的一个名叫“allowed_dnats”的链中被丢弃。现在我们来查看它: +``` + +``` + +# nft list chain inet filter allowed_dnats +table inet filter { + chain allowed_dnats { +  meta nfproto ipv4 ip daddr . tcp dport @allow_in accept +  drop +   } +} +``` + +``` + +这条规则允许目标地址和端口在 @allow_in 集合中的报文经过,其余丢弃。我们通过列出元素的方式,重复检查上述报文的目标地址是否在 @allow_in 集合中: +``` + +``` + +# nft "get element inet filter allow_in { 192.168.70.10 . 22 }" +Error: Could not process rule: No such file or directory +``` + +``` + +不出所料,地址-服务对并没有出现在集合中。我们将其添加到集合中。 +``` + +``` + +# nft "add element inet filter allow_in { 192.168.70.10 . 22 }" +``` + +``` + +现在运行查询命令,它将返回新添加的元素。 + +``` +# nft "get element inet filter allow_in { 192.168.70.10 . 22 }" +table inet filter { + set allow_in { + type ipv4_addr . inet_service + elements = { 192.168.70.10 . 22 } + } +} +``` + +ssh 命令现在应该可以工作且跟踪结果可以反映出该变化: + +``` +trace id 497abf58 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) +``` + +``` +trace id 497abf58 inet filter allowed_dnats rule meta nfproto ipv4 ip daddr . tcp dport @allow_in accept (verdict accept) +``` + +``` +trace id 497abf58 ip postrouting packet: iif "enp0" oif "veth21" ether .. trace id 497abf58 ip postrouting policy accept +``` + +这表明报文通过了转发路径中的最后一个钩子 - postrouting。 + +如果现在仍然无法连接,问题可能处在报文流程的后续阶段,有可能并不在 nftables 的规则集合范围之内。 + +### 总结 + +本文介绍了如何通过 nftables 的跟踪机制检查丢包或其他类型的连接问题。本系列的下一篇文章将展示如何检查连接跟踪系统和可能与连接跟踪流相关的 NAT 信息。 + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/ + +作者:[Florian Westphal][a] +选题:[lujun9972][b] +译者:[cooljelly](https://github.com/cooljelly) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/strlen/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2020/12/network-address-translation-part-1-816x346.png From 61ea13874dcce5bd0dcf92fdd2c78bc317ee938e Mon Sep 17 00:00:00 2001 From: MjSeven Date: Wed, 5 May 2021 20:14:49 +0800 Subject: [PATCH 090/170] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 Cross-compiling made easy with Golang.md | 234 ------------------ ...4 Cross-compiling made easy with Golang.md | 228 +++++++++++++++++ 2 files changed, 228 insertions(+), 234 deletions(-) delete mode 100644 sources/tech/20210114 Cross-compiling made easy with Golang.md create mode 100644 translated/tech/20210114 Cross-compiling made easy with Golang.md diff --git a/sources/tech/20210114 Cross-compiling made easy with Golang.md b/sources/tech/20210114 Cross-compiling made easy with Golang.md deleted file mode 100644 index 7e359112b4..0000000000 --- a/sources/tech/20210114 Cross-compiling made easy with Golang.md +++ /dev/null @@ -1,234 +0,0 @@ -[#]: collector: (lujun9972) -[#]: translator: (MjSeven) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) -[#]: subject: (Cross-compiling made easy with Golang) -[#]: via: (https://opensource.com/article/21/1/go-cross-compiling) -[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe) - -Cross-compiling made easy with Golang -====== -I learned about Go's cross-compilation capabilities by stepping out of -my comfort zone. -![Person using a laptop][1] - -I work with multiple servers with various architectures (e.g., Intel, AMD, Arm, etc.) when I'm testing software on Linux. Once I've [provisioned a Linux box][2] and the server meets my testing needs, I still have a number of steps to do: - - 1. Download and install prerequisite software. - 2. Verify whether new test packages for the software I'm testing are available on the build server. - 3. Get and set the required yum repos for the dependent software packages. - 4. Download and install the new test packages (based on step #2). - 5. Get and set up the required SSL certificates. - 6. Set up the test environment, get the required Git repos, change configurations in files, restart daemons, etc. - 7. Do anything else that needs to be done. - - - -### Script it all away - -These steps are so routine that it makes sense to automate them and save the script to a central location (like a file server) where I can download it when I need it. I did this by writing a 100–120-line Bash shell script that does all the configuration for me (including error checks). The script simplifies my workflow by: - - 1. Provisioning a new Linux system (of the architecture under test) - 2. Logging into the system and downloading the automated shell script from a central location - 3. Running it to configure the system - 4. Starting the testing - - - -### Enter Go - -I've wanted to learn [Golang][3] for a while, and converting my beloved shell script into a Go program seemed like a good project to help me get started. The syntax seemed fairly simple, and after trying out some test programs, I set out to advance my knowledge and become familiar with the Go standard library. - -It took me a week to write the Go program on my laptop. I tested my program often on my go-to x86 server to weed our errors and improve the program. Everything worked fine. - -I continued relying on my shell script until I finished the Go program. Then I pushed the binary onto a central file server so that every time I provisioned a new server, all I had to do was wget the binary, set the executable bit on, and run the binary. I was happy with the early results: - - -``` -$ wget <myuser>/bins/prepnode -$ chmod  +x ./prepnode -$ ./prepnode -``` - -### And then, an issue - -The next week, I provisioned a fresh new server from the pool, as usual, downloaded the binary, set the executable bit, and ran the binary. It errored out—with a strange error: - - -``` -$ ./prepnode -bash: ./prepnode: cannot execute binary file: Exec format error -$ -``` - -At first, I thought maybe the executable bit was not set. However, it was set as expected: - - -``` -$ ls -l prepnode --rwxr-xr-x. 1 root root 2640529 Dec 16 05:43 prepnode -``` - -What happened? I didn't make any changes to the source code, the compilation threw no errors nor warnings, and it worked well the last time I ran it, so I looked more closely at the error message, `format error`. - -I checked the binary's format, and everything looked OK: - - -``` -$ file prepnode -prepnode: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped -``` - -I quickly ran the following command to identify the architecture of the test server I provisioned and where the binary was trying to run. It was Arm64 architecture, but the binary I compiled (on my x86 laptop) was generating an x86-64 format binary: - - -``` -$ uname -m -aarch64 -``` - -### Compilation 101 for scripting folks - -Until then, I had never accounted for this scenario (although I knew about it). I primarily work on scripting languages (usually Python) coupled with shell scripting. The Bash shell and the Python interpreter are available on most Linux servers of any architecture. Hence, everything had worked well before. - -However, now I was dealing with a compiled language, Go, which produces an executable binary. The compiled binary consists of [opcodes][4] or assembly instructions that are tied to a specific architecture. That's why I got the format error. Since the Arm64 CPU (where I ran the binary) could not interpret the binary's x86-64 instructions, it errored out. Previously, the shell and Python interpreter took care of the underlying opcodes or architecture-specific instructions for me. - -### Cross-compiling with Go - -I checked the Golang docs and discovered that to produce an Arm64 binary, all I had to do was set two environment variables when compiling the Go program before running the `go build` command. - -`GOOS` refers to the operating system (Linux, Windows, BSD, etc.), while `GOARCH` refers to the architecture to build for. - - -``` -`$ env GOOS=linux GOARCH=arm64 go build -o prepnode_arm64` -``` - -After building the program, I reran the `file` command, and this time it showed Arm AArch64 instead of the x86 it showed before. Therefore, I was able to build a binary for a different architecture than the one on my laptop: - - -``` -$ file prepnode_arm64 -prepnode_arm64: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, not stripped -``` - -I copied the binary onto the Arm server from my laptop. Now, running the binary (after setting the executable bit on) produced no errors: - - -``` -$ ./prepnode_arm64  -h -Usage of ./prepnode_arm64: -  -c    Clean existing installation -  -n    Do not start test run (default true) -  -s    Use stage environment, default is qa -  -v    Enable verbose output -``` - -### What about other architectures? - -x86 and Arm are two of the five architectures I test software on. I was worried that Go might not support the other ones, but that was not the case. You can find out which architectures Go supports with: - - -``` -`$ go tool dist list` -``` - -Go supports a variety of platforms and operating systems, including: - - * AIX - * Android - * Darwin - * Dragonfly - * FreeBSD - * Illumos - * JavaScript - * Linux - * NetBSD - * OpenBSD - * Plan 9 - * Solaris - * Windows - - - -To find the specific Linux architectures it supports, run: - - -``` -`$ go tool dist list | grep linux` -``` - -As the output below shows, Go supports all of the architectures I use. Although x86_64 is not on the list, AMD64 is compatible with x86_64, so you can produce an AMD64 binary, and it will run fine on x86 architecture: - - -``` -$ go tool dist list | grep linux -linux/386 -linux/amd64 -linux/arm -linux/arm64 -linux/mips -linux/mips64 -linux/mips64le -linux/mipsle -linux/ppc64 -linux/ppc64le -linux/riscv64 -linux/s390x -``` - -### Handling all architectures - -Generatiing binaries for all of the architectures under my test is as simple as writing a tiny shell script from my x86 laptop: - - -``` -#!/usr/bin/bash -archs=(amd64 arm64 ppc64le ppc64 s390x) - -for arch in ${archs[@]} -do -        env GOOS=linux GOARCH=${arch} go build -o prepnode_${arch} -done - -[/code] [code] - -$ file prepnode_* -prepnode_amd64:   ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=y03MzCXoZERH-0EwAAYI/p909FDnk7xEUo2LdHIyo/V2ABa7X_rLkPNHaFqUQ6/5p_q8MZiR2WYkA5CzJiF, not stripped -prepnode_arm64:   ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, Go BuildID=q-H-CCtLv__jVOcdcOpA/CywRwDz9LN2Wk_fWeJHt/K4-3P5tU2mzlWJa0noGN/SEev9TJFyvHdKZnPaZgb, not stripped -prepnode_ppc64:   ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=DMWfc1QwOGIq2hxEzL_u/UE-9CIvkIMeNC_ocW4ry/r-7NcMATXatoXJQz3yUO/xzfiDIBuUxbuiyaw5Goq, not stripped -prepnode_ppc64le: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=C6qCjxwO9s63FJKDrv3f/xCJa4E6LPVpEZqmbF6B4/Mu6T_OR-dx-vLavn1Gyq/AWR1pK1cLz9YzLSFt5eU, not stripped -prepnode_s390x:   ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=faC_HDe1_iVq2XhpPD3d/7TIv0rulE4RZybgJVmPz/o_SZW_0iS0EkJJZHANxx/zuZgo79Je7zAs3v6Lxuz, not stripped -``` - -Now, whenever I provision a new machine, I just run this wget command to download the binary for a specific architecture, set the executable bit on, and run the binary: - - -``` -$ wget <myuser>/bins/prepnode_<arch> -$ chmod +x ./prepnode_<arch> -$ ./prepnode_<arch> -``` - -### But why? - -You may be wondering why I didn't save all of this hassle by sticking to shell scripts or porting the program over to Python instead of a compiled language. All fair points. But then I wouldn't have learned about Go's cross-compilation capabilities and how programs work underneath the hood when they're executing on the CPU. In computing, there are always trade-offs to be considered, but never let them stop you from learning. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/1/go-cross-compiling - -作者:[Gaurav Kamathe][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/gkamathe -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop) -[2]: https://opensource.com/article/20/12/linux-server -[3]: https://golang.org/ -[4]: https://en.wikipedia.org/wiki/Opcode diff --git a/translated/tech/20210114 Cross-compiling made easy with Golang.md b/translated/tech/20210114 Cross-compiling made easy with Golang.md new file mode 100644 index 0000000000..c0a6e08bfb --- /dev/null +++ b/translated/tech/20210114 Cross-compiling made easy with Golang.md @@ -0,0 +1,228 @@ +[#]: collector: "lujun9972" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " +[#]: subject: "Cross-compiling made easy with Golang" +[#]: via: "https://opensource.com/article/21/1/go-cross-compiling" +[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" + +Golang 的交叉编译 +====== +通过走出我的舒适区,我了解了 Go 的交叉编译功能。 +![Person using a laptop][1] + +在 Linux 上测试软件时,我使用各种架构的服务器,例如 Intel、AMD、Arm 等。当我[配置了 Linux 机器][2] 并且当服务器满足我的测试需求后,我仍然需要执行许多步骤: + + 1. 下载并安装必备软件 + 2. 验证构建服务器上是否有新的测试软件包 + 3. 获取并设置依赖软件包所需的 yum 仓库 + 4. 下载并安装新的测试软件包(基于步骤 2) + 5. 获取并设置必需的 SSL 证书 + 6. 设置测试环境,获取所需的 Git 仓库,更改配置,重新启动守护进程等 + 7. 做其他需要做的事情 + +### 自动化 + +这些步骤非常固定,以至于有必要对其进行自动化并将脚本保存到中央位置(例如文件服务器),在需要时可以在此处下载脚本。为此,我编写了 100-120 行的 Bash shell 脚本,它为我完成了所有配置(包括错误检查)。它简化了我的工作流程,通过: + + 1. 配置新的 Linux 系统(支持测试的架构) + 2. 登录系统并从中央位置下载自动化 shell 脚本 + 3. 运行它来配置系统 + 4. 开始测试 + +### Go 来了 + +我想学习 [Golang][3] 有一段时间了,将我心爱的 Shell 脚本转换为 Go 程序似乎是一个很好的项目,可以帮助我入门。语法看起来很简单,在尝试了一些测试程序后,我开始着手提高自己的知识并熟悉 Go 标准库。 + +我花了一个星期的时间在笔记本电脑上编写 Go 程序。我经常在我的 x86 服务器上测试程序,清除错误并使程序健壮起来,一切都很顺利。 + +我继续依赖自己的 shell 脚本,直到完全转换到 Go 程序为止。然后,我将二进制文件推送到中央文件服务器上,以便每次配置新服务器时,我要做的就是获取二进制文件,将可执行标志打开,然后运行二进制文件。我对早期的结果很满意: + + +```bash +$ wget http://file.example.com//bins/prepnode +$ chmod +x ./prepnode +$ ./prepnode +``` + +### 然后,出现了一个问题 + +第二周,我从资源池中配置了一个新的服务器,像往常一样,我下载了二进制文件,设置了可执行标志,然后运行二进制文件。但这次它出错了,是一个奇怪的错误: + + +```bash +$ ./prepnode +bash: ./prepnode: cannot execute binary file: Exec format error +$ +``` + +起初,我以为可能没有成功设置可执行标志。但是,它已按预期设置: + + +```bash +$ ls -l prepnode +-rwxr-xr-x. 1 root root 2640529 Dec 16 05:43 prepnode +``` + +发生了什么事?我没有对源代码进行任何更改,编译没有引发任何错误或警告,而且上次运行时效果很好,因此我仔细查看了错误消息 `format error`。 + +我检查了二进制文件的格式,一切看起来都没问题: + + +```bash +$ file prepnode +prepnode: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped +``` + +我迅速运行了以下命令,识别所配置的测试服务器的架构以及二进制试图运行的平台。它是 Arm64 架构,但是我编译的二进制文件(在我的 x86 笔记本电脑上)生成的是 x86-64 格式的二进制文件: + + +```bash +$ uname -m +aarch64 +``` + +### 面向脚本编写人员的编译第一课 + +在那之前,我从未考虑过这种情况(尽管我知道这一点)。我主要研究脚本语言(通常是 Python)以及 Shell 脚本。在任何架构的大多数 Linux 服务器上都可以使用 Bash Shell 和 Python 解释器。总之,之前一切都很顺利。 + +但是,现在我正在处理 Go 这种编译语言,它生成可执行的二进制文件。编译的二进制文件包括特定架构的[指令码][4] 或汇编指令,这就是为什么我收到格式错误的原因。由于 Arm64 CPU(运行二进制文件的地方)无法解释二进制文件的 x86-64 指令,因此它抛出错误。以前,shell 和 Python 解释器为我处理了底层指令码或特定架构的指令。 + +### Go 的交叉编译 + +我检查了 Golang 的文档,发现要生成 Arm64 二进制文件,我要做的就是在运行 `go build` 命令编译 Go 程序之前设置两个环境变量。 + +`GOOS` 指的是操作系统,例如 Linux、Windows、BSD 等,而 `GOARCH` 指的是要在哪种架构上构建程序。 + + +```bash +$ env GOOS=linux GOARCH=arm64 go build -o prepnode_arm64 +``` + +构建程序后,我重新运行 `file` 命令,这一次它显示的是 Arm AArch64,而不是之前显示的 x86。因此,我在我的笔记本上能为不同的架构构建二进制文件。 + + +```bash +$ file prepnode_arm64 +prepnode_arm64: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, not stripped +``` + +我将二进制文件从笔记本电脑复制到 Arm 服务器上。现在运行二进制文件(将可执行标志打开)不会产生任何错误: + + +```bash +$ ./prepnode_arm64  -h +Usage of ./prepnode_arm64: +  -c    Clean existing installation +  -n    Do not start test run (default true) +  -s    Use stage environment, default is qa +  -v    Enable verbose output +``` + +### 其他架构呢? + +x86 和 Arm 是我测试软件所支持的 5 中架构中的两种,我担心 Go 可能不会支持其它架构,但事实并非如此。你可以查看 Go 支持的架构: + + +```bash +$ go tool dist list +``` + +Go 支持多种平台和操作系统,包括: + + * AIX + * Android + * Darwin + * Dragonfly + * FreeBSD + * Illumos + * JavaScript + * Linux + * NetBSD + * OpenBSD + * Plan 9 + * Solaris + * Windows + +要查找其支持的特定 Linux 架构,运行: + + +```bash +$ go tool dist list | grep linux +``` + +如下面的输出所示,Go 支持我使用的所有体系结构。尽管 x86_64 不在列表中,但 AMD64 兼容 x86-64,所以你可以生成 AMD64 二进制文件,它可以在 x86 架构上正常运行: + + +```bash +$ go tool dist list | grep linux +linux/386 +linux/amd64 +linux/arm +linux/arm64 +linux/mips +linux/mips64 +linux/mips64le +linux/mipsle +linux/ppc64 +linux/ppc64le +linux/riscv64 +linux/s390x +``` + +### 处理所有架构 + +为我测试的所有体系结构生成二进制文件,就像从我的 x86 笔记本电脑编写一个微小的 shell 脚本一样简单: + + +```shell +#!/usr/bin/bash +archs=(amd64 arm64 ppc64le ppc64 s390x) + +for arch in ${archs[@]} +do + env GOOS=linux GOARCH=${arch} go build -o prepnode_${arch} +done + +``` + +``` +$ file prepnode_* +prepnode_amd64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=y03MzCXoZERH-0EwAAYI/p909FDnk7xEUo2LdHIyo/V2ABa7X_rLkPNHaFqUQ6/5p_q8MZiR2WYkA5CzJiF, not stripped +prepnode_arm64: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, Go BuildID=q-H-CCtLv__jVOcdcOpA/CywRwDz9LN2Wk_fWeJHt/K4-3P5tU2mzlWJa0noGN/SEev9TJFyvHdKZnPaZgb, not stripped +prepnode_ppc64: ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=DMWfc1QwOGIq2hxEzL_u/UE-9CIvkIMeNC_ocW4ry/r-7NcMATXatoXJQz3yUO/xzfiDIBuUxbuiyaw5Goq, not stripped +prepnode_ppc64le: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, version 1 (SYSV), statically linked, Go BuildID=C6qCjxwO9s63FJKDrv3f/xCJa4E6LPVpEZqmbF6B4/Mu6T_OR-dx-vLavn1Gyq/AWR1pK1cLz9YzLSFt5eU, not stripped +prepnode_s390x: ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), statically linked, Go BuildID=faC_HDe1_iVq2XhpPD3d/7TIv0rulE4RZybgJVmPz/o_SZW_0iS0EkJJZHANxx/zuZgo79Je7zAs3v6Lxuz, not stripped +``` + +现在,每当配置一台新机器时,我就运行以下 wget 命令下载特定体系结构的二进制文件,将可执行标志打开,然后运行: + + +```bash +$ wget http://file.domain.com//bins/prepnode_ +$ chmod +x ./prepnode_ +$ ./prepnode_ +``` + +### 为什么? + +你可能想知道,为什么我没有坚持使用 shell 脚本或将程序移植到 Python 而不是编译语言上来避免这些麻烦。所以有舍有得,那样的话我不会了解 Go 的交叉编译功能,以及程序在 CPU 上执行时的底层工作原理。在计算机中,总要考虑取舍,但绝不要让它们阻碍你的学习。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/1/go-cross-compiling + +作者:[Gaurav Kamathe][a] +选题:[lujun9972][b] +译者:[MjSeven](https://github.com/MjSeven) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/gkamathe +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD "Person using a laptop" +[2]: https://opensource.com/article/20/12/linux-server +[3]: https://golang.org/ +[4]: https://en.wikipedia.org/wiki/Opcode \ No newline at end of file From bb9074ff4be2a23b51e2f61c69f8fcf74c85624f Mon Sep 17 00:00:00 2001 From: MjSeven Date: Wed, 5 May 2021 21:29:08 +0800 Subject: [PATCH 091/170] Translating --- sources/tech/20210412 Scheduling tasks with cron.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210412 Scheduling tasks with cron.md b/sources/tech/20210412 Scheduling tasks with cron.md index 5f0e427d42..0e61f10985 100644 --- a/sources/tech/20210412 Scheduling tasks with cron.md +++ b/sources/tech/20210412 Scheduling tasks with cron.md @@ -2,7 +2,7 @@ [#]: via: (https://fedoramagazine.org/scheduling-tasks-with-cron/) [#]: author: (Darshna Das https://fedoramagazine.org/author/climoiselle/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (MjSeven) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From d4f0b57e17f42fe86f8a53407eeef956e5e4c1d4 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 6 May 2021 05:03:29 +0800 Subject: [PATCH 092/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210505=20?= =?UTF-8?q?What=20Google=20v.=20Oracle=20means=20for=20open=20source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210505 What Google v. Oracle means for open source.md --- ... Google v. Oracle means for open source.md | 130 ++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 sources/tech/20210505 What Google v. Oracle means for open source.md diff --git a/sources/tech/20210505 What Google v. Oracle means for open source.md b/sources/tech/20210505 What Google v. Oracle means for open source.md new file mode 100644 index 0000000000..5897151074 --- /dev/null +++ b/sources/tech/20210505 What Google v. Oracle means for open source.md @@ -0,0 +1,130 @@ +[#]: subject: (What Google v. Oracle means for open source) +[#]: via: (https://opensource.com/article/21/5/google-v-oracle) +[#]: author: (Jeffrey Robert Kaufman https://opensource.com/users/jkaufman) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +What Google v. Oracle means for open source +====== +The Supreme Court's decision adds clarity around the fair use of APIs +that will help software developers. +![Two government buildings][1] + +Google v. Oracle has finally concluded in a sweeping [6-2 decision by the US Supreme Court][2] favoring Google and adding further clarity on the freedom to use application programming interfaces (APIs). Software developers can benefit from this decision. + +The open source community has closely followed the litigation between Google and Oracle due to its potential impact on the reuse of APIs. It has been assumed for many decades that APIs are not protected by copyright and are free to use by anyone to both create new and improved software modules and to integrate with existing modules that use such interfaces. + +This case involves Google's use of a certain portion of the API from Oracle's Java SE when Google created Android. This case went through over 10 years of protracted litigation in the lower courts. The US Court of Appeals for the Federal Circuit (CAFC) had previously held that 1) Oracle's copyright in a portion of the Java SE API copied by Google was copyrightable, and 2) Google's use was not excused as fair use under the law. This meant that Google would have been liable for copyright infringement for that portion of Oracle's Java SE API used in Android. If this holding were left to stand, it would not only have been a loss for Google but also for the software development community, including open source. + +Unrestricted use of APIs has been the norm for decades and a key driver of innovation, including the modern internet and countless software modules and devices that communicate with each other using such interfaces. The fact is, the software industry was rarely concerned about the use of APIs until Oracle decided to make a federal case about it. + +It is unfortunate that the software industry was put through this turmoil for over a decade. However, the Supreme Court's decision provides a new explanation and framework for analyzing use of software interfaces, and it is largely good news. In short, while the court did not overturn the copyrightability ruling, which would have been the best news from the perspective of software developers, it ruled strongly in favor of Google on whether Google's use was a fair use as a matter of law. + +### What is an API? It depends who you ask + +Before I begin a more detailed description of this case and what the result means for software developers, I need to define an API. This is a significant source of confusion and made worse by the court adopting a definition that does not reflect the conventional meaning. + +The Supreme Court uses the following diagram to describe what it refers to as an API: + +![Sun Java API diagram][3] + +(Source: Google LLC v. Oracle America, Inc., [No. 18-956][2], US Apr. 5, 2021; pg. 38) + +In the court's definition, an API includes both "declaring code" and "implementing code"—terms adopted by the court, although they are not used by developers in Java or other programming languages. The declaring code (what Java developers call the method declaration) declares the name of the method and its inputs and outputs. In the example above, the declaring code declares the method name, "max," and further declares that it receives two integers, "x" and "y," and returns an integer of the result. + +Implementing code (what Java developers call the method body) consists of instructions that implement the functions of the method. So in the example above, the implementing code would use computer instructions and logic to determine whether x or y is the larger number and return the larger number. + +At issue in this case was the declaring code only. Google was accused of copying portions of the declaring code of Java SE for use in Android and the "structure, sequence, and organization" of that declaring code. In the final stages of this case, Google was not accused of copying any implementing code. The parties in the case acknowledged that Google wrote its own implementing code for Android. + +The declaring code is what most people would refer to as an API; not the court's definition of an API that combines the declaring code and implementing code. The declaring code is, in essence, a "software interface" allowing access to a software module's various methods. Said another way, it allows one software module to interface, pass information to/from, and control another software module. + +I will refer to the declaring code as a "software interface," as that is what concerns the industry in this case. Software interfaces under this definition exclude any implementing code. + +### Now, with that out the way…. + +Here is a more detailed explanation of what the Supreme Court case specifically means. + +Google was accused of copying certain declaring code of Java SE for use in Android. Not only did it copy the names of many of the methods but, in doing so, it copied the structure, sequence, and organization of that declaring code (e.g., how the code was organized into packages, classes, and the like). Structure, sequence, and organization (SSO) may be protectable under US copyright law. This case bounced around the courts for many years, and the history is fascinating for legal scholars. However, for our purposes, I'll just cut to the chase. + +If a work is not protected by copyright, then it generally may be used without restriction. Google argued strenuously that the declaring code it copied was just that—not protectable by copyright. Arguments to support its non-copyrightability include that it is an unprotectable method or system of operation that is clearly written in US copyright laws as outside the scope of protection. In fact, this is an argument Red Hat and IBM made in their ["friend of the court" brief][4] filed with the Supreme Court in January 2020. If the court held that the declaring code copied by Google was not copyrightable, this would have been the end of the story and the absolute best situation for the developer community. + +Unfortunately, we did not get that from the court, but we got the next best thing. + +As a corollary to what I just said, you may get yourself in legal jeopardy by copying or modifying someone else's copyrighted work, such as a book, picture, or even software, without permission from the copyright owner. This is because the owner of the copyrighted work has the exclusive right to copy and make changes (also known as derivative works). So unless you have a license (which could be an open source license or a proprietary license) or a fair use defense, you cannot copy or change someone else's copyrighted work. Fair use is a defense to using someone's copyrighted work, which I'll discuss shortly. + +The good news is that the Supreme Court did not rule that Oracle's declaring code was copyrightable. It explicitly chose to sidestep this question and to decide the case on narrower grounds. But it also seemed to indicate support for the position that declaring code, if copyrightable at all, is further from what the court considers to be the core of copyright.[1][5] It is possible that future lower courts may hold that software interfaces are not copyrightable. (See the end of this article for a fuller description of this issue.) This is good news. + +What the Supreme Court did instead is to assume for argument's sake that Oracle had a valid copyright on the declaring code (i.e., software interface) and, on this basis, it asked whether Google's use was a fair-use defense. The result was a resounding yes! + +### When is fair use fair? + +The Supreme Court decision held that Google's use of portions of Java SE declaring code is fair use. Fair use is a defense to copyright infringement in that if you are technically violating someone's copyright, your use may be excused under fair use. Academia is one example (among many) where fair use can provide a strong defense in many cases. + +This is where the court began to analyze each factor of fair use to see if and how it could apply to Google's situation. Being outside academia, where it is relatively easier to decide such issues, this situation required a more careful analysis of each of the fair-use factors under the law. + +Fair use is a factor test. There are four factors described in US copyright law that are used to determine whether fair use is applicable (although other factors can also be considered by the court). For a fuller description of fair use, see this [article by the US Copyright Office][6]. The tricky thing with fair use is that not all factors need to be present, and one factor may not have as much weight as another. Some factors may even be related and push and pull against each other, depending on the facts in the case. The fortunate result of the Supreme Court decision is it decided in favor of Google on fair use on all four of the statutory factors and in a 6-2 decision. This is not a situation that was right on the edge; far from it. + +### Implications for software developers + +Below, I will provide my perspective on what a software developer or attorney should consider when evaluating whether the reuse of a software interface is fair use under the law. This perspective is based on the recent Supreme Court ruling. The following should serve as guideposts to help you provide more opportunities for a court to view your use as fair use in the unlikely scenario that 1) your use of a software interface is ever challenged, and 2) that the software interface is held to be copyrightable…which it may never be since the Supreme Court did not hold that they are copyrightable. It instead leaves this question to the lower courts to decide. + +Before I jump into this, a brief discussion of use cases is in order. + +There are two major use cases for software interface usage. In the Google case, it was reimplementing portions of the Java SE software interface for Android. This means it kept the same declaring code and rewrote all of the applicable implementation code for each method declaration. I refer to that as "reimplementation," and it is akin to the right side of the diagram above used in the Supreme Court decision. This is very common in the open source community: a module has a software interface that many other software systems and modules may utilize, and a creative developer improves that module by creating new and improved implementations in the form of new implementing code. By using the same declaring code for each improved method, the preexisting software systems and modules may use the improved module without rewriting any of the code, or perhaps doing minimal rewriting. This is a huge benefit and supercharges the open source development ecosystem. + +A second common use case, shown on the left side of the diagram, uses a software interface to enable communication and control between one software module and another. This allows one module to invoke the various methods in another module using that software interface. Although this second use case was not specifically addressed in the Supreme Court decision, it is my view that such use may have an even stronger argument for non-copyrightability and a fair-use defense in all but the most unusual circumstances. + +### 4 tips for complying with fair use + +Whether you are simply using a software interface to effectuate control and communication to another software module or reimplementing an existing software module with your own new and improved implementation code, the following guidelines will help you maintain your usage within fair use based on the Supreme Court's latest interpretation. + + 1. For both use cases described above, use no more of the software interface than what is required to enable interaction with another software module. Also, be aware of how much of the work you are copying. The less you copy of the whole, the greater the weight of this fair-use factor bends in your favor. + 2. Write your own implementation code when reimplementing and improving an existing module. + 3. Avoid using any of the other module's implementation code, except any declaring code that may have been replicated in whole or in part in the other module's implementation code. This happens sometimes, and it is often unavoidable. + 4. Make your implementation as transformative as possible. This means adding something new with a further purpose or different character. In Google's situation, it transformed portions of Java SE to be better utilized in a mobile environment. This was seen as a factor in the case. + + + +### Can APIs be copyrighted? + +So what about copyrightability of APIs and this odd situation of the Supreme Court not ruling on the issue? Does this mean that APIs are actually copyrightable? Otherwise, why do we have to do a fair-use analysis? Excellent questions! + +The answer is maybe, but in my view, unlikely in most jurisdictions. In a weird quirk, this case was appealed from the initial trial court to the CAFC and not to the 9th US Circuit Court of Appeals, which would have been the traditional route of appeal for cases heard in the San Francisco-based trial court. The CAFC does not ordinarily hear copyright cases like Oracle v. Google.[2][7] While the CAFC applied 9th Circuit law in deciding the case, the 9th Circuit should not be bound by that decision. + +There are 13 federal appellate courts in the United States. So although the CAFC (but not the US Supreme Court) decided that software interfaces are protected by copyright, its decision is not binding on other appellate courts or even on the CAFC, except in the rare circumstance where the CAFC is applying 9th Circuit law. The decision, however, could be "persuasive" in other cases examining copyrightability in the 9th Circuit. There is only a very small subset of cases and situations where the CAFC ruling on copyrightability would be binding in our appellate court system. + +_But even if the CAFC hears a case on software interfaces based on 9th (or another) Circuit law and decides that a certain software interface is protected by copyright under such law, we still have this very broad and powerful Supreme Court decision that provides a clear framework and powerful message on the usefulness of the fair-use doctrine as a viable defense to such use._ + +Will your use of another's software interface ever be challenged? As I stated, reuse of software interfaces has been going on for decades with little fanfare until this case. + +* * * + +1. “In our view, ... the declaring code is, if copyrightable at all, further than are most computer programs (such as the implementing code) from the core of copyright.”  Google LLC v. Oracle America, Inc., No. 18-956, (US, Apr. 5, 2021) + +2. The CAFC heard the case only because it was originally tied to a patent claim, which eventually dropped off the case. If not for the patent claim, this case would have been heard by the 9th Circuit Court of Appeals. + +Web APIs have become ubiquitous in the industry, but many organizations are struggling to create... + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/google-v-oracle + +作者:[Jeffrey Robert Kaufman][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jkaufman +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/LAW_lawdotgov2.png?itok=n36__lZj (Two government buildings) +[2]: https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf +[3]: https://opensource.com/sites/default/files/uploads/supremecourt_api_definition.png (Sun Java API diagram) +[4]: https://www.redhat.com/en/blog/red-hat-statement-us-supreme-court-decision-google-v-oracle +[5]: tmp.gvGY7lfUHR#1 +[6]: https://www.copyright.gov/title17/92chap1.html#107 +[7]: tmp.gvGY7lfUHR#2 From b92f843c83ba4283bbe3722a715fa713ca7a4083 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Thu, 6 May 2021 05:03:43 +0800 Subject: [PATCH 093/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210505=20?= =?UTF-8?q?Drop=20telnet=20for=20OpenSSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210505 Drop telnet for OpenSSL.md --- .../tech/20210505 Drop telnet for OpenSSL.md | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 sources/tech/20210505 Drop telnet for OpenSSL.md diff --git a/sources/tech/20210505 Drop telnet for OpenSSL.md b/sources/tech/20210505 Drop telnet for OpenSSL.md new file mode 100644 index 0000000000..76a39ad88f --- /dev/null +++ b/sources/tech/20210505 Drop telnet for OpenSSL.md @@ -0,0 +1,195 @@ +[#]: subject: (Drop telnet for OpenSSL) +[#]: via: (https://opensource.com/article/21/5/drop-telnet-openssl) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Drop telnet for OpenSSL +====== +Telnet's lack of encryption makes OpenSSL a safer option for connecting +to remote systems. +![Lock][1] + +The [telnet][2] command is one of the most popular network troubleshooting tools for anyone from systems administrators to networking hobbyists. In the early years of networked computing, telnet was used to connect to a remote system. You could use telnet to access a port on a remote system, log in, and run commands on that host. + +Due to telnet's lack of encryption, it has largely been replaced by OpenSSL for this job. Yet telnet's relevance persisted (and persists in some cases even today) as a sort of intelligent `ping`. While the `ping` command is a great way to probe a host for responsiveness, that's _all_ it can do. Telnet, on the other hand, not only confirms an active port, but it can also interact with a service on that port. Even so, because most modern network services are encrypted, telnet can be far less useful depending on what you're trying to achieve. + +### OpenSSL s_client + +For most tasks that once required telnet, I now use OpenSSL's `s_client` command. (I use [curl][3] for some tasks, but those are cases where I probably wouldn't have used telnet anyway.) Most people know [OpenSSL][4] as a library and framework for encryption, but not everyone realizes it's also a command. The `s_client` component of the `openssl` command implements a generic SSL or TLS client, helping you connect to a remote host using SSL or TLS. It's intended for testing and, internally at least, uses the same functionality as the library. + +### Install OpenSSL + +OpenSSL may already be installed on your Linux system. If not, you can install it with your distribution's package manager: + + +``` +`$ sudo dnf install openssl` +``` + +On Debian or similar: + + +``` +`$ sudo apt install openssl` +``` + +Once it's installed, verify that it responds as expected: + + +``` +$ openssl version +OpenSSL x.y.z FIPS +``` + +### Verify port access + +The most basic telnet usage is a task that looks something like this: + + +``` +$ telnet mail.example.com 25 +Trying 98.76.54.32... +Connected to example.com. +Escape character is '^]'. +``` + +This opens an interactive session with (in this example) whatever service is listening on port 25 (probably a mail server). As long as you gain access, you can communicate with the service. + +Should port 25 be inaccessible, the connection is refused. + +OpenSSL is similar, although usually less interactive. To verify access to a port: + + +``` +$ openssl s_client -connect example.com:80 +CONNECTED(00000003) +140306897352512:error:1408F10B:SSL [...] + +no peer certificate available + +No client certificate CA names sent + +SSL handshake has read 5 bytes and written 309 bytes +Verification: OK + +New, (NONE), Cipher is (NONE) +Secure Renegotiation IS NOT supported +Compression: NONE +Expansion: NONE +No ALPN negotiated +Early data was not sent +Verify return code: 0 (ok) +``` + +This is little more than a targeted ping, though. As you can see from the output, no SSL certificate was exchanged, so the connection immediately terminated. To get the most out of `openssl s_client`, you must target the encrypted port. + +### Interactive OpenSSL + +Web browsers and web servers interact such that traffic directed at port 80 is actually forwarded to 443, the port reserved for encrypted HTTP traffic. Knowing this, you can navigate to encrypted ports with the `openssl` command and interact with whatever web service is running on it. + +First, make a connection to a port using SSL. Using the `-showcerts` option causes the SSL certificate to print to your terminal, making the initial output a lot more verbose than telnet: + + +``` +$ openssl s_client -connect example.com:443 -showcerts +[...] +    0080 - 52 cd bd 95 3d 8a 1e 2d-3f 84 a0 e3 7a c0 8d 87   R...=..-?...z... +    0090 - 62 d0 ae d5 95 8d 82 11-01 bc 97 97 cd 8a 30 c1   b.............0. +    00a0 - 54 78 5c ad 62 5b 77 b9-a6 35 97 67 65 f5 9b 22   Tx\\.b[w..5.ge.." +    00b0 - 18 8a 6a 94 a4 d9 7e 2f-f5 33 e8 8a b7 82 bd 94   ..j...~/.3...... + +    Start Time: 1619661100 +    Timeout   : 7200 (sec) +    Verify return code: 0 (ok) +    Extended master secret: no +    Max Early Data: 0 +- +read R BLOCK +``` + +You're left in an interactive session. Eventually, this session will close, but if you act promptly, you can send HTTP signals to the server: + + +``` +[...] +GET / HTTP/1.1 +HOST: example.com +``` + +Press **Return** twice, and you receive the data for `example.com/index.html`: + + +``` +[...] +<body> +<div> +    <h1>Example Domain</h1> +    <p>This domain is for use in illustrative examples in documents. You may use this +    domain in literature without prior coordination or asking for permission.</p> +    <p><a href="[https://www.iana.org/domains/example"\>More][5] information...</a></p> +</div> +</body> +</html> +``` + +#### Email server + +You can also use OpenSSL's `s_client` to test an encrypted email server. For this to work, you must have your test user's username and password encoded in Base64. +Here's an easy way to do this: + + +``` +$ perl -MMIME::Base64 -e 'print encode_base64("username");' +$ perl -MMIME::Base64 -e 'print encode_base64("password");' +``` + +Once you have those values recorded, you can connect to a mail server over SSL, usually on port 587: + + +``` +$ openssl s_client -starttls smtp \ +-connect email.example.com:587 +> ehlo example.com +> auth login +##paste your user base64 string here## +##paste your password base64 string here## + +> mail from: [noreply@example.com][6] +> rcpt to: [admin@example.com][7] +> data +> Subject: Test 001 +This is a test email. +. +> quit +``` + +Check your email (in this sample code, it's `admin@example.com`) for a test message from `noreply@example.com`. + +### OpenSSL or telnet? + +There are still uses for telnet, but it's not the indispensable tool it once was. The command has been relegated to "legacy" networking packages on many distributions, but without a `telnet-ng` or some obvious successor, admins are sometimes puzzled about why it's excluded from default installs. The answer is that it's not essential anymore, it's getting less and less useful—and that's _good_. Network security is important, so get comfortable with tools that interact with encrypted interfaces, so you don't have to disable your safeguards during troubleshooting. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/drop-telnet-openssl + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/security-lock-password.jpg?itok=KJMdkKum (Lock) +[2]: https://www.redhat.com/sysadmin/telnet-netcat-troubleshooting +[3]: https://opensource.com/downloads/curl-command-cheat-sheet +[4]: https://www.openssl.org/ +[5]: https://www.iana.org/domains/example"\>More +[6]: mailto:noreply@example.com +[7]: mailto:admin@example.com From f573b9e00a61906d60ddd551c6616919325b1947 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 6 May 2021 08:43:22 +0800 Subject: [PATCH 094/170] translating --- ...0427 Fedora Linux 34 is officially here.md | 75 ------------------- ...0427 Fedora Linux 34 is officially here.md | 75 +++++++++++++++++++ 2 files changed, 75 insertions(+), 75 deletions(-) delete mode 100644 sources/tech/20210427 Fedora Linux 34 is officially here.md create mode 100644 translated/tech/20210427 Fedora Linux 34 is officially here.md diff --git a/sources/tech/20210427 Fedora Linux 34 is officially here.md b/sources/tech/20210427 Fedora Linux 34 is officially here.md deleted file mode 100644 index f7b4396726..0000000000 --- a/sources/tech/20210427 Fedora Linux 34 is officially here.md +++ /dev/null @@ -1,75 +0,0 @@ -[#]: subject: (Fedora Linux 34 is officially here!) -[#]: via: (https://fedoramagazine.org/announcing-fedora-34/) -[#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Fedora Linux 34 is officially here! -====== - -![][1] - -Today, I’m excited to share the results of the hard work of thousands of contributors to the Fedora Project: our latest release, Fedora Linux 34, is here! I know a lot of you have been waiting… I’ve seen more “is it out yet???” anticipation on social media and forums than I can remember for any previous release. So, if you want, wait no longer — [upgrade now][2] or go to [Get Fedora][3] to download an install image. Or, if you’d like to learn more first, read on.  - -The first thing you might notice is our beautiful new logo. Developed by the Fedora Design Team with input from the wider community, this new logo solves a lot of the technical problems with our old logo while keeping its Fedoraness. Stay tuned for new Fedora swag featuring the new design! - -### A Fedora Linux for every use case - -Fedora Editions are targeted outputs geared toward specific “showcase” uses on the desktop, in server & cloud environments, and the Internet of Things. - -Fedora Workstation focuses on the desktop, and in particular, it’s geared toward software developers who want a “just works” Linux operating system experience. This release features [GNOME 40][4], the next step in focused, distraction-free computing. GNOME 40 brings improvements to navigation whether you use a trackpad, a keyboard, or a mouse. The app grid and settings have been redesigned to make interaction more intuitive. You can read more about [what changed and why in a Fedora Magazine article][5] from March. - -Fedora CoreOS is an emerging Fedora Edition. It’s an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It offers several update streams that can be followed for automatic updates that occur roughly every two weeks. Currently the next stream is based on Fedora Linux 34, with the testing and stable streams to follow. You can find information about released artifacts that follow the next stream from the [download page][6] and information about how to use those artifacts in the [Fedora CoreOS Documentation][7]. - -Fedora IoT provides a strong foundation for IoT ecosystems and edge computing use cases. With this release, we’ve improved support for popular ARM devices like Pine64, RockPro64, and Jetson Xavier NX. Some i.MX8 system on a chip devices like the 96boards Thor96 and Solid Run HummingBoard-M have improved hardware support. In addition, Fedora IoT 34 improves support for hardware watchdogs for automated system recovery.” - -Of course, we produce more than just the Editions. [Fedora Spins][8] and [Labs][9] target a variety of audiences and use cases, including [Fedora Jam][10], which allows you to unleash your inner musician, and desktop environments like the new Fedora i3 Spin, which provides a tiling window manager. And, don’t forget our alternate architectures: [ARM AArch64, Power, and S390x][11]. - -### General improvements - -No matter what variant of Fedora you use, you’re getting the latest the open source world has to offer. Following our “[First][12]” foundation, we’ve updated key programming language and system library packages, including Ruby 3.0 and Golang 1.16. In Fedora KDE Plasma, we’ve switched from X11 to Wayland as the default. - -Following the introduction of BTRFS as the default filesystem on desktop variants in Fedora Linux 33, we’ve introduced [transparent compression on BTRFS filesystems][13]. - -We’re excited for you to try out the new release! Go to and download it now. Or if you’re already running Fedora Linux, follow the [easy upgrade instructions][2]. For more information on the new features in Fedora Linux 34, see the [release notes][14]. - -### In the unlikely event of a problem… - -If you run into a problem, check out the [Fedora 34 Common Bugs page][15], and if you have questions, visit our Ask Fedora user-support platform. - -### Thank you everyone - -Thanks to the thousands of people who contributed to the Fedora Project in this release cycle, and especially to those of you who worked extra hard to make this another on-time release during a pandemic. Fedora is a community, and it’s great to see how much we’ve supported each other. Be sure to join us on April 30 and May 1 for a [virtual release party][16]! - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/announcing-fedora-34/ - -作者:[Matthew Miller][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/mattdm/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-final-816x345.jpg -[2]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ -[3]: https://getfedora.org -[4]: https://forty.gnome.org/ -[5]: https://fedoramagazine.org/fedora-34-feature-focus-updated-activities-overview/ -[6]: https://getfedora.org/en/coreos -[7]: https://docs.fedoraproject.org/en-US/fedora-coreos/ -[8]: https://spins.fedoraproject.org/ -[9]: https://labs.fedoraproject.org/ -[10]: https://labs.fedoraproject.org/en/jam/ -[11]: https://alt.fedoraproject.org/alt/ -[12]: https://docs.fedoraproject.org/en-US/project/#_first -[13]: https://fedoramagazine.org/fedora-workstation-34-feature-focus-btrfs-transparent-compression/ -[14]: https://docs.fedoraproject.org/en-US/fedora/f34/release-notes/ -[15]: https://fedoraproject.org/wiki/Common_F34_bugs -[16]: https://hopin.com/events/fedora-linux-34-release-party diff --git a/translated/tech/20210427 Fedora Linux 34 is officially here.md b/translated/tech/20210427 Fedora Linux 34 is officially here.md new file mode 100644 index 0000000000..15f039f46c --- /dev/null +++ b/translated/tech/20210427 Fedora Linux 34 is officially here.md @@ -0,0 +1,75 @@ +[#]: subject: (Fedora Linux 34 is officially here!) +[#]: via: (https://fedoramagazine.org/announcing-fedora-34/) +[#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora Linux 34 正式来了! +====== + +![][1] + +今天,我很高兴地与大家分享成千上万的 Fedora 项目贡献者的辛勤工作成果:我们的最新版本,Fedora Linux 34 来了!我知道你们中的很多人一直在等待。我在社交媒体和论坛上看到的”它出来了吗?“的期待比我记忆中的任何一个版本都多。所以,如果你想的话,不要再等了,[现在升级][2]或者去[获取 Fedora][3] 下载一个安装镜像。或者,如果你想先了解更多,请继续阅读。  + +你可能注意到的第一件事是我们漂亮的新标志。这个新标志是由 Fedora 设计团队根据广大社区的意见开发的,它在保持 Fedoraness 的同时解决了我们旧标志的很多技术问题。请继续关注以新设计为特色的 Fedora 宣传品。 + +### 适合各种使用场景的 Fedora Linux + +Fedora 各版本面向桌面、服务器、云环境和物联网等各种特定场景。 + +Fedora Workstation 专注于桌面,尤其是面向那些希望获得”能用“的 Linux 操作系统体验的软件开发者。这个版本的带来了 [GNOME 40][4],这是专注、无干扰计算的下一步。无论你使用触控板、键盘还是鼠标,GNOME 40 都带来了导航方面的改进。应用网格和设置已经被重新设计,以使交互更加直观。你可以在 [Fedora Magazine 3 月份的文章][5]中阅读更多的变化和原因。 + +Fedora CoreOS is an emerging Fedora Edition. It’s an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It offers several update streams that can be followed for automatic updates that occur roughly every two Fedora CoreOS 是一个新兴的 Fedora 版本。它是一个自动更新的最小化操作系统,用于安全和大规模地运行容器化工作负载。它提供了几个更新流,可以跟随它之后大约每两周自动更新一次,当前,Next 流基于 Fedora Linux 34,还有测试流和稳定流。你可以从[下载页面][6]中找到关于跟随 Next 流的已发布工件的信息,以及在 [Fedora CoreOS 文档][7] 中找到如何使用这些工件的信息。 + +Fedora IoT 为物联网生态系统和边缘计算场景提供了一个强大的基础。在这个版本中,我们改善了对流行的 ARM 设备的支持,如 Pine64、RockPro64 和 Jetson Xavier NX。一些 i.MX8 片上系统设备,如 96boards Thor96 和 Solid Run HummingBoard-M 的硬件支持也有所改善。此外,Fedora IoT 34 改进了对用于自动系统恢复的硬件看门狗的支持。 + +当然,我们不仅仅生产这些。[Fedora Spins][8] 和 [Labs][9] 针对不同的受众和使用情况,包括 [Fedora Jam][10],它允许你释放您内心的音乐家,以及像新的 Fedora i3 Spin 这样的桌面环境,它提供了一个平铺的窗口管理器。还有,别忘了我们的备用架构。[ARM AArch64, Power, 和 S390x][11]。 + +### 一般性改进 + +无论你使用的是 Fedora 的哪个变种,你都会得到开源世界所能提供的最新成果。在我们的 ”[First][12]“ 的基础上,我们已经更新了关键的编程语言和系统库包,包括 Ruby 3.0 和 Golang 1.16。在 Fedora KDE Plasma 中,我们已经从 X11 切换到 Wayland 作为默认。 + +在 Fedora Linux 33 中引入 BTRFS 作为桌面变体的默认文件系统后,我们又引入了 [BTRFS 文件系统的透明压缩][13]。 + +我们很高兴你能试用这个新版本!现在就去 下载它。或者如果你已经在运行 Fedora Linux,请按照[简易升级说明][2]。关于 Fedora Linux 34 的新功能的更多信息,请看[发行说明][14]。 + +### 万一出现问题。。。 + +如果你遇到了问题,请查看 [Fedora 34 常见问题页面][15],如果你有问题,请访问我们的 Ask Fedora 用户支持平台。 + +### 谢谢各位 + +感谢在这个发布周期中为 Fedora 项目做出贡献的成千上万的人,特别是那些在大流行期间为使这个版本按时发布而付出额外努力的人。Fedora 是一个社区,很高兴看到我们互相支持的程度。请务必在 4 月 30 日和 5 月 1 日参加我们的[虚拟发布派对][16]! + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/announcing-fedora-34/ + +作者:[Matthew Miller][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/mattdm/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/04/f34-final-816x345.jpg +[2]: https://docs.fedoraproject.org/en-US/quick-docs/upgrading/ +[3]: https://getfedora.org +[4]: https://forty.gnome.org/ +[5]: https://fedoramagazine.org/fedora-34-feature-focus-updated-activities-overview/ +[6]: https://getfedora.org/en/coreos +[7]: https://docs.fedoraproject.org/en-US/fedora-coreos/ +[8]: https://spins.fedoraproject.org/ +[9]: https://labs.fedoraproject.org/ +[10]: https://labs.fedoraproject.org/en/jam/ +[11]: https://alt.fedoraproject.org/alt/ +[12]: https://docs.fedoraproject.org/en-US/project/#_first +[13]: https://fedoramagazine.org/fedora-workstation-34-feature-focus-btrfs-transparent-compression/ +[14]: https://docs.fedoraproject.org/en-US/fedora/f34/release-notes/ +[15]: https://fedoraproject.org/wiki/Common_F34_bugs +[16]: https://hopin.com/events/fedora-linux-34-release-party From 4f97cdf9057c379817252452e85d4e692abb62fa Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 6 May 2021 09:02:25 +0800 Subject: [PATCH 095/170] translating --- .../20210428 How to create your first Quarkus application.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210428 How to create your first Quarkus application.md b/sources/tech/20210428 How to create your first Quarkus application.md index ea9a77e73b..40f545834d 100644 --- a/sources/tech/20210428 How to create your first Quarkus application.md +++ b/sources/tech/20210428 How to create your first Quarkus application.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/quarkus-tutorial) [#]: author: (Saumya Singh https://opensource.com/users/saumyasingh) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 044bc0a7338944251cf63a3f911221b9bab84eae Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 6 May 2021 09:07:08 +0800 Subject: [PATCH 096/170] Revert "translating" This reverts commit 4f97cdf9057c379817252452e85d4e692abb62fa. --- .../20210428 How to create your first Quarkus application.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210428 How to create your first Quarkus application.md b/sources/tech/20210428 How to create your first Quarkus application.md index 40f545834d..ea9a77e73b 100644 --- a/sources/tech/20210428 How to create your first Quarkus application.md +++ b/sources/tech/20210428 How to create your first Quarkus application.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/quarkus-tutorial) [#]: author: (Saumya Singh https://opensource.com/users/saumyasingh) [#]: collector: (lujun9972) -[#]: translator: (geekpi) +[#]: translator: ( ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 65ab40867343afd67eb0f3a6cbb329c4dc815a66 Mon Sep 17 00:00:00 2001 From: geekpi Date: Thu, 6 May 2021 09:10:37 +0800 Subject: [PATCH 097/170] translating --- ...eases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md b/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md index d7a6d56c71..e43409061e 100644 --- a/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md +++ b/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/fedora-34-release/) [#]: author: (Arish V https://news.itsfoss.com/author/arish/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From a1633bdea7fbe3733ae563d77658eb12451f2fdc Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Thu, 6 May 2021 09:55:30 +0800 Subject: [PATCH 098/170] Rename sources/tech/20210505 What Google v. Oracle means for open source.md to sources/talk/20210505 What Google v. Oracle means for open source.md --- .../20210505 What Google v. Oracle means for open source.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210505 What Google v. Oracle means for open source.md (100%) diff --git a/sources/tech/20210505 What Google v. Oracle means for open source.md b/sources/talk/20210505 What Google v. Oracle means for open source.md similarity index 100% rename from sources/tech/20210505 What Google v. Oracle means for open source.md rename to sources/talk/20210505 What Google v. Oracle means for open source.md From 5bd3f4b3c5cfb0b38424b032d2c8fe49d2925c4f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 May 2021 11:25:47 +0800 Subject: [PATCH 099/170] PRF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @cooljelly 辛苦了 --- ...ess translation part 1 - packet tracing.md | 131 +++++------------- 1 file changed, 32 insertions(+), 99 deletions(-) diff --git a/translated/tech/20210104 Network address translation part 1 - packet tracing.md b/translated/tech/20210104 Network address translation part 1 - packet tracing.md index 75b3292cb7..a2e016d294 100644 --- a/translated/tech/20210104 Network address translation part 1 - packet tracing.md +++ b/translated/tech/20210104 Network address translation part 1 - packet tracing.md @@ -1,89 +1,70 @@ [#]: collector: (lujun9972) [#]: translator: (cooljelly) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Network address translation part 1 – packet tracing) [#]: via: (https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/) [#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) -网络地址转换第一部分 – 报文跟踪 +网络地址转换(NAT)之报文跟踪 ====== -![][1] +![](https://img.linux.net.cn/data/attachment/album/202105/06/112410xhdkvvdajis3jhlj.jpg) 这是有关网络地址转换network address translation(NAT)的系列文章中的第一篇。这一部分将展示如何使用 iptables/nftables 报文跟踪功能来定位 NAT 相关的连接问题。 ### 引言 -网络地址转换是一种将容器或虚拟机暴露在互联网中的一种方式。传入连接请求的目标地址会被改写为另一个地址,随后被路由到容器或虚拟机。相同的技术可用于负载均衡,即传入的连接被分散到不同的服务器上去。 +网络地址转换(NAT)是一种将容器或虚拟机暴露在互联网中的一种方式。传入的连接请求将其目标地址改写为另一个地址,随后被路由到容器或虚拟机。相同的技术也可用于负载均衡,即传入的连接被分散到不同的服务器上去。 -当网络地址转换无法正常工作时,连接请求将失败。这可能是因为发布了错误的服务,或者连接请求到达了错误的容器,或者请求超时,等等。调试此类问题的一种方法是检查传入请求是否与预期或已配置的转换相匹配。 +当网络地址转换没有按预期工作时,连接请求将失败,会暴露错误的服务,连接最终出现在错误的容器中,或者请求超时,等等。调试此类问题的一种方法是检查传入请求是否与预期或已配置的转换相匹配。 ### 连接跟踪 -NAT 不仅仅涉及到修改 IP 地址或端口号。例如,在将地址 X 映射到 Y 时,无需添加新规则来执行反向转换。一个被称为“conntrack”的 netfilter 系统可以识别已有连接的回复报文。每个连接都在 conntrack 系统中有自己的 NAT 状态。反向转换是自动完成的。 +NAT 不仅仅是修改 IP 地址或端口号。例如,在将地址 X 映射到 Y 时,无需添加新规则来执行反向转换。一个被称为 “conntrack” 的 netfilter 系统可以识别已有连接的回复报文。每个连接都在 conntrack 系统中有自己的 NAT 状态。反向转换是自动完成的。 ### 规则匹配跟踪 -nftables 应用程序(及 iptables 应用程序)允许针对某个报文检查其处理方式以及该报文匹配规则集合中的哪条规则。为了使用这项特殊的功能,可在合适的位置插入“跟踪规则”。这些规则会选择被跟踪的报文。假设一个来自 IP 地址 C 的终端正在访问一个 IP 地址是 S 以及端口是 P 的服务。我们想知道报文匹配了哪条 NAT 翻译规则,系统检查了哪些规则,以及报文是否在哪里被丢弃了。 +nftables 工具(以及在较小的程度上,iptables)允许针对某个报文检查其处理方式以及该报文匹配规则集合中的哪条规则。为了使用这项特殊的功能,可在合适的位置插入“跟踪规则”。这些规则会选择被跟踪的报文。假设一个来自 IP 地址 C 的主机正在访问一个 IP 地址是 S 以及端口是 P 的服务。我们想知道报文匹配了哪条 NAT 转换规则,系统检查了哪些规则,以及报文是否在哪里被丢弃了。 -由于我们在处理传入连接,所以我们将规则添加到 prerouting 钩子点。 Prerouting 意味着内核尚未决定将报文发往何处。修改目标地址通常会使报文被系统转发,而不是由主机自身处理。 +由于我们要处理的是传入连接,所以我们将规则添加到 prerouting 钩子上。prerouting 意味着内核尚未决定将报文发往何处。修改目标地址通常会使报文被系统转发,而不是由主机自身处理。 ### 初始配置 -``` ``` - # nft 'add table inet trace_debug' # nft 'add chain inet trace_debug trace_pre { type filter hook prerouting priority -200000; }' # nft "insert rule inet trace_debug trace_pre ip saddr $C ip daddr $S tcp dport $P tcp flags syn limit rate 1/second meta nftrace set 1" ``` -``` +第一条规则添加了一张新的规则表,这使得将来删除和调试规则可以更轻松。一句 `nft delete table inet trace_debug` 命令就可以删除调试期间临时加入表中的所有规则和链。 -第一条规则添加了一张新的规则表。这使将来删除和调试规则可以更轻松。单条“nft delete table inet trace_debug”命令就可以删除调试期间临时加入表中的所有规则和链。 +第二条规则在系统进行路由选择之前(`prerouting` 钩子)创建了一个基本钩子,并将其优先级设置为负数,以保证它在连接跟踪流程和 NAT 规则匹配之前被执行。 -第二条规则在系统进行路由选择之前(prerouting 钩子点)创建了一个钩子规则,并将其优先级设置为负数,以保证它在连接跟踪流程和 NAT 规则匹配之前被执行。 - -然而最重要的部分是第三条规则的最后一段:“_meta nftrace set 1_″。这条规则会使系统记录所有匹配这条规则的报文所关联的事件。为了尽可能高效地查看跟踪信息(提高信噪比),考虑对跟踪的事件增加一个速率限制以保证其数量处于可管理的范围。一个好的选择是限制每秒钟最多一个报文或一分钟最多一个报文。上述案例记录了所有来自终端 $C 且去往终端 $S 的端口 $P 的所有 SYN 报文和 SYN/ACK 报文。限制速率的配置语句可以防范事件过多导致的洪泛风险。事实上,大多数情况下只记录一个报文就足够了。 +然而,唯一最重要的部分是第三条规则的最后一段:`meta nftrace set 1`。这条规则会使系统记录所有匹配这条规则的报文所关联的事件。为了尽可能高效地查看跟踪信息(提高信噪比),考虑对跟踪的事件增加一个速率限制,以保证其数量处于可管理的范围。一个好的选择是限制每秒钟最多一个报文或一分钟最多一个报文。上述案例记录了所有来自终端 `$C` 且去往终端 `$S` 的端口 `$P` 的所有 SYN 报文和 SYN/ACK 报文。限制速率的配置语句可以防范事件过多导致的洪泛风险。事实上,大多数情况下只记录一个报文就足够了。 对于 iptables 用户来讲,配置流程是类似的。等价的配置规则类似于: -``` ``` - # iptables -t raw -I PREROUTING -s $C -d $S -p tcp --tcp-flags SYN SYN  --dport $P  -m limit --limit 1/s -j TRACE ``` -``` - ### 获取跟踪事件 -原生 nft 工具的用户可以直接运行 nft 进入 nft 跟踪模式: -``` +原生 nft 工具的用户可以直接运行 `nft` 进入 nft 跟踪模式: ``` - # nft monitor trace ``` -``` - -这条命令会将收到的报文以及所有匹配该报文的规则打印出来(用 CTRL-C 来停止输出): +这条命令会将收到的报文以及所有匹配该报文的规则打印出来(用 `CTRL-C` 来停止输出): ``` - -``` - trace id f0f627 ip raw prerouting  packet: iif "veth0" ether saddr .. ``` -``` - -我们将在下一章详细分析该结果。如果您用的是 iptables,首先通过“_iptables –version_” 命令检查一下已安装的版本。例如: - -``` +我们将在下一章详细分析该结果。如果你用的是 iptables,首先通过 `iptables –version` 命令检查一下已安装的版本。例如: ``` @@ -91,42 +72,27 @@ trace id f0f627 ip raw prerouting  packet: iif "veth0" ether saddr .. iptables v1.8.5 (legacy) ``` -``` - -_(legacy)_ 意味着被跟踪的事件会被记录到内核的环形缓冲区中。您可以用 dmesg 或 journalctl 命令来查看这些时间。这些调试输出缺少一些信息,但和新工具提供的输出从概念上来讲很类似。您将需要首先查看规则被记录下来的行号,并与活跃的 iptables 规则集合手动关联。如果输出显示(nf_tables),您可以使用 xtables-monitor 工具: +`(legacy)` 意味着被跟踪的事件会被记录到内核的环形缓冲区中。你可以用 `dmesg` 或 `journalctl` 命令来查看这些事件。这些调试输出缺少一些信息,但和新工具提供的输出从概念上来讲很类似。你将需要首先查看规则被记录下来的行号,并与活跃的 iptables 规则集合手动关联。如果输出显示 `(nf_tables)`,你可以使用 `xtables-monitor` 工具: ``` - -``` - # xtables-monitor --trace ``` -``` - -如果上述命令仅显示版本号,您仍然需要查看 dmesg/journalctl 的输出。xtables-monitor 工具和 nft 监控跟踪工具使用相同的内核接口。它们之间唯一的不同点就是,xtables-monitor 工具会用 iptables 的语法打印事件,且如果您同时使用了 iptables-nft 和 nft,它将不能打印那些使用了 maps/sets 或其他只有 nftables 才支持的功能的规则。 +如果上述命令仅显示版本号,你仍然需要查看 `dmesg`/`journalctl` 的输出。`xtables-monitor` 工具和 `nft` 监控跟踪工具使用相同的内核接口。它们之间唯一的不同点就是,`xtables-monitor` 工具会用 `iptables` 的语法打印事件,且如果你同时使用了 `iptables-nft` 和 `nft`,它将不能打印那些使用了 maps/sets 或其他只有 nftables 才支持的功能的规则。 ### 示例 -我们假设需要调试一个到虚拟机/容器的端口不通的问题。“ssh -p 1222 10.1.2.3”命令应该可以远程连接那台服务器上的某个容器,但连接请求超时了。 +我们假设需要调试一个到虚拟机/容器的端口不通的问题。`ssh -p 1222 10.1.2.3` 命令应该可以远程连接那台服务器上的某个容器,但连接请求超时了。 -您拥有运行那台容器的主机的登陆权限。现在登陆该机器并增加一条跟踪规则。可通过前述案例查看如何增加一个临时的调试规则表。跟踪规则类似于这样: +你拥有运行那台容器的主机的登录权限。现在登录该机器并增加一条跟踪规则。可通过前述案例查看如何增加一个临时的调试规则表。跟踪规则类似于这样: ``` - -``` - nft "insert rule inet trace_debug trace_pre ip daddr 10.1.2.3 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1" ``` -``` - -在添加完上述规则后,运行 _nft monitor trace_ ,在跟踪模式下启动 nft,然后重试刚才失败的 ssh 命令。如果规则集合较大,会出现大量的输出。不用担心这些输出 – 下一节我们会做逐行分析。 +在添加完上述规则后,运行 `nft monitor trace`,在跟踪模式下启动 nft,然后重试刚才失败的 `ssh` 命令。如果规则集较大,会出现大量的输出。不用担心这些输出,下一节我们会做逐行分析。 ``` - -``` - trace id 9c01f8 inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) trace id 9c01f8 inet trace_debug trace_pre verdict continue @@ -139,62 +105,46 @@ trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip saddr 10.2.1.2 ip daddr 10.1.2.3 ip protocol tcp tcp dport 1222 tcp flags == syn ``` -``` - ### 对跟踪结果作逐行分析 -输出结果的第一行是触发后续输出的报文信息。这一行的语法与 nft 规则语法相同,同时还包括了接收报文的首部字段信息。您也可以在这一行找到接收报文的接口名称(此处为“enp0”),报文的源和目的 MAC 地址,报文的源 IP 地址(可能很重要 - 报告问题的人可能选择了一个错误的或非预期的终端),以及 TCP 的源和目的端口。同时您也可以在这一行的开头看到一个“跟踪编号”。该编号标识了匹配跟踪规则的特定报文。第二行包括了该报文匹配的第一条跟踪规则: -``` +输出结果的第一行是触发后续输出的报文编号。这一行的语法与 nft 规则语法相同,同时还包括了接收报文的首部字段信息。你也可以在这一行找到接收报文的接口名称(此处为 `enp0`)、报文的源和目的 MAC 地址、报文的源 IP 地址(可能很重要 - 报告问题的人可能选择了一个错误的或非预期的主机),以及 TCP 的源和目的端口。同时你也可以在这一行的开头看到一个“跟踪编号”。该编号标识了匹配跟踪规则的特定报文。第二行包括了该报文匹配的第一条跟踪规则: ``` - trace id 9c01f8 inet trace_debug trace_pre rule ip daddr 10.2.1.2 tcp dport 1222 tcp flags syn limit rate 6/minute meta nftrace set 1 (verdict continue) ``` -``` +这就是刚添加的跟踪规则。这里显示的第一条规则总是激活报文跟踪的规则。如果在这之前还有其他规则,它们将不会在这里显示。如果没有任何跟踪输出结果,说明没有抵达这条跟踪规则,或者没有匹配成功。下面的两行表明没有后续的匹配规则,且 `trace_pre` 钩子允许报文继续传输(判定为接受)。 -这就是刚添加的跟踪规则。这里显示的第一条规则总是激活报文跟踪的那一条。如果在这之前还有其他规则,它们将不会在这里显示。如果没有任何跟踪输出结果,说明没有抵达这条跟踪规则,或者没有匹配成功。下面的两行表明没有后续的匹配规则,且“trace_pre”钩子允许报文继续传输(判定为 accept)。 - -下一条匹配规则是 -``` +下一条匹配规则是: ``` - trace id 9c01f8 inet nat prerouting rule ip daddr 10.1.2.3  tcp dport 1222 dnat ip to 192.168.70.10:22 (verdict accept) ``` -``` - -这条 DNAT 规则设置了一个到其他地址和端口的映射。规则中的参数 192.168.70.10 是需要收包的虚拟机的地址,目前为止没有问题。如果它不是正确的虚拟机地址,说明地址输入错误,或者匹配了错误的 NAT 规则。 - +这条 DNAT 规则设置了一个到其他地址和端口的映射。规则中的参数 `192.168.70.10` 是需要收包的虚拟机的地址,目前为止没有问题。如果它不是正确的虚拟机地址,说明地址输入错误,或者匹配了错误的 NAT 规则。 ### IP 转发 -通过下面的输出我们可以看到,IP路由引擎告诉IP协议栈说,该报文需要被转发到另一个终端: - +通过下面的输出我们可以看到,IP 路由引擎告诉 IP 协议栈,该报文需要被转发到另一个主机: ``` trace id 9c01f8 inet filter forward packet: iif "enp0" oif "veth21" ether saddr .. ip daddr 192.168.70.10 .. tcp dport 22 tcp flags == syn tcp window 29200 ``` -这是接收到的报文的另一种呈现形式,但和之前相比有一些有趣的不同。现在的结果有了一个输出接口集合。这在之前不存在是因为之前的规则是在路由决策之前(prerouting 钩子)。跟踪编号和之前一样,因此仍然是相同的报文,但目标地址和端口已经被修改。假设现在还有匹配“TCP 目标端口 1222”的规则,它们将不会对现阶段的报文产生任何影响了。 +这是接收到的报文的另一种呈现形式,但和之前相比有一些有趣的不同。现在的结果有了一个输出接口集合。这在之前不存在的,因为之前的规则是在路由决策之前(`prerouting` 钩子)。跟踪编号和之前一样,因此仍然是相同的报文,但目标地址和端口已经被修改。假设现在还有匹配 `tcp dport 1222` 的规则,它们将不会对现阶段的报文产生任何影响了。 -如果该行不包含输出接口(oif),说明路由决策将报文路由到了本机。对路由过程的调试属于另外一个主题,本文不再涉及。 +如果该行不包含输出接口(`oif`),说明路由决策将报文路由到了本机。对路由过程的调试属于另外一个主题,本文不再涉及。 ``` trace id 9c01f8 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) ``` -这条输出表明,报文匹配到了一个跳转到“allowed_dnats”链的规则。下一行则说明了连接失败的根本原因: -``` +这条输出表明,报文匹配到了一个跳转到 `allowed_dnats` 链的规则。下一行则说明了连接失败的根本原因: ``` - trace id 9c01f8 inet filter allowed_dnats rule drop (verdict drop) ``` -``` - 这条规则无条件地将报文丢弃,因此后续没有关于该报文的日志输出。下一行则是另一个报文的输出结果了: ``` @@ -203,14 +153,11 @@ trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip 跟踪编号已经和之前不一样,然后报文的内容却和之前是一样的。这是一个重传尝试:第一个报文被丢弃了,因此 TCP 尝试了重传。可以忽略掉剩余的输出结果了,因为它并没有提供新的信息。现在是时候检查那条链了。 - ### 规则集合分析 -上一节我们发现报文在 inet filter 表中的一个名叫“allowed_dnats”的链中被丢弃。现在我们来查看它: -``` +上一节我们发现报文在 inet 过滤表中的一个名叫 `allowed_dnats` 的链中被丢弃。现在我们来查看它: ``` - # nft list chain inet filter allowed_dnats table inet filter {  chain allowed_dnats { @@ -220,29 +167,19 @@ table inet filter { } ``` -``` - -这条规则允许目标地址和端口在 @allow_in 集合中的报文经过,其余丢弃。我们通过列出元素的方式,重复检查上述报文的目标地址是否在 @allow_in 集合中: -``` +接受 `@allow_in` 集的数据包的规则没有显示在跟踪日志中。我们通过列出元素的方式,再次检查上述报文的目标地址是否在 `@allow_in` 集中: ``` - # nft "get element inet filter allow_in { 192.168.70.10 . 22 }" Error: Could not process rule: No such file or directory ``` -``` - 不出所料,地址-服务对并没有出现在集合中。我们将其添加到集合中。 -``` ``` - # nft "add element inet filter allow_in { 192.168.70.10 . 22 }" ``` -``` - 现在运行查询命令,它将返回新添加的元素。 ``` @@ -255,21 +192,17 @@ table inet filter { } ``` -ssh 命令现在应该可以工作且跟踪结果可以反映出该变化: +`ssh` 命令现在应该可以工作,且跟踪结果可以反映出该变化: ``` trace id 497abf58 inet filter forward rule ct status dnat jump allowed_dnats (verdict jump allowed_dnats) -``` -``` trace id 497abf58 inet filter allowed_dnats rule meta nfproto ipv4 ip daddr . tcp dport @allow_in accept (verdict accept) -``` -``` trace id 497abf58 ip postrouting packet: iif "enp0" oif "veth21" ether .. trace id 497abf58 ip postrouting policy accept ``` -这表明报文通过了转发路径中的最后一个钩子 - postrouting。 +这表明报文通过了转发路径中的最后一个钩子 - `postrouting`。 如果现在仍然无法连接,问题可能处在报文流程的后续阶段,有可能并不在 nftables 的规则集合范围之内。 @@ -284,7 +217,7 @@ via: https://fedoramagazine.org/network-address-translation-part-1-packet-tracin 作者:[Florian Westphal][a] 选题:[lujun9972][b] 译者:[cooljelly](https://github.com/cooljelly) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cd76906ae8b2538a9eae197cee90aab0622e64dd Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 May 2021 11:26:55 +0800 Subject: [PATCH 100/170] PUB @cooljelly https://linux.cn/article-13364-1.html --- ...104 Network address translation part 1 - packet tracing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210104 Network address translation part 1 - packet tracing.md (99%) diff --git a/translated/tech/20210104 Network address translation part 1 - packet tracing.md b/published/20210104 Network address translation part 1 - packet tracing.md similarity index 99% rename from translated/tech/20210104 Network address translation part 1 - packet tracing.md rename to published/20210104 Network address translation part 1 - packet tracing.md index a2e016d294..dfc1351d98 100644 --- a/translated/tech/20210104 Network address translation part 1 - packet tracing.md +++ b/published/20210104 Network address translation part 1 - packet tracing.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (cooljelly) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13364-1.html) [#]: subject: (Network address translation part 1 – packet tracing) [#]: via: (https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/) [#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) From 4e4484eafb688d6ea1c4a8947b8f6cefe85ab402 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 May 2021 12:15:57 +0800 Subject: [PATCH 101/170] PRF @geekpi --- ...0427 Fedora Linux 34 is officially here.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/translated/tech/20210427 Fedora Linux 34 is officially here.md b/translated/tech/20210427 Fedora Linux 34 is officially here.md index 15f039f46c..08516d0f54 100644 --- a/translated/tech/20210427 Fedora Linux 34 is officially here.md +++ b/translated/tech/20210427 Fedora Linux 34 is officially here.md @@ -3,46 +3,46 @@ [#]: author: (Matthew Miller https://fedoramagazine.org/author/mattdm/) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -Fedora Linux 34 正式来了! +Fedora Linux 34 各版本介绍 ====== -![][1] +![](https://img.linux.net.cn/data/attachment/album/202105/06/121307el07t08iiw01j7q8.jpg) -今天,我很高兴地与大家分享成千上万的 Fedora 项目贡献者的辛勤工作成果:我们的最新版本,Fedora Linux 34 来了!我知道你们中的很多人一直在等待。我在社交媒体和论坛上看到的”它出来了吗?“的期待比我记忆中的任何一个版本都多。所以,如果你想的话,不要再等了,[现在升级][2]或者去[获取 Fedora][3] 下载一个安装镜像。或者,如果你想先了解更多,请继续阅读。  +今天(4/27),我很高兴地与大家分享成千上万的 Fedora 项目贡献者的辛勤工作成果:我们的最新版本,Fedora Linux 34 来了!我知道你们中的很多人一直在等待。我在社交媒体和论坛上看到的“它出来了吗?”的期待比我记忆中的任何一个版本都多。所以,如果你想的话,不要再等了,[现在升级][2] 或者去 [获取 Fedora][3] 下载一个安装镜像。或者,如果你想先了解更多,请继续阅读。  你可能注意到的第一件事是我们漂亮的新标志。这个新标志是由 Fedora 设计团队根据广大社区的意见开发的,它在保持 Fedoraness 的同时解决了我们旧标志的很多技术问题。请继续关注以新设计为特色的 Fedora 宣传品。 ### 适合各种使用场景的 Fedora Linux -Fedora 各版本面向桌面、服务器、云环境和物联网等各种特定场景。 +Fedora Editions 面向桌面、服务器、云环境和物联网等各种特定场景。 -Fedora Workstation 专注于桌面,尤其是面向那些希望获得”能用“的 Linux 操作系统体验的软件开发者。这个版本的带来了 [GNOME 40][4],这是专注、无干扰计算的下一步。无论你使用触控板、键盘还是鼠标,GNOME 40 都带来了导航方面的改进。应用网格和设置已经被重新设计,以使交互更加直观。你可以在 [Fedora Magazine 3 月份的文章][5]中阅读更多的变化和原因。 +Fedora Workstation 专注于台式机,尤其是面向那些希望获得“正常使用”的 Linux 操作系统体验的软件开发者。这个版本的带来了 [GNOME 40][4],这是专注、无干扰计算的下一步。无论你使用触控板、键盘还是鼠标,GNOME 40 都带来了导航方面的改进。应用网格和设置已经被重新设计,以使交互更加直观。你可以从 3 月份的 [Fedora Magazine][5] 文章中阅读更多的变化和原因。 -Fedora CoreOS is an emerging Fedora Edition. It’s an automatically-updating, minimal operating system for running containerized workloads securely and at scale. It offers several update streams that can be followed for automatic updates that occur roughly every two Fedora CoreOS 是一个新兴的 Fedora 版本。它是一个自动更新的最小化操作系统,用于安全和大规模地运行容器化工作负载。它提供了几个更新流,可以跟随它之后大约每两周自动更新一次,当前,Next 流基于 Fedora Linux 34,还有测试流和稳定流。你可以从[下载页面][6]中找到关于跟随 Next 流的已发布工件的信息,以及在 [Fedora CoreOS 文档][7] 中找到如何使用这些工件的信息。 +Fedora CoreOS 是一个新兴的 Fedora 版本。它是一个自动更新的最小化操作系统,用于安全和大规模地运行容器化工作负载。它提供了几个更新流,跟随它之后大约每两周自动更新一次,当前,next 流基于 Fedora Linux 34,随后是 testing 流和 stable 流。你可以从 [下载页面][6] 中找到关于跟随 next 流的已发布工件的信息,以及在 [Fedora CoreOS 文档][7] 中找到如何使用这些工件的信息。 Fedora IoT 为物联网生态系统和边缘计算场景提供了一个强大的基础。在这个版本中,我们改善了对流行的 ARM 设备的支持,如 Pine64、RockPro64 和 Jetson Xavier NX。一些 i.MX8 片上系统设备,如 96boards Thor96 和 Solid Run HummingBoard-M 的硬件支持也有所改善。此外,Fedora IoT 34 改进了对用于自动系统恢复的硬件看门狗的支持。 -当然,我们不仅仅生产这些。[Fedora Spins][8] 和 [Labs][9] 针对不同的受众和使用情况,包括 [Fedora Jam][10],它允许你释放您内心的音乐家,以及像新的 Fedora i3 Spin 这样的桌面环境,它提供了一个平铺的窗口管理器。还有,别忘了我们的备用架构。[ARM AArch64, Power, 和 S390x][11]。 +当然,我们不仅仅提供 Editions。[Fedora Spins][8] 和 [Labs][9] 针对不同的受众和使用情况,例如 [Fedora Jam][10],它允许你释放你内心的音乐家,以及像新的 Fedora i3 Spin 这样的桌面环境,它提供了一个平铺的窗口管理器。还有,别忘了我们的备用架构。[ARM AArch64 Power 和 S390x][11]。 ### 一般性改进 -无论你使用的是 Fedora 的哪个变种,你都会得到开源世界所能提供的最新成果。在我们的 ”[First][12]“ 的基础上,我们已经更新了关键的编程语言和系统库包,包括 Ruby 3.0 和 Golang 1.16。在 Fedora KDE Plasma 中,我们已经从 X11 切换到 Wayland 作为默认。 +无论你使用的是 Fedora 的哪个变种,你都会得到开源世界所能提供的最新成果。秉承我们的 “[First][12]” 原则,我们已经更新了关键的编程语言和系统库包,包括 Ruby 3.0 和 Golang 1.16。在 Fedora KDE Plasma 中,我们已经从 X11 切换到 Wayland 作为默认。 -在 Fedora Linux 33 中引入 BTRFS 作为桌面变体的默认文件系统后,我们又引入了 [BTRFS 文件系统的透明压缩][13]。 +在 Fedora Linux 33 中 BTRFS 作为桌面变体中的默认文件系统引入之后,我们又引入了 [BTRFS 文件系统的透明压缩][13]。 -我们很高兴你能试用这个新版本!现在就去 下载它。或者如果你已经在运行 Fedora Linux,请按照[简易升级说明][2]。关于 Fedora Linux 34 的新功能的更多信息,请看[发行说明][14]。 +我们很高兴你能试用这个新发布版本!现在就去 下载它。或者如果你已经在运行 Fedora Linux,请按照 [简易升级说明][2]。关于 Fedora Linux 34 的新功能的更多信息,请看 [发行说明][14]。 -### 万一出现问题。。。 +### 万一出现问题…… 如果你遇到了问题,请查看 [Fedora 34 常见问题页面][15],如果你有问题,请访问我们的 Ask Fedora 用户支持平台。 ### 谢谢各位 -感谢在这个发布周期中为 Fedora 项目做出贡献的成千上万的人,特别是那些在大流行期间为使这个版本按时发布而付出额外努力的人。Fedora 是一个社区,很高兴看到我们互相支持的程度。请务必在 4 月 30 日和 5 月 1 日参加我们的[虚拟发布派对][16]! +感谢在这个发布周期中为 Fedora 项目做出贡献的成千上万的人,特别是那些在大流行期间为使这个版本按时发布而付出额外努力的人。Fedora 是一个社区,很高兴看到我们如此互相支持! -------------------------------------------------------------------------------- @@ -51,7 +51,7 @@ via: https://fedoramagazine.org/announcing-fedora-34/ 作者:[Matthew Miller][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 0976d6499d727ddd5c135211567c62063b4abdd4 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 6 May 2021 12:17:43 +0800 Subject: [PATCH 102/170] PUB @geekpi https://linux.cn/article-13365-1.html --- .../20210427 Fedora Linux 34 is officially here.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210427 Fedora Linux 34 is officially here.md (98%) diff --git a/translated/tech/20210427 Fedora Linux 34 is officially here.md b/published/20210427 Fedora Linux 34 is officially here.md similarity index 98% rename from translated/tech/20210427 Fedora Linux 34 is officially here.md rename to published/20210427 Fedora Linux 34 is officially here.md index 08516d0f54..ac0df71962 100644 --- a/translated/tech/20210427 Fedora Linux 34 is officially here.md +++ b/published/20210427 Fedora Linux 34 is officially here.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13365-1.html) Fedora Linux 34 各版本介绍 ====== From b1672997225355fd4125386c37c3365685e8bca9 Mon Sep 17 00:00:00 2001 From: Mo Date: Thu, 6 May 2021 08:17:26 +0000 Subject: [PATCH 103/170] [translating]Metro Exodus is Finally Here on Steam for Linux --- .../20210416 Metro Exodus is Finally Here on Steam for Linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md b/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md index 37aa353478..5b1156b804 100644 --- a/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md +++ b/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/metro-exodus-steam/) [#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (alim0x) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From d4c94f66fc50ae2b7cc9e916460f56de50794389 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 May 2021 05:03:51 +0800 Subject: [PATCH 104/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210506=20?= =?UTF-8?q?Learn=20essential=20Kubernetes=20commands=20with=20a=20new=20ch?= =?UTF-8?q?eat=20sheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md --- ...ernetes commands with a new cheat sheet.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md diff --git a/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md b/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md new file mode 100644 index 0000000000..c04e290e3e --- /dev/null +++ b/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md @@ -0,0 +1,138 @@ +[#]: subject: (Learn essential Kubernetes commands with a new cheat sheet) +[#]: via: (https://opensource.com/article/21/5/kubernetes-cheat-sheet) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Learn essential Kubernetes commands with a new cheat sheet +====== +Start exploring kubectl, containers, pods, and more, then download our +free cheat sheet so you always have the key commands at your fingertips. +![Cheat Sheet cover image][1] + +The cloud runs largely on Kubernetes, Kubernetes largely runs on Linux, and Linux runs best when it has a skilled sysadmin at the controls. Whether you consider yourself a cloud architect or just a humble sysadmin, the modern internet needs users who understand how applications and services can be created within containers, scaled on demand, and monitored and managed judiciously. + +One of the first steps into the brave world of containers is learning Kubernetes and its quintessential command: `kubectl`. + +### Installing kubectl + +The `kubectl` command allows you to run commands on Kubernetes clusters. You use `kubectl` to deploy applications, view logs, inspect and manage cluster resources, and troubleshoot issues when they arise. The classic "problem" with `kubectl` (and Kubernetes as a whole) is that to run commands against a cluster, you first need a cluster. However, there are easy solutions. + +First, you can create your own Kubernetes cluster for the cost of three Raspberry Pi boards and associated peripherals (power supplies, mostly). Once you've acquired the hardware, read Chris Collins' [_Build a Kubernetes cluster with the Raspberry Pi_][2], and you'll have your very own cluster with `kubectl` installed. + +The other way to acquire a cluster is to use [Minikube][3], a practice environment for Kubernetes. Of all the methods of getting a cluster up and running, this is the easiest. + +There are yet more options; for example, you can take a course on Kubernetes to gain access to a lab running a cluster, or you can buy time on a cloud. It doesn't matter how you gain access to a cluster, as long as you have a Kubernetes environment to practice on. + +Once you have access to a cluster, you can start exploring the `kubectl` command. + +### Understanding pods and containers + +A container is a lightweight, partial Linux system dedicated to running an application or service. A container is constrained by a [kernel namespace][4], which provides it access to vital system components on its host (the computer running the container) while preventing it from sending data out to its host. Containers are kept as container images (or just _images_ for short) and defined by text files called _Containerfiles_ or _Dockerfiles_. + +A pod is a formal collection of containers and an easy way for an administrator to scale, monitor, and maintain any number of containers. + +Together, these are like the "apps" of Kubernetes. Creating or acquiring container images is how you run services on the cloud. + +### Running a pod + +Two reliable registries of container images are Docker Hub and Quay. You can search a registry website for a list of available images. There are usually official images of large projects provided by the project, as well as community images for specialized, customized, or niche projects. One of the simplest and smallest images is a [BusyBox][5] container, which provides a minimal shell environment and some common commands. + +Whether you pull an image from a registry or write your own image definition and pull that into your cluster from a Git repository, the workflow is the same. When you want to start a pod in Kubernetes: + + 1. Find an image you want to use on [Docker Hub][6] or [Quay][7] + 2. Pull the image + 3. Create a pod + 4. Deploy the pod + + + +If you want to use the example BusyBox container, you can do the last three steps in a single command: + + +``` +`$ kubectl create deployment my-busybox --image=busybox` +``` + +Wait for kubectl to complete the process, and in the end, you have a running BusyBox instance. The pod isn't exposed to the rest of the world. It's just quietly running on your cluster in the background. + +To see what pods are running on your cluster: + + +``` +`$ kubectl get pods --all-namespaces` +``` + +You can also get information about the pod deployment: + + +``` +`$ kubectl describe deployment my-busybox` +``` + +### Interacting with a pod + +Containers usually contain configuration files that cause them to be automated. For instance, installing the Nginx httpd server as a container should not require your interaction. You start the container running, and it just works. This is true for the first container you add to a pod and for every container thereafter. + +One of the advantages of the Kubernetes model is that you can scale your services as needed. Should your web service become overwhelmed by unexpected traffic, you can start an identical container in your cloud (using the `scale` or `autoscale` subcommand), doubling your service's ability to handle incoming requests. + +Even so, sometimes it's nice to see some proof that a pod is running as expected or to be able to troubleshoot something that doesn't appear to be functioning correctly. For this, you can run arbitrary commands in a container: + + +``` +`$ kubectl exec my-busybox -- echo "hello cloud"` +``` + +Alternately, you can open a shell in your container, piping your standard input into it and its output to your terminal's stdout: + + +``` +`$ kubectl exec --stdin --tty my-busybox -- /bin/sh` +``` + +### Exposing services + +By default, pods aren't exposed to the outside world upon creation, giving you time to test and verify before going live. Assume you want to install and deploy the Nginx web server as a pod on your cluster and make it accessible. As with any service, you must point your pod to a port on your server. The `kubectl` subcommand `expose` can do this for you: + + +``` +$ kubectl create deployment \ +my-nginx --image=nginx +$ kubectl expose deployment \ +my-nginx --type=LoadBalancer --port=8080 +``` + +As long as your cluster is accessible from the internet, you can test your new web server's accessibility by opening a browser and navigating to your public IP address. + +### More than just pods + +Kubernetes provides a lot more than just stock images of common services. In addition to being a system for [container orchestration][8], it's also a platform for cloud development. You can write and deploy applications, manage and monitor performance and traffic, implement intelligent load balancing strategies, and much more. + +Kubernetes is a powerful system, and it has quickly become the foundation for all kinds of clouds, most significantly the [open hybrid cloud][9]. Start learning Kubernetes today. And as you learn more about Kubernetes, you'll need some quick reminders of its main concepts and general syntax, so [**download our Kubernetes cheat sheet**][10] and keep it nearby. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/kubernetes-cheat-sheet + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coverimage_cheat_sheet.png?itok=lYkNKieP (Cheat Sheet cover image) +[2]: https://opensource.com/article/20/6/kubernetes-raspberry-pi +[3]: https://opensource.com/article/18/10/getting-started-minikube +[4]: https://opensource.com/article/19/10/namespaces-and-containers-linux +[5]: https://www.busybox.net/ +[6]: http://hub.docker.com +[7]: http://quay.io +[8]: https://opensource.com/article/20/11/orchestration-vs-automation +[9]: https://opensource.com/article/20/10/keep-cloud-open +[10]: https://opensource.com/downloads/kubernetes-cheat-sheet From db315b32046e909672381e8bdc71f4c7e72f2ebe Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 May 2021 05:04:12 +0800 Subject: [PATCH 105/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210506=20?= =?UTF-8?q?Resolve=20DHCPD=20and=20HTTPD=20startup=20failures=20with=20Ans?= =?UTF-8?q?ible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210506 Resolve DHCPD and HTTPD startup failures with Ansible.md --- ...and HTTPD startup failures with Ansible.md | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 sources/tech/20210506 Resolve DHCPD and HTTPD startup failures with Ansible.md diff --git a/sources/tech/20210506 Resolve DHCPD and HTTPD startup failures with Ansible.md b/sources/tech/20210506 Resolve DHCPD and HTTPD startup failures with Ansible.md new file mode 100644 index 0000000000..5590869efc --- /dev/null +++ b/sources/tech/20210506 Resolve DHCPD and HTTPD startup failures with Ansible.md @@ -0,0 +1,199 @@ +[#]: subject: (Resolve DHCPD and HTTPD startup failures with Ansible) +[#]: via: (https://opensource.com/article/21/5/ansible-server-services) +[#]: author: (David Both https://opensource.com/users/dboth) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Resolve DHCPD and HTTPD startup failures with Ansible +====== +Ancient remnants can create strange problems. +![Someone wearing a hardhat and carrying code ][1] + +Last year, I had a problem: HTTPD (the [Apache web server][2]) would not start on a reboot or cold boot. To fix it, I added an override file, `/etc/systemd/system/httpd.service.d/override.conf`. It contained the following statements to delay HTTPD's startup until the network is properly started and online. (If you've read my previous [articles][3], you'll know that I use NetworkManager and systemd, not the old SystemV network service and start scripts). + + +``` +# Trying to delay the startup of httpd so that the network is +# fully up and running so that httpd can bind to the correct +# IP address +# +# By David Both, 2020-04-16 +[Unit] +After=network-online.target +Wants=network-online.target +``` + +This circumvention worked until recently when I not only needed to start HTTPD manually; I also had to start DHCPD manually. The wait for the `network-online.target` was no longer working for some reason. + +### The causes and my fix + +After more internet searches and some digging around my `/etc` directory, I think I discovered the true culprit: I found an ancient remnant from the SystemV and init days in the `/etc/init.d` directory. There was a copy of the old network startup file that should not have been there. I think this file is left over from when I spent some time using the old network program before I switched over to NetworkManager. + +Apparently, systemd did what it is supposed to do. It generated a target file from that SystemV start script on the fly and tried to start the network using both the SystemV start script and systemd target that it created. This caused systemd to try to start HTTPD and DHCPD before the network was ready, and those services timed out and did not start. + +I removed the `/etc/init.d/network` script from my server, and now it reboots without me having to start the HTTPD and DHCPD services manually. This is a much better solution because it gets to the root cause and is not simply a circumvention. + +But this is still not the best solution. That file is owned by the `network-scripts` package and will be replaced if that package is updated. So, I also removed that package from my server, which ensures that this should not happen again. Can you guess how I discovered this? + +After I upgraded to Fedora 34, DHCPD and HTTPD again would not start. After some additional experimentation, I found that the `override.conf` file also needed a couple of lines added. These two new lines force those two services to wait until 60 seconds have passed before starting. That seems to solve the problem again—for now. + +The revised `override.conf` file now looks like the following. It not only sleeps for 60 seconds before starting the services, it specifies that it is not supposed to start until after the `network-online.target` starts. The latter part is what seems to be broken, but I figured I might as well do both things since one or the other usually seems to work. + + +``` +# Delay the startup of any network service so that the +# network is fully up and running so that httpd can bind to the correct +# IP address. +# +# By David Both, 2020-04-28 +# +################################################################################ +#                                                                              # +#  Copyright (C) 2021 David Both                                               # +#  [LinuxGeek46@both.org][4]                                                        # +#                                                                              # +#  This program is free software; you can redistribute it and/or modify        # +#  it under the terms of the GNU General Public License as published by        # +#  the Free Software Foundation; either version 2 of the License, or           # +#  (at your option) any later version.                                         # +#                                                                              # +#  This program is distributed in the hope that it will be useful,             # +#  but WITHOUT ANY WARRANTY; without even the implied warranty of              # +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               # +#  GNU General Public License for more details.                                # +#                                                                              # +#  You should have received a copy of the GNU General Public License           # +#  along with this program; if not, write to the Free Software                 # +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   # +#                                                                              # +################################################################################ + +[Service] +ExecStartPre=/bin/sleep 60 + +[Unit] +After=network-online.target +Wants=network-online.target +``` + +### Making it easier with Ansible + +This is the type of problem that lends itself to an easy solution using Ansible. So, I created a relatively simple playbook. It has two plays. The first play removes the `network-scripts` and then the `/etc/init.d/network` script because if the script is there and the package is not, the script won’t be removed. At least one of my systems had that circumstance. I run this play against all the hosts whether they are workstations or servers. + +The second play runs only against the server and installs the `override.conf` files. + + +``` +################################################################################ +#                                 fix-network                                  # +#                                                                              # +# This Ansible playbook removes the network-scripts package and the            # +# /etc/rc.d/init.d/network SystemV start script. The /etc/init.d/network       # +# script which conflicts with NetworkManager and causes some network services  # +# such as DHCPD and HTTPD to fail to start.                                    # +#                                                                              # +# This playbook also installs override files for httpd and dhcpd which causes  # +# them to wait 60 seconds before starting.                                     # +#                                                                              # +# All of these things taken together seem to resolve or circumvent the issues  # +# that seem to stem from multiple causes.                                      # +#                                                                              # +# NOTE: The override file is service neutral and can be used with any service. # +#       I have found that using the systemctl edit command does not work as    # +#       it is supposed to according to the documenation.                       # +#                                                                              # +#                                                                              # +# From the network-scripts package info:                                       # +#                                                                              # +# : This package contains the legacy scripts for activating & deactivating of most +# : network interfaces. It also provides a legacy version of 'network' service. +# : +# : The 'network' service is enabled by default after installation of this package, +# : and if the network-scripts are installed alongside NetworkManager, then the +# : ifup/ifdown commands from network-scripts take precedence over the ones provided +# : by NetworkManager. +# : +# : If user has both network-scripts & NetworkManager installed, and wishes to +# : use ifup/ifdown from NetworkManager primarily, then they has to run command: +# :  $ update-alternatives --config ifup +# : +# : Please note that running the command above will also disable the 'network' +# : service. +#                                                                              # +#                                                                              # +#------------------------------------------------------------------------------# +#                                                                              # +# Change History                                                               # +# 2021/04/26 David Both V01.00 New code.                                       # +# 2021/04/28 David Both V01.10 Revised to also remove network-scripts package. # +#                              Also install an override file to do a 60 second # +#                              timeout before the services start.              #                                                                              #                                                                              # +################################################################################ +\--- +################################################################################ +# Play 1: Remove the /etc/init.d/network file +################################################################################ +\- name: Play 1 - Remove the network-scripts legacy package on all hosts +  hosts: all + +  tasks: +    - name: Remove the network-scripts package if it exists +      dnf: +        name: network-scripts +        state: absent + +    - name: Remove /etc/init.d/network file if it exists but the network-scripts package is not installed +      ansible.builtin.file: +        path: /etc/init.d/network +        state: absent + +\- name: Play 2 - Install override files for the server services +  hosts: server + +  tasks: + +    - name: Install the override file for DHCPD +      copy: +        src: /root/ansible/BasicTools/files/override.conf +        dest: /etc/systemd/system/dhcpd.service.d +        mode: 0644 +        owner: root +        group: root + +    - name: Install the override file for HTTPD +      copy: +        src: /root/ansible/BasicTools/files/override.conf +        dest: /etc/systemd/system/httpd.service.d +        mode: 0644 +        owner: root +        group: root +``` + +This Ansible play removed that bit of cruft from two other hosts on my network and one host on another network that I support. All the hosts that still had the SystemV network script and the `network-scripts` package have not been reinstalled from scratch for several years; they were all upgraded using `dnf-upgrade`. I never circumvented NetworkManager on my newer hosts, so they don't have this problem. + +This playbook also installed the override files for both services. Note that the override file has no reference to the service for which it provides the configuration override. For this reason, it can be used for any service that does not start because the attempt to start them has not allowed the NetworkManager service to finish starting up. + +### Final thoughts + +Although this problem is related to systemd startup, I cannot blame it on systemd. This is, partly at least, a self-inflicted problem caused when I circumvented systemd. At the time, I thought I was making things easier for myself, but I have spent more time trying to locate the problem caused by my avoidance of NetworkManager than I ever saved because I had to learn it anyway. Yet in reality, this problem has multiple possible causes, all of which are addressed by the Ansible playbook. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/ansible-server-services + +作者:[David Both][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/dboth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/build_structure_tech_program_code_construction.png?itok=nVsiLuag (Someone wearing a hardhat and carrying code ) +[2]: https://opensource.com/article/18/2/how-configure-apache-web-server +[3]: https://opensource.com/users/dboth +[4]: mailto:LinuxGeek46@both.org From 96fdc4b8b8bb167f527605a350ec768fc257716a Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 May 2021 05:04:32 +0800 Subject: [PATCH 106/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210506=20?= =?UTF-8?q?Optimal=20flow:=20Building=20open=20organizations=20where=20lea?= =?UTF-8?q?ders=20can=20emerge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md --- ... organizations where leaders can emerge.md | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md diff --git a/sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md b/sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md new file mode 100644 index 0000000000..e9073ee7b8 --- /dev/null +++ b/sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md @@ -0,0 +1,122 @@ +[#]: subject: (Optimal flow: Building open organizations where leaders can emerge) +[#]: via: (https://opensource.com/open-organization/21/5/optimal-flow-open-leaders) +[#]: author: (Jos Groen https://opensource.com/users/jos-groen) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Optimal flow: Building open organizations where leaders can emerge +====== +To create innovative and engaged organizations, you'll need to set the +conditions for open leaders to thrive. This checklist can help. +![Arrows moving across a landscape][1] + +Previously in this series on open organizations and talent management, I’ve discussed the importance of [cultivating an organization’s open leaders][2] by getting out of their way and letting them flourish. As someone invested in developing your organization’s next generation of leaders, know that your goal here isn’t to be entirely “hands off”; instead, your goal is to spend time building the systems and processes that help new leaders find their footing and unleash their passion. The truth is that leadership talent rarely develops on its own. + +Building these systems and processes is critical during your open organization’s _hybrid phase_. In this article, I’ll discuss what that means and why it’s so important. I’ll also offer a few crucial questions you should be asking yourself as you nurture talent during this phase of your organization’s transformation. + +### A breeding ground for leadership talent + +Conventional organizations don’t become [open organizations][3] over night. They _evolve_ into open organizations. That means your organization will never be _entirely closed_ or _entirely open_; it will exist in a state of transition. [This is the organization’s _hybrid_ state.][4] + +As [I’ve said before][2], during an organization’s hybrid phase, “you’ll encounter periods in which traditional and open practices operate side by side, even mixed and shuffled.” This can be a challenge. But it can also be an opportunity. + +This hybrid situation is especially critical, because it’s the time when your vision and approach to leadership talent development determine the success of the transformation to a more open organization (and the speed at which you achieve that success). It’s the breeding ground of your new organizational culture. + +So your focus on vision and strategy is key here. You’ll need to create the principles and preconditions for a psychologically safe environment, one with permeable boundaries that allow talent to flow. + +Here are some steps you might take to do this. + +### Think flow + +First of all, get to know your own purpose, strengths, and passions. And do this not just “in your head,” with [your heart and gut intelligence][5], too. In this way, leaders can explore their own compass and intuitive power from within. What do I intrinsically like and dislike? + +You’ll need to create the principles and preconditions for a psychologically safe environment, one with permeable boundaries that allow talent to flow. + +Then imagine ways you can ensure a successful flow of talent throughout your organization. Consider various leadership development stages and map those stages to the areas and positions inside your organization where leadership talent might develop step by step. + +Ultimately, to create opportunities for your emerging leaders, you’re trying to connect knowledge from various areas—people, market, business, financial control and the “me” in that field. So if you are able to put them in these positions or in projects where these areas interconnect, you’ll achieve optimal flow. + +This will involve some key questions like: + + * How will leadership talent contribute to the success of the organization? + * What kind of balance between managers and leaders are you aiming for? + * Does your organization currently have enough leadership coaches and mentors available to help? + + + +Don’t forget to tap mentors outside your pool of existing managers. Managers tend to train other managers; leaders tend to train other leaders. By “leaders,” I mean those employees who assume inclusiveness and trust, who recognize the qualities of colleagues that make them so successful, and who share responsibility. Leaders support responsible people in making and implementing decisions. Leaders want to make themselves superfluous. + +### The safety to learn + +When thinking about talent development, know that you will need to provide a safe environment for emerging leaders to practice and learn. This way, talented employees can gain crucial experience. Failure is a great learning tool and a powerful part of this experience. But to be able to fail, people must feel there is a safety net—that is, that they can fail safely. + +As you work through your organization’s hybrid period, ask: + + * What resources do you need to create a safe environment for growth + * How will you know that you’ve created that environment? + + + +### Working through tensions + +You’ll experience tension during your organization’s hybrid period, as various parts of the organization (and various stakeholders) embrace change at their own paces. While some employees—especially your emerging leaders—will be pushing forward, others in the organization may not yet be ready for change that rapidly. As a result, you might observe insufficient willingness to invest in talent, in preparation, and in the guidance these emerging leaders need. + +So ask yourself: + + * Is the organization prepared to invest in up-and-coming leaders? + * Do you actually know how talented employees are prepared for their futures in your organization? + + + +### The space to practice + +Leadership talent must be given time and space to practice; this will lay the foundation for their success. For example, you might offer highly skilled and motivated employees an opportunity to present to the board, or even to a group of colleagues. Or you can give potential leaders a consulting role on the board. Have them prepare and chair important meetings. Have them research and prepare reports. + +Nothing is more important than teaching them to dig deeper into a subject they’re responsible for. + +Nothing is more important than teaching them to dig deeper into a subject they’re responsible for. You can also think about giving them a significant project or task that will introduce them to some aspects of leadership and collaboration. + +So ask yourself: + + * How can I create opportunities for my emerging leaders to gain visibility? + * How can I better understand what my younger leaders care about? + + + +### Model what you seek + +Leadership talent develops through collaboration. So make sure you’re available as a coach and mentor for emerging leaders in your organization. This is the best way to see precisely what future leaders are capable of and learn whether they have the capacity to stretch even further. Don’t limit the support you offer them to some training and perhaps a bit of external coaching. Offer these yourself. Teach your leadership talent how they can begin to stand on their own—and, yes, to fail on their own, too. Share the experiences that have shaped you as a leader, and offer your own insights into the aspects of the business you find most compelling. In short, help them gain the skills they need to create their own thriving teams, even when that means making their own presence less important or even unnecessary. A passionate and committed leader takes the time to do this. Great leaders create other leaders! + +So ask yourself: + + * What exemplary behavior can I provide so that emerging leaders might learn from it? + * How can I be available to answer questions openly at all levels of awareness for the talent? + * What insights can I offer that are essential for further development? + * How can I personally support leaders as they develop their skills? + * What does the talent need from me to develop further? + + + +In my next article, I’ll address leadership talent in various locations in your organization—at the top, in the middle management, and on the ground. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/open-organization/21/5/optimal-flow-open-leaders + +作者:[Jos Groen][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jos-groen +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/BUSINESS_opennature2-a.png?itok=UfPGAl5Q (Arrows moving across a landscape) +[2]: https://opensource.com/open-organization/21/3/open-spaces-leadership-talent +[3]: https://theopenorganization.org/definition/ +[4]: https://opensource.com/open-organization/20/6/organization-everyone-deserves +[5]: https://opensource.com/open-organization/21/4/open-leadership-listen-heart From 93356904ead577512d185a4c213ed897f37045b7 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Fri, 7 May 2021 05:04:55 +0800 Subject: [PATCH 107/170] =?UTF-8?q?=E9=80=89=E9=A2=98[news]:=2020210506=20?= =?UTF-8?q?Nitrux=20Linux=20Is=20Demanding=20an=20Apology=20From=20DistroW?= =?UTF-8?q?atch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/news/20210506 Nitrux Linux Is Demanding an Apology From DistroWatch.md --- ...s Demanding an Apology From DistroWatch.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sources/news/20210506 Nitrux Linux Is Demanding an Apology From DistroWatch.md diff --git a/sources/news/20210506 Nitrux Linux Is Demanding an Apology From DistroWatch.md b/sources/news/20210506 Nitrux Linux Is Demanding an Apology From DistroWatch.md new file mode 100644 index 0000000000..d97f1a449b --- /dev/null +++ b/sources/news/20210506 Nitrux Linux Is Demanding an Apology From DistroWatch.md @@ -0,0 +1,86 @@ +[#]: subject: (Nitrux Linux Is Demanding an Apology From DistroWatch) +[#]: via: (https://news.itsfoss.com/nitrux-linux-distrowatch-apology/) +[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Nitrux Linux Is Demanding an Apology From DistroWatch +====== + +DistroWatch is a popular web portal that tracks new Linux distribution releases, informs the changes briefly and offers a catalog of details for almost every distribution. + +Even though it provides essential information regarding most of the distros, it looks like it does not display correct details for Nitrux Linux. Of course, with tons of information to manage and update — it is highly likely that some information could be outdated or incorrect. + +However, when [Uri Herrera][1] reached out to request correction, the maintainer of DistroWatch seems to believe that Nitrux is lying about the information being requested to be modified. + +Hence, Nitrux Linux had to come up with an [open letter][2] where they explain more about the incident and demand an apology for making such kind of remarks. + +### DistroWatch Information Page on Nitrux + +![][3] + +As you can notice in the screenshot above, DistroWatch lists it as a distro based on Ubuntu (LTS), which it isn’t anymore. + +In fact, we have previously reported that [Nitrux Linux ditched Ubuntu][4] favoring Debian as its base completely. Also, Nitrux wasn’t totally based on Ubuntu, but utilized Ubuntu sources. + +You can also go through our [interview with Uri Herrera][1] to explore more about Nitrux distribution. + +In addition to that, there is also an interesting piece of information here: + +> Registration with an e-mail address was required to download this distribution, however public downloads have been available since mid-2020 + +I think this may have been poorly worded. Nitrux was already publicly available to download. + +It required sponsorship/donation to access and download the stable ISO while they offered development/minimal builds and the source for free. + +![][5] + +Not just limited to this, but DistroWatch also fails to mention the correct version number. + +So, definitely, something needs correction while the creator of DistroWatch, **Jesse Smith** (@BlowingUpBits) does not seem to be on the same side as per this tweet: + +> Confirmed. Nitrux is based on Ubuntu 20.04 and pulls from multiple Ubuntu repositories. Not sure why they keep lying about this on Twitter and their website. +> +> — BlowingUpBits (@BlowingUpBits) [May 6, 2021][6] + +And, this led to the [open letter][2] where Uri Herrera mentions: + +> Because of this, we make the request publicly that you or your staff amend the erroneous information that you display on your website about our product, including logos, names, links, descriptions, and versions. Additionally, _we demand an apology_ from you and the staff member responsible for the [incident][7] that finally led to this open letter. _Our request is non-negotiable, and we will not accept anything less for our demand._ + +### Closing Thoughts + +If it isn’t a surprise, this is a simple matter of correcting information while the creator of Nitrux Linux is trying to request the necessary changes. + +Nitrux Linux has always been assumed as a “commercial” distribution in the past just because they had a paywall like Zorin OS’s ultimate edition, which isn’t true either. Nitrux Linux was always a free and open-source Linux distribution with a unique approach. + +_What do you think about the points mentioned in the open letter? Should DistroWatch make amends here to display correct information? Let me know your thoughts in the comments below._ + +#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! + +If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. + +I'm not interested + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/nitrux-linux-distrowatch-apology/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://itsfoss.com/nitrux-linux/ +[2]: https://nxos.org/other/open-letter-distrowatch/ +[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI4NScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[4]: https://news.itsfoss.com/nitrux-linux-debian/ +[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ4OCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[6]: https://twitter.com/BlowingUpBits/status/1390116053183868928?ref_src=twsrc%5Etfw +[7]: https://twitter.com/BlowingUpBits/status/1390116053183868928 From 22bbb87f1524da4f83e592495b36a38ee541aa03 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 7 May 2021 08:35:31 +0800 Subject: [PATCH 108/170] translated --- ... Control All Your RGB Lighting Settings.md | 92 ------------------- ... Control All Your RGB Lighting Settings.md | 92 +++++++++++++++++++ 2 files changed, 92 insertions(+), 92 deletions(-) delete mode 100644 sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md create mode 100644 translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md diff --git a/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md deleted file mode 100644 index 620a4acff6..0000000000 --- a/sources/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md +++ /dev/null @@ -1,92 +0,0 @@ -[#]: subject: (An Open-Source App to Control All Your RGB Lighting Settings) -[#]: via: (https://itsfoss.com/openrgb/) -[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -An Open-Source App to Control All Your RGB Lighting Settings -====== - -**_Brief_:** _OpenRGB is a useful open-source utility to manage all your RGB lighting under a single roof. Let’s find out more about it._ - -No matter whether it is your keyboard, mouse, CPU fan, AIO, and other connected peripherals or components, Linux does not have official software support to control the RGB lighting. - -And, OpenRGB seems to be an all-in-one RGB lighting control utility for Linux. - -### OpenRGB: An All-in-One RGB Lighting Control Center - -![][1] - -Yes, you may find different tools to tweak the settings like **Piper** to specifically [configure a gaming mouse on Linux][2]. But, if you have a variety of components or peripherals, it will be a cumbersome task to set them all to your preference of RGB color. - -OpenRGB is an impressive utility that not only focuses on Linux but also available for Windows and macOS. - -It is not just an idea to have all the RGB lighting settings under one roof, but it aims to get rid of all the bloatware apps that you need to install to tweak lighting settings. - -Even if you are using a Windows-powered machine, you probably know that software tools like Razer Synapse are resource hogs and come with their share of issues. So, OpenRGB is not just limited for Linux users but for every user looking to tweak RGB settings. - -It supports a long list of devices, but you should not expect support for everything. - -### Features of OpenRGB - -![][3] - -It empowers you with many useful functionalities while offering a simple user experience. Some of the features are: - - * Lightweight user interface - * Cross-platform support - * Ability to extend functionality using plugins - * Set colors and effects - * Ability to save and load profiles - * View device information - * Connect multiple instances of OpenRGB to synchronize lighting across multiple PCs - - - -![][4] - -Along with all the above-mentioned features, you get a good control over the lighting zones, color mode, colors, and more. - -### Installing OpenRGB in Linux - -You can find AppImage files and DEB packages on their official website. For Arch Linux users, you can also find it in [AUR][5]. - -For additional help, you can refer to our [AppImage guide][6] and [ways to install DEB files][7] to set it up. - -The official website should let you download packages for other platforms as well. But, if you want to explore more about it or compile it yourself, head to its [GitLab page][8]. - -[OpenRGB][9] - -### Closing Thoughts - -Even though I do not have many RGB-enabled devices/components, I could tweak my Logitech G502 mouse successfully. - -I would definitely recommend you to give it a try if you want to get rid of multiple applications and use a lightweight interface to manage all your RGB lighting. - -Have you tried it already? Feel free to share what you think about it in the comments! - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/openrgb/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb.jpg?resize=800%2C406&ssl=1 -[2]: https://itsfoss.com/piper-configure-gaming-mouse-linux/ -[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-supported-devices.jpg?resize=800%2C404&ssl=1 -[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-logi.jpg?resize=800%2C398&ssl=1 -[5]: https://itsfoss.com/aur-arch-linux/ -[6]: https://itsfoss.com/use-appimage-linux/ -[7]: https://itsfoss.com/install-deb-files-ubuntu/ -[8]: https://gitlab.com/CalcProgrammer1/OpenRGB -[9]: https://openrgb.org/ diff --git a/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md new file mode 100644 index 0000000000..450a16d320 --- /dev/null +++ b/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md @@ -0,0 +1,92 @@ +[#]: subject: (An Open-Source App to Control All Your RGB Lighting Settings) +[#]: via: (https://itsfoss.com/openrgb/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +一个控制所有 RGB 灯光设置的开源应用 +====== + +**_简介_:**_OpenRGB 是一个有用的开源工具,可以一个工具管理所有的 RGB 灯光。让我们来了解一下它。_ + +无论是你的键盘、鼠标、CPU 风扇、AIO,还是其他连接的外围设备或组件,Linux 都没有官方软件支持来控制 RGB 灯光。 + +而 OpenRGB 似乎是一个适用于 Linux 的多合一 RGB 灯光控制工具。 + +### OpenRGB:多合一的 RGB 灯光控制中心 + +![][1] + +是的,你可能会找到不同的工具来调整设置,如 **Piper** 专门[在 Linux 上配置游戏鼠标][2]。但是,如果你有各种组件或外设,要把它们都设置成你喜欢的 RGB 颜色,那将是一件很麻烦的事情。 + +OpenRGB 是一个令人印象深刻的工具,它不仅专注于 Linux,也可用于 Windows 和 MacOS。 + +它不仅仅是一个将所有 RGB 灯光设置放在一个工具下的想法,而是旨在摆脱所有需要安装来调整灯光设置的臃肿软件。 + +即使你使用的是 Windows 系统的机器,你可能也知道像 Razer Synapse 这样的软件工具是占用资源的,并伴随着它们的问题。因此,OpenRGB 不仅仅局限于 Linux 用户,还适用于每一个希望调整 RGB 设置的用户。 + +它支持大量设备,但你不应该期待对所有设备的支持。 + +### OpenRGB 的特点 + +![][3] + +它在提供简单的用户体验的同时,赋予了你许多有用的功能。其中的一些特点是: + + * 轻便的用户界面 + * 跨平台支持 + * 能够使用插件扩展功能 + * 设置颜色和效果 + * 能够保存和加载配置文件 + * 查看设备信息 + * 连接 OpenRGB 的多个实例,在多台电脑上同步灯光 + + + +![][4] + +除了上述所有的特点外,你还可以很好地控制照明区域、色彩模式、颜色等。 + +### 在 Linux 中安装 OpenRGB + +你可以在其官方网站上找到 AppImage 文件和 DEB 包。对于 Arch Linux 用户,你也可以在 [AUR][5] 中找到它。 + +如需更多帮助,你可以参考我们的 [AppImage 指南][6]和[安装 DEB 文件的方法][7]来设置。 + +官方网站应该也可以让你下载其他平台的软件包。但是,如果你想探索更多关于它的信息或自己编译它,请前往它的 [GitLab 页面][8]。 + +[OpenRGB][9] + +### 最后感想 + +尽管我没有很多支持 RGB 的设备/组件,但我可以成功地调整我的罗技 G502 鼠标。 + +如果你想摆脱多个应用,用一个轻量级的界面来管理你所有的 RGB 灯光,我肯定会推荐你试一试。 + +你已经试过它了吗?欢迎在评论中分享你对它的看法! + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/openrgb/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb.jpg?resize=800%2C406&ssl=1 +[2]: https://itsfoss.com/piper-configure-gaming-mouse-linux/ +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-supported-devices.jpg?resize=800%2C404&ssl=1 +[4]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/openrgb-logi.jpg?resize=800%2C398&ssl=1 +[5]: https://itsfoss.com/aur-arch-linux/ +[6]: https://itsfoss.com/use-appimage-linux/ +[7]: https://itsfoss.com/install-deb-files-ubuntu/ +[8]: https://gitlab.com/CalcProgrammer1/OpenRGB +[9]: https://openrgb.org/ From 6c8f134867baa3a3d766983a7ac4c8d29e0c7c52 Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 7 May 2021 08:40:05 +0800 Subject: [PATCH 109/170] translating --- sources/tech/20210505 Drop telnet for OpenSSL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210505 Drop telnet for OpenSSL.md b/sources/tech/20210505 Drop telnet for OpenSSL.md index 76a39ad88f..b412216178 100644 --- a/sources/tech/20210505 Drop telnet for OpenSSL.md +++ b/sources/tech/20210505 Drop telnet for OpenSSL.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/drop-telnet-openssl) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From dc1ccf342cafaa84588b94a3bfbf9d26ec911bbe Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Fri, 7 May 2021 09:07:17 +0800 Subject: [PATCH 110/170] Rename sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md to sources/talk/20210506 Optimal flow- Building open organizations where leaders can emerge.md --- ... flow- Building open organizations where leaders can emerge.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210506 Optimal flow- Building open organizations where leaders can emerge.md (100%) diff --git a/sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md b/sources/talk/20210506 Optimal flow- Building open organizations where leaders can emerge.md similarity index 100% rename from sources/tech/20210506 Optimal flow- Building open organizations where leaders can emerge.md rename to sources/talk/20210506 Optimal flow- Building open organizations where leaders can emerge.md From 92869d3b182a5e0e6fcdf268047bf7da4db50ad0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 09:14:14 +0800 Subject: [PATCH 111/170] =?UTF-8?q?=E6=B8=85=E9=99=A4=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...r Beta Testing With A Stunning New Look.md | 155 -------------- ...s Week- Take a Look at the New Features.md | 176 ---------------- ...untu 21.04 is Now Available to Download.md | 125 ------------ ...App Upgrades With Cutting-Edge Features.md | 169 ---------------- ...12 Released with Essential Improvements.md | 146 -------------- ...for its CentOS Alternative AlmaLinux OS.md | 90 --------- ...able Now- Here Are the Top New Features.md | 190 ------------------ ...ment Begins, Daily Builds Available Now.md | 85 -------- 8 files changed, 1136 deletions(-) delete mode 100644 sources/news/20210416 Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look.md delete mode 100644 sources/news/20210419 Ubuntu 21.04 is Releasing This Week- Take a Look at the New Features.md delete mode 100644 sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md delete mode 100644 sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md delete mode 100644 sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md delete mode 100644 sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md delete mode 100644 sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md delete mode 100644 sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md diff --git a/sources/news/20210416 Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look.md b/sources/news/20210416 Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look.md deleted file mode 100644 index 9687debad2..0000000000 --- a/sources/news/20210416 Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look.md +++ /dev/null @@ -1,155 +0,0 @@ -[#]: subject: (Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look) -[#]: via: (https://news.itsfoss.com/zorin-os-16-beta/) -[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Much-Anticipated Zorin OS 16 is Available for Beta Testing With A Stunning New Look -====== - -Zorin OS 16 was one of my picks for [distributions to look out for in 2021][1]. They always do something interesting with every major upgrade, and it looks like Zorin OS 16 is going to be an exciting release to talk about. - -The Zorin team [announced][2] the availability of Zorin OS 16 (based on **Ubuntu 20.04 LTS**) beta along with all the new features that come with it. - -Here, I will mention the highlights of the new release along with a video tour (with the download link at the bottom). - -### Zorin OS 16 Beta: What’s New? - -Zorin OS always tries to make the UX cleaner and attractive while improving the performance, let us see what Zorin OS 16 is all about. Here’s a short video tour to see it in action: - -Now, let me highlight the key changes: - -#### User Interface Refresh - -![][3] - -The most exciting part of this release is the UI overhaul that gives it an impressive look. - -Zorin OS 15 was already a [gorgeous Linux distribution][4]. And with Zorin OS 16, they have refreshed the user interface to look nicer and cleaner. - -It looks like we might have a good-looking alternative to Deepin Linux after all. - -The animations and the theme have been polished to look cleaner. Especially, with the new default background, it blends in pretty nice. In fact, it is a dynamic wallpaper that changes based on the time of the day. - -Also, the lock screen now displays your wallpaper blurred. - -#### Flathub Included - -The adoption of [Flatpak][5] is increasing every day. Now, Zorin OS 16 enables the Flathub repository by default. - -So, you can easily find Flatpak apps right from the Software store. - -Of course, you also have Snap store enabled by default. Hence, the software store presents you a range of catalogs. - -#### Improved Welcome Tour - -![][6] - -This is quite common for every distribution to include. However, this time Zorin OS has updated the tour to guide the user through the basics along with customization options. - -This is definitely going to be very helpful for a newbie. - -#### New Touchpad Gestures - -Even though I stick to my desktop, for users with Laptops the new touchpad gestures should help you navigate quickly between workspaces and activity overview. - -#### Addition of a Sound Recorder App - -The new sound recorder app is a minimal and beautiful app to let you record audio/speech. - -Having an audio recorder out of the box is a plus, not many distributions offer it. - -#### Customization Improvements - -![][7] - -Zorin OS 15 was moderately customizable. With Zorin OS 16, you get enhanced customization options for the taskbar and the overall layout of the system. - -You can set the panel’s transparency, display it on multiple monitors, auto-hide, and more. For the appearance, you can now select an icon theme, change the app theme, fonts, and more. - -The options look much cleaner and easier to find. - -#### Windows 10X-like Desktop Layout Planned - -![][8] - -They plan to introduce a Windows 10X-like desktop layout for users with comfortable with touchpad, touchscreens, and mice. This isn’t included with the beta, but it is expected arrive before the final release. - -Zorin OS was already a good choice as a [Windows-like distribution][9]. - -#### Other Improvements - -There are several under-the-hood tweaks that would contribute to a better user experience. Some of them include: - - * A new jelly animation effect when moving windows and minimizing it - * Fractional scaling support for high-res displays - * Improved Fingerprint reader support - * Unread icons - * Refresh settings app - * Disabled built-in tracking and telemetry in Firefox - * Linux Kernel 5.8 - - - -### Try Zorin OS 16 (Beta) - -You get the Zorin OS 16 beta ISO from the download button below. It is worth noting that it may not be wise to use it on a production system while it is meant for beta testing. - -As mentioned in their announcement post, other editions of Zorin OS 16 – such as Lite, Education, and Ultimate – will be available over the coming months. - -[Zorin OS 16 Core Beta][10] - -If you are curious, you may take a look at the full changelog to know more about the release. - -![][11] - -I'm not interested - -#### _Related_ - - * [Linux Release Roundup #21.16: CopyQ 4.0, Zorin OS 16 Beta, Slackware 15 Beta, and More New Releases][12] - * ![][13] ![Linux Release Roundups][14] - - - * [7 Linux Distros to Look Forward to in 2021][1] - * ![][13] ![Best Linux Distributions in 2021][15] - - - * [Fedora 34 Beta Arrives With Awesome GNOME 40 (Unlike Ubuntu 21.04)][16] - * ![][13] ![][17] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/zorin-os-16-beta/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/linux-distros-for-2021/ -[2]: https://blog.zorin.com/2021/04/15/introducing-zorin-os-16-test-the-beta-today/ -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ0MCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[4]: https://itsfoss.com/beautiful-linux-distributions/ -[5]: https://itsfoss.com/what-is-flatpak/ -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzY0MCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzU3Micgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[9]: https://itsfoss.com/windows-like-linux-distributions/ -[10]: https://zorinos.com/download/16/core/beta -[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[12]: https://news.itsfoss.com/linux-release-roundup-2021-16/ -[13]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[14]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 -[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/best-distros-2021.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[16]: https://news.itsfoss.com/fedora-34-beta-release/ -[17]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/fedora-34-beta-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210419 Ubuntu 21.04 is Releasing This Week- Take a Look at the New Features.md b/sources/news/20210419 Ubuntu 21.04 is Releasing This Week- Take a Look at the New Features.md deleted file mode 100644 index 30a313a024..0000000000 --- a/sources/news/20210419 Ubuntu 21.04 is Releasing This Week- Take a Look at the New Features.md +++ /dev/null @@ -1,176 +0,0 @@ -[#]: subject: (Ubuntu 21.04 is Releasing This Week! Take a Look at the New Features) -[#]: via: (https://news.itsfoss.com/ubuntu-21-04-features/) -[#]: author: (Abhishek https://news.itsfoss.com/author/root/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Ubuntu 21.04 is Releasing This Week! Take a Look at the New Features -====== - -Ubuntu 21.04 is releasing this week on April 22. Some of you might already have [upgraded to Ubuntu 21.04 beta][1] to enjoy the latest and greatest (?) version of Ubuntu. - -For the rest, who are curious about what’s new in Ubuntu 21.04, I have curated a list here. - -### What’s new in Ubuntu 21.04 ‘Hiruste Hippo’? - -First of all, this is an interim release. Don’t expect groundbreaking changes here specially when you compare it to Ubuntu 20.10. There are subtle visual changes here and there, a bit of performance improvements, newer versions of popular software and libraries in the official repository along with the addition of a couple of new features. - -![][2] - -#### 1\. Wayland becomes the default display server - -After the failed experiment with Ubuntu 17.10, Canonical is once again going with Wayland as the default display server in Ubuntu 21.04. - -Wayland has been available as an alternate option for past several releases. It is just becoming the default in this release. - -What does it mean to you? Wayland has a tad bit better performance specially when it comes to [multiple monitors and HiDPI screen handling][3]. - -However, you’ll find that several applications do not work very well or do not work at all in Wayland. This is painful for screen capture and recording applications. - -The good thing is that [switching back to Xorg from Wayland][4] is a matter of a few clicks. You just have to figure out if you cannot function well without Xorg server. - -#### 2\. Darker dark theme - -Yaru dark theme in Ubuntu 21.04 has a bit darker shade than the one in Ubuntu 20.10. This actually gives a nice look to the operating system, in my opinion. - -You can move the slider to see the visual difference between the dark shade of the two versions. - -#### 3\. Dark shell theme by default - -Ubuntu 20.10 the standard Yaru theme by default and you had to opt for the dark mode. That remains as it is in 21.04 as well except the shell theme has been switched to Yaru Dark by default. - -This means that even though your system will have the light theme by default, the notifications, message tray and the system tray will use dark theme. - -![][2] - -#### 4\. Power mode option for laptops - -This is a minor change in the power settings. If you are using a laptop, you can now choose a power mode from the settings. - -![][5] - -You have the following options available: - - * Performance: Takes a lot of batter power but gives high performance (keeps bluetooth active, screen brightness high and more) - * Balanced power: Standard performance with decent batter usage - * Power saver: The focus is on saving battery power - - - -#### 5\. A hybrid mix of GNOME 3.38 and some GNOME 40 applications - -The much anticipated [GNOME 40 with the unorthodox horizontal layout is not available in Ubuntu 21.04][6]. Ubuntu team was not ready for the GTK 4 and the layout change. They are working to bring it to Ubuntu 21.10 in October this year. - -While some core components like Nautilus file manager remain at 3.38, some other GNOME apps like Epiphany browser, Disk Utility etc have the latest versions. - -#### 6\. Private home directories - -So far, the home directories had the permission of 755. Fresh installation of Ubuntu 21.04 will have this changed to 750 and thus making the [home directories private][7]. - -![][8] - -#### 7\. Recovery key option for encrypted installs - -While installing Ubuntu, if you opt for disk encryption, you can now also set a recovery key option directly in the installer. - -![Image Credit: OMG Ubuntu][9] - -#### 8\. Minor visual changes - -By no means these are groundbreaking changes. It’s just something I noticed in Ubuntu 21.04 so far. - -You’ll notice that the items on the right click context menu has been divided by more contrast colored lines. I believe this is for accessibility reasons. - -![][10] - -I also noticed that the mounted drives are displayed in the top-right corner of the desktop. If I recall correctly, it used to be under the Home and Trash icons in the previous versions. - -![][11] - -The default Yaru icons have been refreshed for a number of software. You can clearly notice it for the LibreOffice icons. - -![][12] - -#### 9\. Under the hood changes - -Some other changes you should be aware: - - * Support for [Smart Card][13] authentication via PAM - * Drag and Drop interaction support with software in the desktop view - * Pipewire support enabled to handle audio in sandboxed applications and screen recording - * nftables replaces iptables - - - -There are newer versions of software: - - * Linux kernel 5.11 - * Python 3.9 - * gEdit 3.38.1 - * LibreOffice 7.1.2 - * Firefox 87 - - - -By now you might have realized that there are not many changes in this new release of Ubuntu. There is support for newer hardware and improvements for HiDPI and fingerprint reader but that’s not for everyone. It includes the latest Linux kernel 5.11 if that’s any consolation. - -If you are using Ubuntu 20.10, you should upgrade to Ubuntu 21.04 anyway because 20.10 reaches end of life in July. - -What’s your overall feeling about Ubuntu 21.04? Were you expecting more new features? What are you missing the most here? - -![][14] - -I'm not interested - -#### _Related_ - - * [No GNOME 40 for Ubuntu 21.04 [And That's a Good Thing]][15] - * ![][16] ![No GNOME 40 in Ubuntu 21.04][17] - - - * [With 21.04, Ubuntu is Switching to Wayland by Default Again][18] - * ![][16] ![Ubuntu 21.04 to use Wayland by default][19] - - - * [Ubuntu 21.04 Beta is Now Available to Download][20] - * ![][16] ![][21] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-21-04-features/ - -作者:[Abhishek][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/root/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/upgrade-ubuntu-beta/ -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[3]: https://news.itsfoss.com/ubuntu-21-04-multi-monitor-support/ -[4]: https://itsfoss.com/switch-xorg-wayland/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQxMScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: https://news.itsfoss.com/gnome-40-release/ -[7]: https://news.itsfoss.com/private-home-directory-ubuntu-21-04/ -[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI2MScgd2lkdGg9Jzc3MScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ3OScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ2OCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQxOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[12]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzE2Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[13]: https://en.wikipedia.org/wiki/Smart_card -[14]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[15]: https://news.itsfoss.com/no-gnome-40-in-ubuntu-21-04/ -[16]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[17]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/gnome-40-ubuntu-21-04.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[18]: https://news.itsfoss.com/ubuntu-21-04-wayland/ -[19]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/wayland-by-default-in-ubuntu-21-04.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[20]: https://news.itsfoss.com/ubuntu-21-04-beta-release/ -[21]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu-21-04-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md b/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md deleted file mode 100644 index 825ad149af..0000000000 --- a/sources/news/20210422 Hurrah- Ubuntu 21.04 is Now Available to Download.md +++ /dev/null @@ -1,125 +0,0 @@ -[#]: subject: (Hurrah! Ubuntu 21.04 is Now Available to Download) -[#]: via: (https://news.itsfoss.com/ubuntu-21-04-release/) -[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Hurrah! Ubuntu 21.04 is Now Available to Download -====== - -It is time to make way for Ubuntu’s latest stable release 21.04 Hiruste Hippo. - -While we already know a great deal about the [features introduced with Ubuntu 21.04][1], it has been [officially announced][2]. - -Yes, there’s no GNOME 40, which is a bummer. But, here, let me briefly mention the key highlights of the release and how to get the latest ISO. - -### Ubuntu 21.04: Key Highlights - -Considering this as an interim release, there are no ground-breaking changes but still a few things to get excited about. - -#### Wayland Is The Default Display Server - -This could be one of the most significant changes that you may want to keep an eye on. - -Many applications fail to work with Wayland, but we’re slowly getting Wayland support on new application releases considering its performance and security benefits. - -So, this is probably a bold step to move away from Xorg. - -#### UI Enhancements - -![][3] - -Ranging from subtle improvements to the Dark Theme to the adoption of dark theme by default, you will be greeted with some UI enhancements for a good user experience. - -Also, [Google’s Flutter apps are coming to Ubuntu 21.04][4]. You will find them through the snap store, and it should potentially enable Linux desktop to have high quality cross-platform with improved user experience overall. - -In addition to that, you might observe a few things here and there that could look a bit different. - -#### GNOME 40 Applications & GNOME 3.38 - -Even though it does not come baked in with [GNOME 40][5], you will find the default applications updated to GNOME 40. - -So, the GNOME 40 apps have been made compatible with GNOME 3.38 for this release. The next release should make the transition to GNOME 40 without any hiccups. - -#### Private Home Directories - -![][6] - -The home directory was readable/writable by root and other users. However, with [Ubuntu 21.04, they are making it private][7]. - -#### Other Improvements - -There are plenty of other improvements that include under-the-hood changes for new hardware support, enhanced laptop support, and more. - -Of course, the packages have been updated to the latest as well along with the inclusion of [Linux Kernel 5.11][8]. - -### Things to Know Before You Upgrade - -If you are using Ubuntu 20.10, you can easily upgrade to Ubuntu 21.04 through the **Updates** section. - -In either case, if you are on Ubuntu 20.04 LTS, I would not recommend upgrading to Ubuntu 21.04 yet unless you want the latest and greatest at the expense of stability and potential issues. - -### Download Ubuntu 21.04 Now - -You can get the latest release from the official website, both torrent and a direct ISO file download should be available as options. - -At the time of publishing this, the official website still did not include a link to the latest images but it should be updated soon enough. - -[Ubuntu 21.04 Download][9] - -If you need a choice of desktop environment, you will have to wait for the official flavors of Ubuntu to release an upgrade, that will take a while. - -_What do you think about Ubuntu 21.04 release? Feel free to let me know your thoughts in the comments!_ - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [Ubuntu 21.04 is Releasing This Week! Take a Look at the New Features][1] - * ![][10] ![Ubuntu 21.04 New Features][11] - - - * [Ubuntu 21.04 Beta is Now Available to Download][12] - * ![][10] ![][13] - - - * [Ubuntu 21.04 To Offer GNOME 40 Apps with GNOME 3.38 Desktop][14] - * ![][10] ![][15] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-21-04-release/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/ubuntu-21-04-features/ -[2]: https://ubuntu.com/blog/ubuntu-21-04-is-here -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[4]: https://itsfoss.com/google-flutter-apps-linux/ -[5]: https://news.itsfoss.com/gnome-40-release/ -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI2MScgd2lkdGg9Jzc3MScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://news.itsfoss.com/private-home-directory-ubuntu-21-04/ -[8]: https://news.itsfoss.com/linux-kernel-5-11-release/ -[9]: https://ubuntu.com/download -[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[11]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu_21_04_features.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[12]: https://news.itsfoss.com/ubuntu-21-04-beta-release/ -[13]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/ubuntu-21-04-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[14]: https://news.itsfoss.com/ubuntu-21-04-gnome-40-apps/ -[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/ubuntu-21-04-gnome-40-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md b/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md deleted file mode 100644 index aa92c51969..0000000000 --- a/sources/news/20210426 KDE Announces Various App Upgrades With Cutting-Edge Features.md +++ /dev/null @@ -1,169 +0,0 @@ -[#]: subject: (KDE Announces Various App Upgrades With Cutting-Edge Features) -[#]: via: (https://news.itsfoss.com/kde-gear-app-release/) -[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -KDE Announces Various App Upgrades With Cutting-Edge Features -====== - -Alongside their Plasma Desktop Environment, KDE develops a huge range of other apps collectively named KDE Gear. These range from content creation apps such as **Kdenlive** and **Kwave** to utilities such as Dolphin, Discover, and Index. - -KDE Gear is something new. It includes heaps of improvements to almost all the KDE apps, which we will be exploring here. - -### What Is KDE Gear? - -![][1] - -For many people, this name will sound unfamiliar. This is because [KDE Gear][2] is the new name for the [KDE Applications][3]. Previously, they were released individually. The new name aims to unify their marketing and provide greater clarity to users. - -According to **KDE developer Jonathan Riddell**: - -> KDE Gear is the new name for the app (and libraries and plugins) bundle of projects that want the release faff taken off their hands… It was once called just KDE, then KDE SC, then KDE Applications, then the unbranded release service, and now we’re banding it again as KDE Gear. - -This rebrand makes sense, especially as the KDE logo itself is pretty much a glorified gear. - -### Major KDE App Upgrades - -KDE Gear contains many applications, each with its purpose. Here, we will be looking at a few of the key highlights. These include: - - * Kdenlive - * Dolphin - * Elisa - * Index - - - -We have also covered the new [Kate editor release challenging Microsoft’s Visual Studio Code][4] separately, if you are curious. - -#### Kdenlive - -![][5] - -KDE’s video editor has improved massively over the past few years, with heaps of new features added with this release. It involves: - - * Online Resources tool - * Speech-To-Text - * New AV1 support - - - -The Online resources tool is a fairly recent addition. The main purpose of this tool is to download free stock footage for use in your videos. - -The Speech-To-Text tool is a nifty little tool that will automatically create subtitles for you, with surprising accuracy. It is also effortless to use, with it being launched in just 3 clicks. - -Finally, we get to see the main new feature in the 21.04 release: AV1 codec support. This is a relatively new video format with features such as higher compression, and a royalty-free license. - -#### Dolphin - -![][5] - -Dolphin, the file manager for Plasma 5, is one of the most advanced file managers existing. Some of its notable features include a built-in terminal emulator and file previews. - -With this release, there are a multitude of new features, including the ability to: - - * Decompress multiple files at once - * Open a folder in a new tab by holding the control key - * Modify the options in the context menu - - - -While minor, these new features are sure to make using Dolphin an even smoother experience. - -#### Elisa - -![][6] - -Elisa is one of the most exciting additions to KDE Gear. For those who don’t know about it yet, Elisa is a new music player based on [Kirigami][7]. The result of this is an app capable of running on both desktop and mobile. - -With this release, the list of features offered by this application has grown quite a bit longer. Some of these new features include: - - * Support for AAC audio files - * Support for .m3u8 playlists - * Reduced memory usage - - - -As always, the inclusion of support for more formats is welcome. As the KDE release announcement says: - -> But [the new features] don’t mean Elisa has become clunkier. Quite the contrary: the new version released with KDE Gear today actually consumes less memory when you scroll around the app, making it snappy and a joy to use. - -This app is becoming better with each release, and is becoming one of my favorite apps for Linux. At the rate it is improving, we can expect Elisa to become one of the best music players in existence. - -#### Index - -Index is the file manager for Plasma Mobile. Based on Kirigami technologies, it adapts to both mobile and desktop screens well. - -Alongside this convergence advantage, it has almost reached feature-parity with Dolphin, making it a viable alternative on the desktop as well. Because it is constantly being updated with new features and is an evolving application, there isn’t a set list of new features. - -If you want to check out its latest version, feel free to [download it from the project website.][8] - -### Other App Updates - -![][5] - -In addition to the above-mentioned app upgrades, you will also find significant improvements for **Okular**, **KMail**, and other KDE applications. - -To learn more about the app updates, you can check out the [official announcement page][9]. - -### Wrapping Up - -The new KDE Gear 21.04 release includes a wide range of new features and updates all the KDE apps. These promise better performance, usability, and compatibility. - -I am really excited about Elisa and Index, especially as they make use of Kirigami. - -_What do you think about_ _the latest KDE app updates? Let me know your thoughts down in the comments below!_ - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [Linux Release Roundup #21.17: Ubuntu 21.04, VirtualBox 6.1.20, Firefox 88, and More New Releases][10] - * ![][11] ![Linux Release Roundups][12] - - - * [KDE Plasma 5.21 Brings in a New Application Launcher, Wayland Support, and Other Exciting Additions][13] - * ![][11] ![][14] - - - * [SparkyLinux 2021.03 Release Introduces a KDE Plasma Edition, Xfce 4.16 Update, and More Upgrades][15] - * ![][11] ![][16] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kde-gear-app-release/ - -作者:[Jacob Crume][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/jacob/ -[b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzMxOCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[2]: https://kde.org/announcements/gear/21.04/ -[3]: https://apps.kde.org/ -[4]: https://news.itsfoss.com/kate/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzczMCcgd2lkdGg9JzYwMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://develop.kde.org/frameworks/kirigami// -[8]: https://download.kde.org/stable/maui/index/1.2.1/index-v1.2.1-amd64.AppImage -[9]: https://kde.org/announcements/releases/2020-04-apps-update/ -[10]: https://news.itsfoss.com/linux-release-roundup-2021-17/ -[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 -[13]: https://news.itsfoss.com/kde-plasma-5-21-release/ -[14]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/kde-plasma-5-21-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[15]: https://news.itsfoss.com/sparkylinux-2021-03-release/ -[16]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/sparky-linux-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md b/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md deleted file mode 100644 index e6727ae724..0000000000 --- a/sources/news/20210426 Next Mainline Linux Kernel 5.12 Released with Essential Improvements.md +++ /dev/null @@ -1,146 +0,0 @@ -[#]: subject: (Next Mainline Linux Kernel 5.12 Released with Essential Improvements) -[#]: via: (https://news.itsfoss.com/linux-kernel-5-12-release/) -[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Next Mainline Linux Kernel 5.12 Released with Essential Improvements -====== - -[Linux Kernel 5.11][1] was an impressive release with the support for new hardware that’s probably out-of-stock till the end of 2022. - -Now, almost after 2 months of work and a week of delay for a release candidate version 8, Linux Kernel 5.12 is here. - -The improvements span across many things that include processor support, laptop support, new hardware support, storage enhancements, and a few more essential driver additions. - -Here, I will highlight the key changes with this release to give you an overview. - -### Linux Kernel 5.12: Essential Improvements & Additions - -Linux Kernel 5.12 is a neat release with many essential additions. Also, it is worth noting that Linux [5.13 would be the first Linux Kernel to add initial support for Apple M1 devices][2] if you were expecting it here. - -With the [release announcement][3], Linus Torvalds mentioned: - -> Thanks to everybody who made last week very calm indeed, which just makes me feel much happier about the final 5.12 release. -> -> Both the shortlog and the diffstat are absolutely tiny, and it’s mainly just a random collection of small fixes in various areas: arm64 devicetree files, some x86 perf event fixes (and a couple of tooling ones), various minor driver fixes (amd and i915 gpu fixes stand out, but honestly, that’s not because they are big, but because the rest is even smaller), a couple of small reverts, and a few locking fixes (one kvm serialization fix, one memory ordering fix for rwlocks). - -Let us take a look at what’s new overall. - -#### Official PlayStation 5 Controller Driver - -Sony’s open-source driver for controllers were pushed back last cycle, but it has been included with Linux 5.12 Kernel. - -Not just as a one-time open-source driver addition but Sony has committed to its maintenance as well. - -So, if you were looking to use Sony’s DualSense PlayStation 5 Controller, now would be a good time to test it out. - -#### AMD FreeSync HDMI Support - -While AMD has been keeping up with good improvements for its Linux graphics drivers, there was no [FreeSync][4] support over HDMI port. - -With Linux Kernel 5.12, a patch has been merged to the driver that enables FreeSync support on HDMI ports. - -#### Intel Adaptive-Sync for Xe Graphics - -Intel’s 12th gen Xe Graphics is an exciting improvement for many users. Now, with Linux Kernel 5.12, adaptive sync support (variable refresh rate) will be added to connections over the Display Port. - -Of course, considering that AMD has managed to add FreeSync support with HDMI, Intel would probably be working on the same for the next Linux Kernel release. - -#### Nintendo 64 Support - -Nintendo 64 is a popular but very [old home video game console][5]. For this reason, it might be totally dropped as an obsolete platform but it is good to see the added support (for those few users out there) in Linux Kernel 5.12. - -#### OverDrive Overclocking for Radeon 4000 Series - -Overlocking support for AMD’s latest GPU’s was not yet supporting using the command-line based OverDrive utility. - -Even though OverDrive has been officially discontinued, there is no GUI-based utility by AMD for Linux. So, this should help meanwhile. - -#### Open-Source Nvidia Driver Support for Ampere Cards - -The open-source Nvidia [Nouveau][6] drivers introduces improved support for Ampere-based cards with Linux Kernel 5.12, which is a step-up from Linux Kernel 5.11 improvements. - -With the upcoming Linux Kernel 5.13, you should start seeing 3D acceleration support as well. - -#### Improvements to exFAT Filesystem - -There have been significant optimizations for [exFAT Filesytem][7] that should allow you to delete big files much faster. - -#### Intel’s Open-Source Driver to Display Laptop Hinge/Keyboard Angle - -If you have a modern Intel laptop, you are in luck. Intel has contributed another open-source driver to help display the laptop hinge angle in reference to the ground. - -Maybe you are someone who’s writing a script to get something done in your Laptop when the hinge reaches a certain angle or who knows what else? Tinkerers would mostly benefit from this addition by harnessing the information they did not have. - -### Other Improvements - -In addition to the key additions I mentioned above, there are numerous other improvements that include: - - * Improved battery reporting for Logitech peripherals - * Improved Microsoft Surface laptop support - * Snapdragon 888 support - * Getting rid of obsolete ARM platforms - * Networking improvements - * Security improvements - - - -You might want to check out the [full changelog][8] to know all the technical details. - -If you think Linux 5.12 could be a useful upgrade for you, I’d suggest you to wait for your Linux distribution to push an update or make it available for you to select it as your Linux Kernel from the repository. - -It is also directly available in [The Linux Kernel Archives][9] as a tarball if you want to compile it from source. - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [Linux Release Roundup #21.14: AlmaLinux OS, Linux Lite 5.4, Ubuntu 21.04 and More New Releases][10] - * ![][11] ![Linux Release Roundups][12] - - - * [Linux Kernel 5.11 Released With Support for Wi-Fi 6E, RTX 'Ampere' GPUs, Intel Iris Xe and More][1] - * ![][11] ![][13] - - - * [Nitrux 1.3.8 Release Packs in KDE Plasma 5.21, Linux 5.11, and More Changes][14] - * ![][11] ![][15] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/linux-kernel-5-12-release/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/linux-kernel-5-11-release/ -[2]: https://news.itsfoss.com/linux-kernel-5-13-apple-m1/ -[3]: https://lore.kernel.org/lkml/CAHk-=wj3ANm8QrkC7GTAxQyXyurS0_yxMR3WwjhD9r7kTiOSTw@mail.gmail.com/ -[4]: https://en.wikipedia.org/wiki/FreeSync -[5]: https://en.wikipedia.org/wiki/Nintendo_64 -[6]: https://nouveau.freedesktop.org -[7]: https://en.wikipedia.org/wiki/ExFAT -[8]: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.12 -[9]: https://www.kernel.org/ -[10]: https://news.itsfoss.com/linux-release-roundup-2021-14/ -[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 -[13]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/linux-kernel-5-11-release.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[14]: https://news.itsfoss.com/nitrux-1-3-8-release/ -[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/nitrux-1-3-8.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md b/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md deleted file mode 100644 index 98bdb1ce07..0000000000 --- a/sources/news/20210427 CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS.md +++ /dev/null @@ -1,90 +0,0 @@ -[#]: subject: (CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS) -[#]: via: (https://news.itsfoss.com/almalinux-commercial-support/) -[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -CloudLinux Announces Commercial Support for its CentOS Alternative AlmaLinux OS -====== - -CentOS alternative [AlmaLinux][1] announced the availability of their [first stable release][2] a month back. - -If you are planning to replace your CentOS deployments or have already started to utilize AlmaLinux OS, you will be happy to know that you are about to get commercial support and premium support soon. - -CloudLinux, the sponsor of the project announced that it will start providing multiple support options next month. - -### More About the Support Options - -According to the press release, they aim to offer reasonable pricing for the support tiers: - -> “Support services for AlmaLinux OS from CloudLinux provides both the highest quality support from the OS sponsor along with the benefits of an independent technology partnership,” said Jim Jackson, president and chief revenue officer, CloudLinux. “Reasonably priced and flexible support services keep systems running on AlmaLinux OS continuously updated and secure for production workloads.” - -They also clarify that the support tiers will include update delivery commitments and 24/7 incident response services. - -This means that you will be getting regular patches and updates for the Linux kernel and core packages, patch delivery service-level agreements (SLAs), and 24/7 incident support. - -For any business or enterprise, this should be the perfect incentive to start replacing CentOS on their server if looking for a [CentOS alternative][3]. - -In addition to the plans for the next month, they also plan to offer a premium support option for enterprise use-cases and more: - -> CloudLinux is also planning to introduce a premium support tier for enterprises that require enhanced services, as well as Product NodeOS Support for AlmaLinux OS, explicitly tailored to the needs of vendors and OEMs that are planning to use AlmaLinux as a node OS underlying their commercial products and services. - -This is definitely exciting and should grab the attention of OEMs, and businesses looking for a CentOS alternative with a long-term support until 2029 at least. - -They also added what the community manager of AlmaLinux OS thinks about it going forward: - -> “Since launch, we’ve received tremendous interest and support from both the community as well as many commercial vendors, many of whom have begun using AlmaLinux OS for some pretty amazing use cases,” said Jack Aboutboul, community manager of AlmaLinux. “Our thriving community has supported each other since day one which led to rapid adoption amongst organizations and requests for commercial support.” - -The support service options should start rolling out in **May 2021** (next month). If you want to know more about it before the release or how you can use it for your AlmaLinux OS deployments, fill up the form in the [official support page][4]. - -[Commercial Support for AlmaLinux OS][4] - -_So, what do you think about AlmaLinux OS as a CentOS alternative now with the imminent availability of commercial support? Do you have big hopes for it? Feel free to share what you think!_ - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [Much-Anticipated CentOS Alternative 'AlmaLinux' Beta Released for Testing][5] - * ![][6] ![][7] - - - * [AlmaLinux OS First Stable Release is Here to Replace CentOS][2] - * ![][6] ![][8] - - - * [After Rocky Linux, We Have Another RHEL Fork in Works to Replace CentOS][9] - * ![][6] ![CloudLinux][10] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/almalinux-commercial-support/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://almalinux.org/ -[2]: https://news.itsfoss.com/almalinux-first-stable-release/ -[3]: https://itsfoss.com/rhel-based-server-distributions/ -[4]: https://almalinux.org/support/ -[5]: https://news.itsfoss.com/almalinux-beta-released/ -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/almalinux-ft.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 -[8]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/almalinux-first-iso-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[9]: https://news.itsfoss.com/rhel-fork-by-cloudlinux/ -[10]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Untitled-design-2.png?fit=800%2C450&ssl=1&resize=350%2C200 diff --git a/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md b/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md deleted file mode 100644 index 4996188ea1..0000000000 --- a/sources/news/20210501 Elementary OS 6 Beta Available Now- Here Are the Top New Features.md +++ /dev/null @@ -1,190 +0,0 @@ -[#]: subject: (Elementary OS 6 Beta Available Now! Here Are the Top New Features) -[#]: via: (https://news.itsfoss.com/elementary-os-6-beta/) -[#]: author: (Abhishek https://news.itsfoss.com/author/root/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Elementary OS 6 Beta Available Now! Here Are the Top New Features -====== - -The beta release of elementary OS 6 is here. It is available to download and test for the early adapters and application developers. - -Before I give you the details on downloading and upgrade procedure, let’s have a look at the changes this new release is bringing. - -### New features in elementary OS 6 “Odin” - -Every elementary OS release bases itself on an Ubuntu LTS release. The upcoming elementary OS 6, codenamed “Odin”, is based on the latest Ubuntu 20.04 LTS version. - -elementary OS has an ecosystem of its own, so the similarities with Ubuntu technically ends here. The Pantheon desktop environment gives it an entire different look and feel that you see in other distributions using GNOME or KDE. - -In November last year, we took the early build of elementary OS 6 for a test ride. You may see it in action in the video below. - -![][1] - -Things have improved and more features have been added since then. Let’s take a look at them. - -#### Dark theme with customization options - -Dark theme is not a luxury anymore. Its popularity has forces operating system and application developers to integrate the dark mode features in their offerings. - -![][2] - -elementary OS is also offering a dark theme but it has a few additional features to let you enjoy the dark side. - -You can choose to automatically switch to the dark theme based on the time of the day. You can also choose an accent color to go with the dark theme. - -![][3] - -Don’t expect a flawless dark theme experience. Like every other operating system, it depends on the applications. Sandboxed Flatpak applications won’t go dark automatically unlike the elementary OS apps. - -#### Refreshed look and feel - -There are many subtle changes to give elementary OS a refreshed look and feel. - -![][2] - -You’ll notice more rounded bottom window corners. The typography has changed for the first time and it now uses [Inter typeface][4] instead of the usual Open Sans. Default font rendering settings opts for grayscale anti-aliasing over RGB. - -![][5] - -You can now give an accent color to your system. With that, the icons, media buttons etc will have the chosen accented color. - -![][6] - -#### Multi-touch gestures - -Multi-touch gestures are a rarity in Linux desktops. However, elementary OS has worked hard to bring some multi-touch gesture support. You should be able to use it for muti-tasking view as well as for switching workspaces. - -You can see it in action in this video. - -Individual apps may also provide You should be able to configure it from the settings. - -![][7] - -The gestures will be used in some other places such as when navigating between panes and views, swiping away notifications and more. - -#### New and improved installer - -elementary OS 6 will also feature a brand-new installer. This is being developed together with Linux system manufacturer System76. elementary OS team worked on the front end and the System76 team worked on the back end of the installer. - -The new installer aims to improve the experience more both from an OS and OEM perspective. - -![][8] - -![][8] - -![][9] - -![][9] - -![][9] - -![][10] - -![][10] - -![][9] - -![][9] - -The new installer also plans to have the capability of a creating a recovery partition (which is basically a fresh copy of the operating system). This will make reinstalling and factory resetting the elementary OS a lot easier. - -#### Flatpak all the way - -You could already use [Flatpak][11] applications in elementary OS 5. Here, the installed application is local to the user account (in its home directory). - -elementary OS 6 supports sharing Flatpak apps system wide. This is part of the plan to ship applications in elementary OS as Flatpaks out of the box. It should be ready by the final stable release. - -#### Firmware updates from the system settings - -elementary OS 6 will notify you of updatable firmware in the system settings. This is for hardware that is compatible with [fwupd][12]. You can download the firmware updates from the settings. Some firmware updates are installed on the next reboot. - -![][13] - -#### No Wayland - -While elementary OS 6 code has some improved support for Wayland in the department of screenshots, it won’t be ditching Xorg display server just yet. Ubuntu 20.04 LTS stuck with Xorg and elementary OS 6 will do the same. - -#### Easier feedback reporting mechanism - -I think this is for the beta testers so that they can easily provide feedback on various system components and functionality. I am not sure if the feedback tool will make its way to the final stable release. However, it is good to see a dedicated, easy to use tool that will make it easier to get feedback from less technical or lazy people (like me). - -![][14] - -#### Other changes - -Here are some other changes in the new version of elementary OS: - - * screen locking and sleep experience should be much more reliable and predictable - * improved accessibility features - * improved notifications with emoji support - * Epiphany browser becomes default - * New Task app - * Major rewrite of the Mail application - * Option to show num lock and caps lock in the panel - * Improved booting experience with OEM logo - * Improved performance on lower-clocked processors and slower storage mediums like SD cards - - - -More details can be found on the [official blog of elementary OS][15]. - -### Download and install elementary OS 6 beta (for testing purpose) - -Please note that the experimental [support for Raspberry Pi like ARM devices][16] is on pause for now. You won’t find beta download for ARM devices. - -There is no way to update elementary OS 5 to the beta of version 6. Also note that if you install elementary OS 6 beta, you will **not be able to upgrade to the final stable release**. You’ll need to install it afresh. - -Another thing is that some of the features I mentioned are not finished yet so expect some bugs and hiccups. It is better to use it on a spare system or in a virtual machine. - -The beta is available for testing for free and you can download the ISO from the link below: - -[Download elementary OS 6 beta][17] - -### When will elementary OS 6 finally release? - -No one can tell that, not even the elementary OS developers. They don’t work with a fixed release date. It will be released when the planned features are stable. If I had to guess, I would say expect it in early July. - -elementary OS 6 is one of the [most anticipated Linux distributions of 2021][18]. Are you liking the new features? How is the new look in comparison to [Zorin OS 16 beta][19]? - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/elementary-os-6-beta/ - -作者:[Abhishek][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/root/ -[b]: https://github.com/lujun9972 -[1]: https://i2.wp.com/i.ytimg.com/vi/ciIeX9b5_A4/hqdefault.jpg?w=780&ssl=1 -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzU2Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[4]: https://rsms.me/inter/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzYxMycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzY2Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzU0MScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzOScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzNCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ5Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[11]: https://itsfoss.com/what-is-flatpak/ -[12]: https://fwupd.org/ -[13]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUyMScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[14]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ3NScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[15]: https://blog.elementary.io/elementary-os-6-odin-beta/ -[16]: https://news.itsfoss.com/elementary-os-raspberry-pi-release/ -[17]: https://builds.elementary.io/ -[18]: https://news.itsfoss.com/linux-distros-for-2021/ -[19]: https://news.itsfoss.com/zorin-os-16-beta/ diff --git a/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md b/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md deleted file mode 100644 index 602634be04..0000000000 --- a/sources/news/20210503 Ubuntu 21.10 -Impish Indri- Development Begins, Daily Builds Available Now.md +++ /dev/null @@ -1,85 +0,0 @@ -[#]: subject: (Ubuntu 21.10 “Impish Indri” Development Begins, Daily Builds Available Now) -[#]: via: (https://news.itsfoss.com/ubuntu-21-10-release-schedule/) -[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Ubuntu 21.10 “Impish Indri” Development Begins, Daily Builds Available Now -====== - -I was slightly disappointed at the lack of enough new features in the [recent release of Ubuntu 21.04][1]. However, Canonical is set to change that with the upcoming release of Ubuntu 21.10 ‘**Impish Indri**‘. - -It is slated to have a variety of new features, including the [recently released Gnome 40][2]/41, [GCC 11][3], and more usage of the [Flutter toolkit][4]. - -### Ubuntu 21.10 Release Schedule - -The final stable release date of Ubuntu 21.10 is October 14, 2021. Here are the milestones of the release schedule: - - * Beta release: **23rd September** - * Release Candidate: **7th October** - * Final Release: **14th October** - - - -Ubuntu 21.10 is codenamed Impish Idri. Impish is an adjective that means “inclined to do slightly naughty things for fun”. Idrish is a Lemur found in Madagascar. - -If you are not aware already, all Ubuntu releases are codenamed in alphabetical order and composed of an adjective and an animal species, both starting with the same letter. - -### New Features Expected in Ubuntu 21.04 - -Although an official feature list has not been released yet, you can expect the following features to be present: - - * [Gnome 40][2]/41 - * [GCC 11][3] - * More usage of [Flutter][4] - * [A new desktop installer][5] - * Linux Kernel 5.14 - - - -Together, these will provide a huge upgrade from Ubuntu 21.04. In my opinion, the biggest upgrade will be the inclusion of GNOME 40, especially with the new horizontal overview. - -Moreover, it should be fascinating to see how the Ubuntu team makes use of the [new design changes in GNOME 40][2]. - -### Daily Builds of Ubuntu 21.10 Available (For Testing Only) - -Although the development of Ubuntu 21.10 has only just started, there are already daily builds available from the official Ubuntu website. - -Please bear in mind that these are daily builds (early development) and are not meant to be used as a daily driver. - -[Ubuntu 21.10 Daily Builds][6] - -### Wrapping Up - -With the sheer number of upgrades, the Ubuntu team is rushing to implement all the new features destined for this release. Consequently, this should then allow them time to fully bake the new features ahead of the release of Ubuntu 22.04 LTS (I can’t wait already!) - -Between Gnome 40, Linux 5.14, and the new desktop installer, Ubuntu 21.10 is shaping up to be one of the biggest releases in recent years. It will be really exciting to see how the Ubuntu team embraces Gnome 40’s new looks, as well as what the new desktop installer will look like. - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/ubuntu-21-10-release-schedule/ - -作者:[Jacob Crume][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/jacob/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/ubuntu-21-04-features/ -[2]: https://news.itsfoss.com/gnome-40-release/ -[3]: https://www.gnu.org/software/gcc/gcc-11/ -[4]: https://flutter.dev/ -[5]: https://news.itsfoss.com/ubuntu-new-installer/ -[6]: https://cdimage.ubuntu.com/ubuntu/daily-live/current/ From b51c601b1bc38abdc8f6a7fd72eb236c980d67bf Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 09:18:50 +0800 Subject: [PATCH 112/170] APL --- ...210504 5 ways the Star Wars universe embraces open source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md b/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md index 7ecbfde0f0..bbb6b363ec 100644 --- a/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md +++ b/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/open-source-star-wars) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wxy) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From ccd44b0192f76d2741a9aa4e8b30d1e889cd76ad Mon Sep 17 00:00:00 2001 From: geekpi Date: Fri, 7 May 2021 10:05:20 +0800 Subject: [PATCH 113/170] translating --- ...w to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md b/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md index a14a44fffd..80a39cfd06 100644 --- a/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md +++ b/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/download-ubuntu-via-torrent/) [#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 12da80d65468b708613580f5990f00f471e850ad Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 10:31:36 +0800 Subject: [PATCH 114/170] TSL --- ...Star Wars universe embraces open source.md | 100 ----------------- ...Star Wars universe embraces open source.md | 102 ++++++++++++++++++ 2 files changed, 102 insertions(+), 100 deletions(-) delete mode 100644 sources/tech/20210504 5 ways the Star Wars universe embraces open source.md create mode 100644 translated/tech/20210504 5 ways the Star Wars universe embraces open source.md diff --git a/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md b/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md deleted file mode 100644 index bbb6b363ec..0000000000 --- a/sources/tech/20210504 5 ways the Star Wars universe embraces open source.md +++ /dev/null @@ -1,100 +0,0 @@ -[#]: subject: (5 ways the Star Wars universe embraces open source) -[#]: via: (https://opensource.com/article/21/5/open-source-star-wars) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (wxy) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -5 ways the Star Wars universe embraces open source -====== -Growing up with Star Wars taught me a lot about being open. -![Man with lasers in night sky][1] - -Let's get one thing straight up front: there's nothing open about the Star Wars franchise in real life (although its owner does publish [some open source code][2]). Star Wars is a tightly controlled property with nothing published under a free-culture license. Setting aside any debate of when [cultural icons should become the property of the people][3] who've grown up with them, this article invites you to step _into_ the Star Wars universe and imagine you're a computer user a long time ago, in a galaxy far, far away… - -### Droids - -> "But I was going into Tosche Station to pick up some power converters!" -> — Luke Skywalker - -Before George Lucas made his first Star Wars movie, he directed a movie called _American Graffiti_, a coming-of-age movie set in the 1960s. Part of the movie's backdrop was the hot-rod and street-racing culture, featuring a group of mechanical tinkerers who spent hours and hours in the garage, endlessly modding their cars. This can still be done today, but most car enthusiasts will tell you that "classic" cars are a lot easier to work on because they use mostly mechanical rather than technological parts, and they use common parts in a predictable way. - -I've always seen Luke and his friends as the science fiction interpretation of the same nostalgia. Sure, fancy new battle stations are high tech and can destroy entire planets, but what do you do when a [blast door fails to open correctly][4] or when the trash compactor on the detention level starts crushing people? If you don't have a spare R2 unit to interface with the mainframe, you're out of luck. Luke's passion for fixing and maintaining 'droids and his talent for repairing vaporators and X-wings were evident from the first film. - -Seeing how technology is treated on Tatooine, I can't help but believe that most of the commonly used equipment was the people's technology. Luke didn't have an end-user license agreement for C-3PO or R2-D2. He didn't void his warranty when he let Threepio relax in a hot oil bath or when Chewbacca reassembled him in Lando's Cloud City. Likewise, Han Solo and Chewbacca never took the Millennium Falcon to the dealership for approved parts. - -I can't prove it's all open source technology. Given the amount of end-user repair and customization in the films, I believe that technology is open and common knowledge intended to be [owned and repaired by users][5] in the Star Wars universe. - -### Encryption and steganography - -> "Help me, Obi-Wan Kenobi. You're my only hope." -> — Princess Leia - -Admittedly, digital authentication in the Star Wars universe is difficult to understand, but if one thing is clear, encryption and steganography are vital to the Rebellion's success. And when you're in a rebellion, you can't rely on corporate standards, suspiciously sanctioned by the evil empire you're fighting. There were no backdoors into Artoo's memory banks when he was concealing Princess Leia's desperate plea for help, and the Rebellion struggles to get authentication credentials when infiltrating enemy territory (it's an older code, but it checks out). - -Encryption isn't just a technological matter. It's a form of communication, and there are examples of it throughout history. When governments attempt to outlaw encryption, it's an effort to outlaw community. I assume that this is part of what the Rebellion was meant to resist. - -### Lightsabers - -> "I see you have constructed a new lightsaber. Your skills are now complete." -> — Darth Vader - -In _The Empire Strikes Back_, Luke Skywalker loses his iconic blue lightsaber, along with his hand, to nefarious overlord Darth Vader. In the next film, _Return of the Jedi,_ Luke reveals—to the absolute enchantment of every fan—a green lightsaber that he _constructed_ himself. - -It's not explicitly stated that the technical specifications of the Jedi Knight's laser sword are open source, but there are implications. For example, there's no indication that Luke had to license the design from a copyright-holding firm before building his weapon. He didn't contract a high-tech factory to produce his sword. - -He built it _all by himself_ as a rite of passage. Maybe the method for building such a powerful weapon is a secret guarded by the Jedi order; then again, maybe that's just another way of describing open source. I learned all the coding I know from trusted mentors, random internet streamers, artfully written blog posts, and technical talks. - -Closely guarded secrets? Or open information for anyone seeking knowledge? - -Based on the Jedi order I saw in the original trilogy, I choose to believe the latter. - -### Ewok culture - -> "Yub nub!" -> — Ewoks - -The Ewoks of Endor are a stark contrast to the rest of the Empire's culture. They're ardently communal, sharing meals and stories late into the night. They craft their own weapons, honey pots, and firewalls for security, as well as their own treetop village. As the figurative underdogs, they shouldn't have been able to rid themselves of the Empire's occupation. They did their research by consulting a protocol 'droid, pooled their resources, and rose to the occasion. When strangers dropped into their homes, they didn't reject them. Rather, they helped them (after determining that they were not, after all, food). When they were confronted with frightening technology, they engaged with it and learned from it. - -Ewoks are a celebration of open culture and open source within the Star Wars universe. Theirs is the community we should strive for: sharing information, sharing knowledge, being receptive to strangers and progressive technology, and maintaining the resolve to stand up for what's right. - -### The Force - -> "The Force will be with you. Always." -> — Obi-Wan Kenobi - -In the original films and even in the nascent Expanded Universe (the original EU novel, and my personal favorite, is _Splinter of the Mind's Eye_, in which Luke learns more about the Force from a woman named Halla), the Force was just that: a force that anyone can learn to wield. It isn't an innate talent, rather a powerful discipline to master. - -![The very beginning of the expanded universe][6] - -By contrast, the evil Sith are protective of their knowledge, inviting only a select few to join their ranks. They may believe they have a community, but it's the very model of seemingly arbitrary exclusivity. - -I don't know of a better analogy for open source and open culture. The danger of perceived exclusivity is ever-present because enthusiasts always seem to be in the "in-crowd." But the reality is, the invitation is there for everyone to join. And the ability to go back to the source (literally the source code or assets) is always available to anyone. - -### May the source be with you - -Our task, as a community, is to ask how we can make it clear that whatever knowledge we possess isn't meant to be privileged information and instead, a force that anyone can learn to use to improve their world. - -To paraphrase the immortal words of Obi-Wan Kenobi: "Use the source." - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/open-source-star-wars - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tobias-cornille-light-sabres-unsplash.jpg?itok=rYwXA2CX (Man with lasers in night sky) -[2]: https://disney.github.io/ -[3]: https://opensource.com/article/18/1/creative-commons-real-world -[4]: https://www.hollywoodreporter.com/heat-vision/star-wars-40th-anniversary-head-banging-stormtrooper-explains-classic-blunder-1003769 -[5]: https://www.eff.org/issues/right-to-repair -[6]: https://opensource.com/sites/default/files/20210501_100930.jpg (The very beginning of the expanded universe) diff --git a/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md b/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md new file mode 100644 index 0000000000..d9c1026ecb --- /dev/null +++ b/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md @@ -0,0 +1,102 @@ +[#]: subject: (5 ways the Star Wars universe embraces open source) +[#]: via: (https://opensource.com/article/21/5/open-source-star-wars) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (wxy) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +《星球大战》宇宙拥抱开源的5种方式 +====== + +> 与《星球大战》一起成长的过程中,我学到了很多关于开源的知识。 + +![Man with lasers in night sky][1] + +让我们先说清楚一件事:在现实生活中,《星球大战Star Wars》特许经营权没有任何开放性(尽管其所有者确实发布了[一些开源代码][2])。《星球大战》是一个严格控制的资产,没有任何东西是在自由文化许可下出版的。抛开任何关于 [文化形象应该成为伴随它们成长的人们的财产][3] 的争论,本文邀请你走进《星球大战》的宇宙,想象你是很久以前的一个电脑用户,在一个遥远的星系里…… + +### 机器人 + +> “但我还要去托西站Tosche Station弄些电力转换器呢。” +> —— 卢克•天行者 + +在乔治•卢卡斯George Lucas拍摄他的第一部《星球大战》电影之前,他导演了一部名为《美国涂鸦American Graffiti》的电影,这是一部以上世纪 60 年代为背景的成长电影。这部电影的部分背景是热车和街头赛车文化,一群机械修理工在车库里花了好几个小时,无休止地改装他们的汽车。今天仍然可以这样做,但大多数汽车爱好者会告诉你,“经典”汽车改装起来容易得多,因为它们主要使用机械部件而不是技术部件,而且它们以一种可预测的方式使用普通部件。 + +我一直把卢克和他的朋友们看作是对同样怀旧的科幻小说诠释。当然,花哨的新战斗堡垒是高科技,可以摧毁整个星球,但当 [防爆门不能正确打开][4] 或监禁层的垃圾压实机开始压扁人时,你会怎么做?如果你没有一个备用的 R2 机器人与主机对接,你就没辙了。卢克对修理和维护“机器人”的热情以及他在修理蒸发器和 X 翼飞机方面的天赋从第一部电影中就可以看出。 + +看到塔图因星球对待技术的态度,我不禁相信,大多数常用的设备都是人民的技术。卢克并没有为 C-3PO 或 R2-D2 签订最终用户许可协议。当他让 C-3PO 在热油浴中放松时,或者当楚巴卡在兰多的云城重新组装他时,他并没有使他的保修失效。同样,汉•索罗和楚巴卡从来没有把千年隼带到经销商那里去购买经批准的零件。 + +我无法证明这都是开源技术。鉴于电影中大量的终端用户维修和定制,我相信在星战宇宙中,技术是开放的,[用户是有拥有和维修的常识的][5]。 + +### 加密和隐写术 + +> “帮助我,欧比旺•克诺比。你是我唯一的希望。” +> —— 莱亚公主 + +诚然,《星球大战》宇宙中的数字身份认证很难理解,但如果有一点是明确的,加密和隐写术对叛军的成功至关重要。而当你身处叛军时,你就不能依靠公司的标准,它们怀疑是由你正在斗争的邪恶帝国批准的。当 R2-D2 隐瞒莱娅公主绝望的求救时,它的记忆库中没有任何后门,而叛军在潜入敌方领土时努力获得认证凭证(这是一个旧的口令,但它检查出来了)。 + +加密不仅仅是一个技术问题。它是一种通信形式,在历史上有这样的例子。当政府试图取缔加密时,就是在努力取缔社区。我想这也是“叛乱”本应抵制的一部分。 + +### 光剑 + +> “我看到你已经打造了新的光剑。你的技能现在已经完成了。” +> —— 达斯•维德 + +在《帝国反击战》中,天行者卢克失去了他标志性的蓝色光剑,同时他的手也被邪恶霸主达斯•维德砍断。在下一部电影《绝地归来》中,卢克展示了他自己打造的绿色光剑 —— 每一个粉丝都为之着迷。 + +虽然没有明确说明绝地武士的激光剑的技术规格是开源的,但有其含义。例如,没有迹象表明卢克在制造他的武器之前必须从拥有版权的公司获得设计许可。他没有与一家高科技工厂签订合同来生产他的剑。 + +他自己打造了它,作为一种成年仪式。也许制造如此强大的武器的方法是绝地武士团所守护的秘密;再者,也许这只是描述开源的另一种方式。我所知道的所有编码知识都是从值得信赖的导师、某些互联网流媒体、精心撰写的博客文章和技术讲座中学到的。 + +严密保护的秘密?还是对任何寻求知识的人开放的信息? + +根据我在原三部曲中看到的绝地武士秩序,我选择相信后者。 + +### 伊沃克文化 + +> “Yub nub!” +> —— 伊沃克人 + +恩多的伊沃克人与帝国其他地区的文化形成了鲜明的对比。他们热衷于集体生活,分享饮食和故事到深夜。他们自己制作武器、陷阱和安全防火墙,还有他们自己的树顶村庄。作为象征意义上的弱者,他们不可能摆脱帝国的占领。他们通过咨询协议机器人做了研究,汇集了他们的资源,并在这个场合站了起来。当陌生人进入他们的家时,他们并没有拒绝他们。相反,他们帮助他们(在确定他们毕竟不是食物之后)。当他们面对令人恐惧的技术时,他们就参与其中并从中学习。 + +伊沃克人是《星球大战》宇宙中开放文化和开源的庆典。他们是我们应该努力的社区:分享信息、分享知识、接受陌生人和进步的技术,以及维护捍卫正义的决心。 + +### 原力 + +> “原力将与你同在,永远。” +> —— 欧比旺•克诺比 + +在最初的电影中,甚至在新生的衍生宇宙中(最初的衍生宇宙小说,也是我个人的最爱,是《心心灵之眼的碎片》,其中卢克从一个叫哈拉的女人那里学到了更多关于原力的知识),原力只是:一种任何人都可以学习挥舞的力量。它不是一种与生俱来的天赋,而是一门需要掌握的强大学科。 + +![衍生宇宙的最开始][6] + +相比之下,邪恶的西斯人对他们的知识是保护性的,只邀请少数人加入他们的行列。他们可能认为自己有一个群体,但这正是看似随意的排他性的模式。 + +我不知道对开源和开放文化还有什么更好的比喻。被认为是排他性的危险是永远存在的,因为爱好者似乎总是在“人群中”。但现实是,每个人都可以加入的邀请。而且任何人都可以回到源头(字面意思是源代码或资产)。 + +### 愿源与你同在 + +作为一个社区,我们的任务是要问,我们如何能让人明白,无论我们拥有什么知识,都不是为了成为特权信息,而是一种任何人都可以学习使用的力量,以改善他们的世界。 + +套用欧比旺•克诺比的不朽名言:“使用源”。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/open-source-star-wars + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tobias-cornille-light-sabres-unsplash.jpg?itok=rYwXA2CX (Man with lasers in night sky) +[2]: https://disney.github.io/ +[3]: https://opensource.com/article/18/1/creative-commons-real-world +[4]: https://www.hollywoodreporter.com/heat-vision/star-wars-40th-anniversary-head-banging-stormtrooper-explains-classic-blunder-1003769 +[5]: https://www.eff.org/issues/right-to-repair +[6]: https://opensource.com/sites/default/files/20210501_100930.jpg (The very beginning of the expanded universe) From 0a4671b6b8126c3d03dd3ed3e9bc271cdc2a128a Mon Sep 17 00:00:00 2001 From: Mo Date: Fri, 7 May 2021 03:28:36 +0000 Subject: [PATCH 115/170] [translated]Metro Exodus is Finally Here on Steam for Linux --- ...odus is Finally Here on Steam for Linux.md | 84 ------------------- ...odus is Finally Here on Steam for Linux.md | 82 ++++++++++++++++++ 2 files changed, 82 insertions(+), 84 deletions(-) delete mode 100644 sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md create mode 100644 translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md diff --git a/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md b/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md deleted file mode 100644 index 5b1156b804..0000000000 --- a/sources/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md +++ /dev/null @@ -1,84 +0,0 @@ -[#]: subject: (Metro Exodus is Finally Here on Steam for Linux) -[#]: via: (https://news.itsfoss.com/metro-exodus-steam/) -[#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) -[#]: collector: (lujun9972) -[#]: translator: (alim0x) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Metro Exodus is Finally Here on Steam for Linux -====== - -Metro Exodus, a long-time fan favorite, is finally here in Linux. After a long wait of over two years, Linux users can finally get their hands on the third installment of the Metro trilogy. Although a few unofficial ports of the game was available, this is an official release by 4A Games. - -It is a first-person shooter game with gorgeous ray tracing graphics and the story is set in Russian wilderness across vast lands. The brilliant story-line spans an entire year through spring, summer and autumn to the nuclear winter. The game is a combination of fast-paced combat and stealth with exploration and survival and is easily one of the most immersive games in Linux. - -### Can my PC Run it? - -Being a graphically intensive game means you need to have a decent hardware to get good frame rates. This game heavily depends on Ray Tracing to make the images look as good as they do. - -Just to run the game, you will need **Intel Core i5 4400** with **8 GB** of RAM and an **NVIDIA GTX670** or AMD Radeon R9 380, at least. The recommended specification is Intel Core i7 4770K with a GTX1070 or RX 5500XT. - -Here is the official list of specifications as mentioned by developers: - -![][1] - -It’s a paid game, and you need to shell out $39.99 USD to get your hands on the newest and greatest version of Metro Exodus. - -Check for your graphics drivers and Linux kernel version if you can’t play it due to constant crashes. Some have reported a few issues with it to start with, but not a widespread problem. - -### Where do I get the Game? - -The Linux version is available on [Steam][2] for Linux. If you already bought the game, it will appear in your Steam for Linux library automatically. - -[Metro Exodus (Steam)][2] - -If you don’t have it installed, you can follow our guide to [install Steam on Ubuntu][3] and [Fedora][4]. - -_Do you already have Metro Exodus in your Steam library? Planning to get it? Let me know in the comments below._ - -![][5] - -I'm not interested - -#### _Related_ - - * [Popular Game Titles Metro Exodus and Total War: Rome Remastered Releasing for Linux in April][6] - * ![][7] ![][8] - - - * [Don't Miss These Epic Deals & Free Games for Linux This Holiday Season][9] - * ![][7] ![][10] - - - * [The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][11] - * ![][7] ![][12] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/metro-exodus-steam/ - -作者:[Asesh Basu][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/asesh/ -[b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzM3Micgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[2]: https://store.steampowered.com/app/412020/Metro_Exodus/ -[3]: https://itsfoss.com/install-steam-ubuntu-linux/ -[4]: https://itsfoss.com/install-steam-fedora/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: https://news.itsfoss.com/metro-exodus-total-war-rome-linux/ -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[8]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/metro-total-war-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[9]: https://news.itsfoss.com/game-deals-holiday-2020/ -[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-Game-Deals.png?fit=800%2C450&ssl=1&resize=350%2C200 -[11]: https://news.itsfoss.com/lutris-creator-interview/ -[12]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/lutris-interview-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md b/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md new file mode 100644 index 0000000000..fe29c13cfd --- /dev/null +++ b/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md @@ -0,0 +1,82 @@ +[#]: subject: (Metro Exodus is Finally Here on Steam for Linux) +[#]: via: (https://news.itsfoss.com/metro-exodus-steam/) +[#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) +[#]: collector: (lujun9972) +[#]: translator: (alim0x) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +地铁:离去终于来到了 Steam for Linux +====== + +地铁:离去是一款长久以来深受粉丝喜爱的游戏,现在终于来到了 Linux 平台。在超过两年的漫长等待之后,Linux 用户终于可以上手地铁三部曲的第三部作品。虽然先前已经有一些非官方移植的版本,但这个版本是 4A Games 发布的官方版本。 + +地铁:离去是一款第一人称射击游戏,拥有华丽的光线跟踪画面,故事背景设置在横跨俄罗斯广阔土地的荒野之上。这条精彩的故事线横跨了从春、夏、秋到核冬天的整整一年。游戏结合了快节奏的战斗和隐身以及探索和生存,可以轻而易举地成为 Linux 中最具沉浸感的游戏之一。 + +### 我的 PC 可以运行它吗? + +作为一款图形计算密集型游戏,你得有像样的硬件来运行以获得不错的帧率。这款游戏重度依赖光线追踪来让画面看起来更棒。 + +运行游戏的最低要求需要 **Intel Core i5 4400**,**8 GB** 内存,以及最低 **NVIDIA GTX670** 或 **AMD Radeon R9 380** 的显卡。推荐配置是 **Intel Core i7 4770K** 搭配 **GTX1070** 或 **RX 5500XT**。 + +这是开发者提及的官方配置清单: + +![][1] + +地铁:离去是付费游戏,你需要花费 39.99 美元来获取这个最新最棒的版本。 + +如果你在游玩的时候遇到持续崩溃的情况,检查一下你的显卡驱动以及 Linux 内核版本。有人反馈了一些相关的问题,但不是普遍性的问题。 + +### 从哪获取游戏? + +Linux 版本的游戏可以从 [Steam][2] for Linux 获取。如果你已经购买了游戏,它会自动出现在你的 Steam for Linux 游戏库内。 + +[Metro Exodus (Steam)][2] + +如果你还没有安装 Steam,你可以参考我们的教程:[在 Ubuntu 上安装 Steam][3] 和 [在 Fedora 上安装 Steam][4]。 + +_你的 Steam 游戏库中已经有地铁:离去了吗?准备购买一份吗?可以在评论区写下你的想法。_ + +![][5] + +#### _相关信息_ + + * [热门游戏地铁:离去和罗马:全面战争重制版 4 月在 Linux 上发行][6] + * ![][7] ![][8] + + + * [别错过这些超赞的机会:假期的免费 Linux 游戏][9] + * ![][7] ![][10] + + + * [Linux 在游戏方面取得的进步简直令人难以置信:Lutris Creator][11] + * ![][7] ![][12] + + + +-------------------------------------------------------------------------------- + +via: https://news.itsfoss.com/metro-exodus-steam/ + +作者:[Asesh Basu][a] +选题:[lujun9972][b] +译者:[alim0x](https://github.com/alim0x) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://news.itsfoss.com/author/asesh/ +[b]: https://github.com/lujun9972 +[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzM3Micgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[2]: https://store.steampowered.com/app/412020/Metro_Exodus/ +[3]: https://itsfoss.com/install-steam-ubuntu-linux/ +[4]: https://itsfoss.com/install-steam-fedora/ +[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[6]: https://news.itsfoss.com/metro-exodus-total-war-rome-linux/ +[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[8]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/metro-total-war-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 +[9]: https://news.itsfoss.com/game-deals-holiday-2020/ +[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-Game-Deals.png?fit=800%2C450&ssl=1&resize=350%2C200 +[11]: https://news.itsfoss.com/lutris-creator-interview/ +[12]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/lutris-interview-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 From be5bb801323cd4f8e83e52b186ac65d46ea35bb0 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Fri, 7 May 2021 14:40:35 +0800 Subject: [PATCH 116/170] Update 20210422 Running Linux Apps In Windows Is Now A Reality.md --- .../20210422 Running Linux Apps In Windows Is Now A Reality.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md index f37147f235..89c73f91f8 100644 --- a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md +++ b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md @@ -2,7 +2,7 @@ [#]: via: (https://news.itsfoss.com/linux-gui-apps-wsl/) [#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (Kevin3599 ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 05f8811996653d1037eed1a6cb1f139167eba0d7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 16:04:13 +0800 Subject: [PATCH 117/170] PRF @wxy --- ...Star Wars universe embraces open source.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md b/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md index d9c1026ecb..d331197030 100644 --- a/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md +++ b/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md @@ -3,51 +3,51 @@ [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) [#]: translator: (wxy) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -《星球大战》宇宙拥抱开源的5种方式 +《星球大战》的世界拥抱开源的 5 种方式 ====== > 与《星球大战》一起成长的过程中,我学到了很多关于开源的知识。 -![Man with lasers in night sky][1] +![](https://img.linux.net.cn/data/attachment/album/202105/07/160338h1l01l8077wwd1j1.jpg) -让我们先说清楚一件事:在现实生活中,《星球大战Star Wars》特许经营权没有任何开放性(尽管其所有者确实发布了[一些开源代码][2])。《星球大战》是一个严格控制的资产,没有任何东西是在自由文化许可下出版的。抛开任何关于 [文化形象应该成为伴随它们成长的人们的财产][3] 的争论,本文邀请你走进《星球大战》的宇宙,想象你是很久以前的一个电脑用户,在一个遥远的星系里…… +让我们先说清楚一件事:在现实生活中,《星球大战Star Wars》特许经营权没有任何开放性(尽管其所有者确实发布了 [一些开源代码][2])。《星球大战》是一个严格控制的资产,没有任何东西是在自由文化许可证下出版的。抛开任何关于 [文化形象应该成为伴随它们成长的人们的财产][3] 的争论,本文邀请你走进《星球大战》的世界,想象你是很久以前的一个电脑用户,在一个遥远的星系里…… ### 机器人 > “但我还要去托西站Tosche Station弄些电力转换器呢。” > —— 卢克•天行者 -在乔治•卢卡斯George Lucas拍摄他的第一部《星球大战》电影之前,他导演了一部名为《美国涂鸦American Graffiti》的电影,这是一部以上世纪 60 年代为背景的成长电影。这部电影的部分背景是热车和街头赛车文化,一群机械修理工在车库里花了好几个小时,无休止地改装他们的汽车。今天仍然可以这样做,但大多数汽车爱好者会告诉你,“经典”汽车改装起来容易得多,因为它们主要使用机械部件而不是技术部件,而且它们以一种可预测的方式使用普通部件。 +在乔治•卢卡斯George Lucas拍摄他的第一部《星球大战》电影之前,他导演了一部名为《美国涂鸦American Graffiti》的电影,这是一部以上世纪 60 年代为背景的成长电影。这部电影的部分背景是改装车hot-rod和街头赛车文化,一群机械修理工在车库里花了好几个小时,无休止地改装他们的汽车。今天仍然可以这样做,但大多数汽车爱好者会告诉你,“经典”汽车改装起来容易得多,因为它们主要使用机械部件而不是技术部件,而且它们以一种可预测的方式使用普通部件。 我一直把卢克和他的朋友们看作是对同样怀旧的科幻小说诠释。当然,花哨的新战斗堡垒是高科技,可以摧毁整个星球,但当 [防爆门不能正确打开][4] 或监禁层的垃圾压实机开始压扁人时,你会怎么做?如果你没有一个备用的 R2 机器人与主机对接,你就没辙了。卢克对修理和维护“机器人”的热情以及他在修理蒸发器和 X 翼飞机方面的天赋从第一部电影中就可以看出。 -看到塔图因星球对待技术的态度,我不禁相信,大多数常用的设备都是人民的技术。卢克并没有为 C-3PO 或 R2-D2 签订最终用户许可协议。当他让 C-3PO 在热油浴中放松时,或者当楚巴卡在兰多的云城重新组装他时,他并没有使他的保修失效。同样,汉•索罗和楚巴卡从来没有把千年隼带到经销商那里去购买经批准的零件。 +看到塔图因星球对待技术的态度,我不禁相信,大多数常用设备都是大众的技术。卢克并没有为 C-3PO 或 R2-D2 签订最终用户许可协议。当他让 C-3PO 在热油浴中放松时,或者当楚巴卡在兰多的云城重新组装他时,并没有使他的保修失效。同样,汉•索罗和楚巴卡从来没有把千年隼带到经销商那里去购买经批准的零件。 -我无法证明这都是开源技术。鉴于电影中大量的终端用户维修和定制,我相信在星战宇宙中,技术是开放的,[用户是有拥有和维修的常识的][5]。 +我无法证明这都是开源技术。鉴于电影中大量的终端用户维修和定制,我相信在星战世界中,技术是开放的,[用户是有拥有和维修的常识的][5]。 ### 加密和隐写术 > “帮助我,欧比旺•克诺比。你是我唯一的希望。” > —— 莱亚公主 -诚然,《星球大战》宇宙中的数字身份认证很难理解,但如果有一点是明确的,加密和隐写术对叛军的成功至关重要。而当你身处叛军时,你就不能依靠公司的标准,它们怀疑是由你正在斗争的邪恶帝国批准的。当 R2-D2 隐瞒莱娅公主绝望的求救时,它的记忆库中没有任何后门,而叛军在潜入敌方领土时努力获得认证凭证(这是一个旧的口令,但它检查出来了)。 +诚然,《星球大战》世界中的数字身份认证很难理解,但如果有一点是明确的,加密和隐写术对叛军的成功至关重要。而当你身处叛军时,你就不能依靠公司的标准,怀疑它们是由你正在斗争的邪恶帝国批准的。当 R2-D2 隐瞒莱娅公主绝望的求救时,它的记忆库中没有任何后门,而叛军在潜入敌方领土时努力获得认证凭证(这是一个旧的口令,但它通过检查了)。 加密不仅仅是一个技术问题。它是一种通信形式,在历史上有这样的例子。当政府试图取缔加密时,就是在努力取缔社区。我想这也是“叛乱”本应抵制的一部分。 ### 光剑 -> “我看到你已经打造了新的光剑。你的技能现在已经完成了。” +> “我看到你已经打造了新的光剑,你的技能现在已经完成了。” > —— 达斯•维德 在《帝国反击战》中,天行者卢克失去了他标志性的蓝色光剑,同时他的手也被邪恶霸主达斯•维德砍断。在下一部电影《绝地归来》中,卢克展示了他自己打造的绿色光剑 —— 每一个粉丝都为之着迷。 -虽然没有明确说明绝地武士的激光剑的技术规格是开源的,但有其含义。例如,没有迹象表明卢克在制造他的武器之前必须从拥有版权的公司获得设计许可。他没有与一家高科技工厂签订合同来生产他的剑。 +虽然没有明确说明绝地武士的激光剑的技术规格是开源的,但有一定的暗指。例如,没有迹象表明卢克在制造他的武器之前必须从拥有版权的公司获得设计许可。他没有与一家高科技工厂签订合同来生产他的剑。 -他自己打造了它,作为一种成年仪式。也许制造如此强大的武器的方法是绝地武士团所守护的秘密;再者,也许这只是描述开源的另一种方式。我所知道的所有编码知识都是从值得信赖的导师、某些互联网流媒体、精心撰写的博客文章和技术讲座中学到的。 +他自己打造了它,作为一种成年仪式。也许制造如此强大的武器的方法是绝地武士团所守护的秘密;再者,也许这只是描述开源的另一种方式。我所知道的所有编码知识都是从值得信赖的导师、某些互联网 UP 主、精心撰写的博客文章和技术讲座中学到的。 严密保护的秘密?还是对任何寻求知识的人开放的信息? @@ -58,22 +58,22 @@ > “Yub nub!” > —— 伊沃克人 -恩多的伊沃克人与帝国其他地区的文化形成了鲜明的对比。他们热衷于集体生活,分享饮食和故事到深夜。他们自己制作武器、陷阱和安全防火墙,还有他们自己的树顶村庄。作为象征意义上的弱者,他们不可能摆脱帝国的占领。他们通过咨询协议机器人做了研究,汇集了他们的资源,并在这个场合站了起来。当陌生人进入他们的家时,他们并没有拒绝他们。相反,他们帮助他们(在确定他们毕竟不是食物之后)。当他们面对令人恐惧的技术时,他们就参与其中并从中学习。 +恩多的伊沃克人与帝国其他地区的文化形成了鲜明的对比。他们热衷于集体生活、分享饮食和故事到深夜。他们自己制作武器、陷阱和安全防火墙,还有他们自己的树顶村庄。作为象征意义上的弱者,他们不可能摆脱帝国的占领。他们通过咨询礼仪机器人做了研究,汇集了他们的资源,并在关键时刻发挥了作用。当陌生人进入他们的家时,他们并没有拒绝他们。相反,他们帮助他们(在确定他们毕竟不是食物之后)。当他们面对令人恐惧的技术时,他们就参与其中并从中学习。 -伊沃克人是《星球大战》宇宙中开放文化和开源的庆典。他们是我们应该努力的社区:分享信息、分享知识、接受陌生人和进步的技术,以及维护捍卫正义的决心。 +伊沃克人是《星球大战》世界中开放文化和开源的庆典。他们是我们应该努力的社区:分享信息、分享知识、接受陌生人和进步的技术,以及维护捍卫正义的决心。 ### 原力 > “原力将与你同在,永远。” > —— 欧比旺•克诺比 -在最初的电影中,甚至在新生的衍生宇宙中(最初的衍生宇宙小说,也是我个人的最爱,是《心心灵之眼的碎片》,其中卢克从一个叫哈拉的女人那里学到了更多关于原力的知识),原力只是:一种任何人都可以学习挥舞的力量。它不是一种与生俱来的天赋,而是一门需要掌握的强大学科。 +在最初的电影中,甚至在新生的衍生宇宙中(最初的衍生宇宙小说,也是我个人的最爱,是《心灵之眼的碎片》,其中卢克从一个叫哈拉的女人那里学到了更多关于原力的知识),原力只是:一种任何人都可以学习使用的力量。它不是一种与生俱来的天赋,而是一门需要掌握的强大学科。 ![衍生宇宙的最开始][6] 相比之下,邪恶的西斯人对他们的知识是保护性的,只邀请少数人加入他们的行列。他们可能认为自己有一个群体,但这正是看似随意的排他性的模式。 -我不知道对开源和开放文化还有什么更好的比喻。被认为是排他性的危险是永远存在的,因为爱好者似乎总是在“人群中”。但现实是,每个人都可以加入的邀请。而且任何人都可以回到源头(字面意思是源代码或资产)。 +我不知道对开源和开放文化还有什么更好的比喻。永远存在被认为是排他的危险,因为爱好者似乎总是在“人群中”。但现实是,每个人都可以加入这些邀请,而且任何人都可以回到源头(字面意思是源代码或资产)。 ### 愿源与你同在 @@ -88,7 +88,7 @@ via: https://opensource.com/article/21/5/open-source-star-wars 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[wxy](https://github.com/wxy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 9cbb3f6d5886512a31d049d48d517089fe4603c8 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 16:05:23 +0800 Subject: [PATCH 118/170] PUB @wxy https://linux.cn/article-13367-1.html --- ...0504 5 ways the Star Wars universe embraces open source.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210504 5 ways the Star Wars universe embraces open source.md (99%) diff --git a/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md b/published/20210504 5 ways the Star Wars universe embraces open source.md similarity index 99% rename from translated/tech/20210504 5 ways the Star Wars universe embraces open source.md rename to published/20210504 5 ways the Star Wars universe embraces open source.md index d331197030..100fff6490 100644 --- a/translated/tech/20210504 5 ways the Star Wars universe embraces open source.md +++ b/published/20210504 5 ways the Star Wars universe embraces open source.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13367-1.html) 《星球大战》的世界拥抱开源的 5 种方式 ====== From b7308df97e64b4abd6f33d0279c2f2a1d93556a4 Mon Sep 17 00:00:00 2001 From: RiaXu <1257021170@qq.com> Date: Fri, 7 May 2021 16:18:07 +0800 Subject: [PATCH 119/170] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E7=94=B3=E9=A2=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...210419 21 reasons why I think everyone should try Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/talk/20210419 21 reasons why I think everyone should try Linux.md b/sources/talk/20210419 21 reasons why I think everyone should try Linux.md index fc2dffba07..5199dcb2ef 100644 --- a/sources/talk/20210419 21 reasons why I think everyone should try Linux.md +++ b/sources/talk/20210419 21 reasons why I think everyone should try Linux.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/linux-reasons) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (ShuyRoy ) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) @@ -143,7 +143,7 @@ via: https://opensource.com/article/21/4/linux-reasons 作者:[Seth Kenlon][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[ShuyRoy](https://github.com/ShuyRoy) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From b4d8748fc9c3239c811640a8320509a0737af9ff Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 16:38:57 +0800 Subject: [PATCH 120/170] PRF @MjSeven --- ...pting and decrypting files with OpenSSL.md | 233 ++++++++---------- 1 file changed, 106 insertions(+), 127 deletions(-) diff --git a/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md b/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md index 29024e5500..d294102406 100644 --- a/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md +++ b/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md @@ -3,61 +3,60 @@ [#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe" [#]: collector: "lujun9972" [#]: translator: "MjSeven" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 使用 OpenSSL 加密和解密文件 ====== -OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息。 -![A secure lock.][1] + +> OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息。 + +![](https://img.linux.net.cn/data/attachment/album/202105/07/163825a9yh74h9yh4h77y2.jpg) 加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视。一般有两种类型: - 1. 密钥或对称加密 - 2. 公钥或非对称加密 + 1. 密钥加密或对称加密 + 2. 公钥加密或非对称加密 -私钥加密使用相同的密钥进行加密和解密,而公钥加密使用不同的密钥进行加密和解密。每种方法各有利弊。私钥加密速度更快,而公钥加密更安全,因为它解决了安全共享密钥的问题,将它们结合在一起可以最大限度地利用每种类型的优势。 +密钥加密secret-key encryption使用相同的密钥进行加密和解密,而公钥加密public-key encryption使用不同的密钥进行加密和解密。每种方法各有利弊。密钥加密速度更快,而公钥加密更安全,因为它解决了安全共享密钥的问题,将它们结合在一起可以最大限度地利用每种类型的优势。 ### 公钥加密 公钥加密使用两组密钥,称为密钥对。一个是公钥,可以与你想要秘密通信的任何人自由共享。另一个是私钥,应该是一个秘密,永远不会共享。 -公钥用于加密。如果某人想与你交流敏感信息,你可以将你的公钥发送给他们,他们可以使用公钥加密消息或文件,然后再将其发送给你。私钥用于解密。解密发件人加密消息的唯一方法是使用私钥。因此,它们被称为“密钥对”,它们是相互关联的的。 +公钥用于加密。如果某人想与你交流敏感信息,你可以将你的公钥发送给他们,他们可以使用公钥加密消息或文件,然后再将其发送给你。私钥用于解密。解密发件人加密的消息的唯一方法是使用私钥。因此,它们被称为“密钥对”,它们是相互关联的。 ### 如何使用 OpenSSL 加密文件 [OpenSSL][2] 是一个了不起的工具,可以执行各种任务,例如加密文件。本文使用安装了 OpenSSL 的 Fedora 计算机。如果你的机器上没有,则可以使用软件包管理器进行安装: - -```bash -$ cat /etc/fedora-release +``` +alice $ cat /etc/fedora-release Fedora release 33 (Thirty Three) -$ +alice $ alice $ openssl version OpenSSL 1.1.1i FIPS  8 Dec 2020 alice $ ``` -要探索文件加密和解密,想象两个用户 Alice 和 Bob,他们想通过使用 OpenSSL 交换加密文件来相互通信。 +要探索文件加密和解密,假如有两个用户 Alice 和 Bob,他们想通过使用 OpenSSL 交换加密文件来相互通信。 #### 步骤 1:生成密钥对 -在加密文件之前,你需要生成密钥对。你还需要一个密码短语,每当你使用 OpenSSL 时都必须使用该密码短语,因此务必记住它。 +在加密文件之前,你需要生成密钥对。你还需要一个密码短语passphrase,每当你使用 OpenSSL 时都必须使用该密码短语,因此务必记住它。 Alice 使用以下命令生成她的一组密钥对: - -```bash +``` alice $ openssl genrsa -aes128 -out alice_private.pem 1024 ``` -此命令使用 OpenSSL 的 [genrsa][3] 命令生成一个 1024 位的公钥/私钥对。这是可以的,因为 RSA 算法是不对称的。它也可以使用 aes 128 对称密钥算法来加密 Alice 生成的私钥。 +此命令使用 OpenSSL 的 [genrsa][3] 命令生成一个 1024 位的公钥/私钥对。这是可以的,因为 RSA 算法是不对称的。它还使用了 aes128 对称密钥算法来加密 Alice 生成的私钥。 输入命令后,OpenSSL 会提示 Alice 输入密码,每次使用密钥时,她都必须输入该密码: - -```bash +``` alice $ openssl genrsa -aes128 -out alice_private.pem 1024 Generating RSA private key, 1024 bit long modulus (2 primes) ..........+++++ @@ -77,8 +76,7 @@ alice $ Bob 使用相同的步骤来创建他的密钥对: - -```bash +``` bob $ openssl genrsa -aes128 -out bob_private.pem 1024 Generating RSA private key, 1024 bit long modulus (2 primes) ..................+++++ @@ -98,9 +96,9 @@ bob $ 如果你对密钥文件感到好奇,可以打开命令生成的 .pem 文件,但是你会看到屏幕上的一堆文本: -```bash +``` alice $ head alice_private.pem -\-----BEGIN RSA PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,E26FAC1F143A30632203F09C259200B9 @@ -113,39 +111,38 @@ pyAnN9uGUTBCDYeTwdw8TEzkyaL08FkzLfFbS2N9BDksA3rpI1cxpxRVFr9+jDBz alice $ ``` -要查看密钥的详细信息,可以使用以下 OpenSSL 命令打开 .pem 文件并显示内容。你可能想知道在哪里可以找到另一个密钥,因为这是单个文件。你观察的很细致,获取公钥的方法如下: +要查看密钥的详细信息,可以使用以下 OpenSSL 命令打开 .pem 文件并显示内容。你可能想知道在哪里可以找到另一个配对的密钥,因为这是单个文件。你观察的很细致,获取公钥的方法如下: - -```bash +``` alice $ openssl rsa -in alice_private.pem -noout -text Enter pass phrase for alice_private.pem: RSA Private-Key: (1024 bit, 2 primes) modulus: -    00:bd:e8:61:72:f8:f6:c8:f2:cc:05:fa:07:aa:99: -    47:a6:d8:06:cf:09:bf:d1:66:b7:f9:37:29:5d:dc: -    c7:11:56:59:d7:83:b4:81:f6:cf:e2:5f:16:0d:47: -    81:fe:62:9a:63:c5:20:df:ee:d3:95:73:dc:0a:3f: -    65:d3:36:1d:c1:7d:8b:7d:0f:79🇩🇪80:fc:d2:c0: -    e4:27:fc:e9:66:2d:e2:7e:fc:e6:73:d1:c9:28:6b: -    6a:8a:e8:96:9d:65:a0:8a:46:e0:b8:1f:b0:48:d4: -    db:d4:a3:7f:0d:53:36:9a:7d:2e:e7:d8:f2:16:d3: -    ff:1b:12:af:53:22:c0:41:51 + 00:bd:e8:61:72:f8:f6:c8:f2:cc:05:fa:07:aa:99: + 47:a6:d8:06:cf:09:bf:d1:66:b7:f9:37:29:5d:dc: + c7:11:56:59:d7:83:b4:81:f6:cf:e2:5f:16:0d:47: + 81:fe:62:9a:63:c5:20:df:ee:d3:95:73:dc:0a:3f: + 65:d3:36:1d:c1:7d:8b:7d:0f:79:de:80:fc:d2:c0: + e4:27:fc:e9:66:2d:e2:7e:fc:e6:73:d1:c9:28:6b: + 6a:8a:e8:96:9d:65:a0:8a:46:e0:b8:1f:b0:48:d4: + db:d4:a3:7f:0d:53:36:9a:7d:2e:e7:d8:f2:16:d3: + ff:1b:12:af:53:22:c0:41:51 publicExponent: 65537 (0x10001) -<< snip >> +<< 截断 >> exponent2: -    6e:aa:8c:6e:37:d0:57:37:13:c0:08:7e:75:43:96: -    33:01:99:25:24:75:9c:0b:45:3c:a2:39:44:69:84: -    a4:64:48:f4:5c:bc:40:40:bf:84:b8:f8:0f:1d:7b: -    96:7e:16:00:eb:49:da:6b:20:65:fc:a9:20:d9:98: -    76:ca:59:e1 + 6e:aa:8c:6e:37:d0:57:37:13:c0:08:7e:75:43:96: + 33:01:99:25:24:75:9c:0b:45:3c:a2:39:44:69:84: + a4:64:48:f4:5c:bc:40:40:bf:84:b8:f8:0f:1d:7b: + 96:7e:16:00:eb:49:da:6b:20:65:fc:a9:20:d9:98: + 76:ca:59:e1 coefficient: -    68:9e:2e:fa:a3:a4:72:1d:2b:60:61:11:b1:8b:30: -    6e:7e:2d:f9:79:79:f2:27🆎a0:a0:b6:45:08:df: -    12:f7:a4:3b:d9:df:c5:6e:c7:e8:81:29:07💿7e: -    47:99:5d:33:8c:b7:fb:3b:a9:bb:52:c0:47:7a:1c: -    e3:64:90:26 + 68:9e:2e:fa:a3:a4:72:1d:2b:60:61:11:b1:8b:30: + 6e:7e:2d:f9:79:79:f2:27:ab:a0:a0:b6:45:08:df: + 12:f7:a4:3b:d9:df:c5:6e:c7:e8:81:29:07:cd:7e: + 47:99:5d:33:8c:b7:fb:3b:a9:bb:52:c0:47:7a:1c: + e3:64:90:26 alice $ ``` @@ -153,8 +150,7 @@ alice $ 注意,公钥是你可以与他人自由共享的密钥,而你必须将私钥保密。因此,Alice 必须提取她的公钥,并将其保存到文件中: - -```bash +``` alice $ openssl rsa -in alice_private.pem -pubout > alice_public.pem Enter pass phrase for alice_private.pem: writing RSA key @@ -167,8 +163,7 @@ alice $ 你可以使用与之前相同的方式查看公钥详细信息,但是这次,输入公钥 .pem 文件: - -```bash +``` alice $ alice $ openssl rsa -in alice_public.pem -pubin -text -noout RSA Public-Key: (1024 bit) @@ -182,8 +177,7 @@ $ Bob 可以按照相同的过程来提取他的公钥并将其保存到文件中: - -```bash +``` bob $ openssl rsa -in bob_private.pem -pubout > bob_public.pem Enter pass phrase for bob_private.pem: writing RSA key @@ -200,28 +194,25 @@ bob $ 将 Alice 的公钥发送到 Bob 的工作站: - -```bash +``` alice $ scp alice_public.pem bob@bob-machine-or-ip:/path/ ``` 将 Bob 的公钥发送到 Alice 的工作站: - -```bash +``` bob $ scp bob_public.pem alice@alice-machine-or-ip:/path/ ``` -现在,Alice 有 Bob 的公钥,反之亦然: +现在,Alice 有了 Bob 的公钥,反之亦然: - -```bash +``` alice $ ls -l bob_public.pem -rw-r--r--. 1 alice alice 272 Mar 22 17:51 bob_public.pem alice $ +``` -[/code] [code] - +``` bob $ ls -l alice_public.pem -rw-r--r--. 1 bob bob 272 Mar 22 13:54 alice_public.pem bob $ @@ -232,9 +223,9 @@ bob $ 假设 Alice 需要与 Bob 秘密交流。她将秘密信息写入文件中,并将其保存到 `top_secret.txt` 中。由于这是一个普通文件,因此任何人都可以打开它并查看其内容,这里并没有太多保护: -```bash +``` alice $ -alice $ echo "vim or emacs ?" > top_secret.txt +alice $ echo "vim or emacs ?" > top_secret.txt alice $ alice $ cat top_secret.txt vim or emacs ? @@ -247,8 +238,7 @@ alice $ 2. Bob 的公钥(文件) 3. 加密后新文件的名称 - -```bash +``` alice $ openssl rsautl -encrypt -inkey bob_public.pem -pubin -in top_secret.txt -out top_secret.enc alice $ alice $ ls -l top_secret.* @@ -260,24 +250,23 @@ alice $ 加密后,原始文件仍然是可见的,而新创建的加密文件在屏幕上看起来像乱码。这样,你可以确定秘密消息已被加密: - -```bash +``` alice $ cat top_secret.txt vim or emacs ? alice $ alice $ cat top_secret.enc -�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��alice $ +�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��alice $ alice $ alice $ alice $ hexdump -C ./top_secret.enc -00000000  9e 73 12 8f e3 75 4d 29  4d 26 3e bf 80 4e a0 c5  |.s...uM)M&>..N..| -00000010  7d 64 6d 43 79 39 32 23  31 58 ce 71 f3 ba 95 a6  |}dmCy92#1X.q....| -00000020  c0 c0 76 17 fb f7 bf 4d  ce fc 40 e6 f4 45 7f db  |..v....M..@..E..| -00000030  7e ae c0 31 f8 6b 10 06  7e 26 50 55 b5 05 56 68  |~..1.k..~&PU..Vh| -00000040  48 4c eb 40 5e 50 fe 19  ea 28 a8 b8 7a 13 69 d7  |HL.@^P...(..z.i.| -00000050  4d b0 34 70 d8 65 d5 07  95 67 2b 52 ea 31 aa d4  |M.4p.e...g+R.1..| -00000060  80 b3 a8 ec a1 73 ed a7  f9 17 c3 13 d4 fa c1 71  |.....s.........q| -00000070  5f 38 b9 6c 07 72 81 a6  fe af 43 a6 49 2d c4 ee  |_8.l.r....C.I-..| +00000000 9e 73 12 8f e3 75 4d 29 4d 26 3e bf 80 4e a0 c5 |.s...uM)M&>..N..| +00000010 7d 64 6d 43 79 39 32 23 31 58 ce 71 f3 ba 95 a6 |}dmCy92#1X.q....| +00000020 c0 c0 76 17 fb f7 bf 4d ce fc 40 e6 f4 45 7f db |..v....M..@..E..| +00000030 7e ae c0 31 f8 6b 10 06 7e 26 50 55 b5 05 56 68 |~..1.k..~&PU..Vh| +00000040 48 4c eb 40 5e 50 fe 19 ea 28 a8 b8 7a 13 69 d7 |HL.@^P...(..z.i.| +00000050 4d b0 34 70 d8 65 d5 07 95 67 2b 52 ea 31 aa d4 |M.4p.e...g+R.1..| +00000060 80 b3 a8 ec a1 73 ed a7 f9 17 c3 13 d4 fa c1 71 |.....s.........q| +00000070 5f 38 b9 6c 07 72 81 a6 fe af 43 a6 49 2d c4 ee |_8.l.r....C.I-..| 00000080 alice $ alice $ file top_secret.enc @@ -287,37 +276,34 @@ alice $ 删除秘密消息的原始文件是安全的,这样确保任何痕迹都没有: - -```bash +``` alice $ rm -f top_secret.txt ``` -现在,Alice 需要再次使用 `scp` 命令将此加密文件通过网络发送给 Bob 的工作站。注意,即使文件被截获,其内容也会是加密的,因此内容不会被泄露: +现在,Alice 需要再次使用 `scp` 命令将此加密文件通过网络发送给 Bob 的工作站。注意,即使文件被截获,其内容也会是加密的,因此内容不会被泄露: - -```bash +``` alice $  scp top_secret.enc bob@bob-machine-or-ip:/path/ ``` 如果 Bob 使用常规方法尝试打开并查看加密的消息,他将无法看懂该消息: - -```bash +``` bob $ ls -l top_secret.enc -rw-r--r--. 1 bob bob 128 Mar 22 13:59 top_secret.enc bob $ bob $ cat top_secret.enc -�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��bob $ +�s��uM)M&>��N��}dmCy92#1X�q󺕦��v���M��@��E�~��1�k~&PU�VhHL�@^P��(��zi�M�4p�e��g+R�1�Ԁ���s�������q_8�lr����C�I-��bob $ bob $ bob $ hexdump -C top_secret.enc -00000000  9e 73 12 8f e3 75 4d 29  4d 26 3e bf 80 4e a0 c5  |.s...uM)M&>..N..| -00000010  7d 64 6d 43 79 39 32 23  31 58 ce 71 f3 ba 95 a6  |}dmCy92#1X.q....| -00000020  c0 c0 76 17 fb f7 bf 4d  ce fc 40 e6 f4 45 7f db  |..v....M..@..E..| -00000030  7e ae c0 31 f8 6b 10 06  7e 26 50 55 b5 05 56 68  |~..1.k..~&PU..Vh| -00000040  48 4c eb 40 5e 50 fe 19  ea 28 a8 b8 7a 13 69 d7  |HL.@^P...(..z.i.| -00000050  4d b0 34 70 d8 65 d5 07  95 67 2b 52 ea 31 aa d4  |M.4p.e...g+R.1..| -00000060  80 b3 a8 ec a1 73 ed a7  f9 17 c3 13 d4 fa c1 71  |.....s.........q| -00000070  5f 38 b9 6c 07 72 81 a6  fe af 43 a6 49 2d c4 ee  |_8.l.r....C.I-..| +00000000 9e 73 12 8f e3 75 4d 29 4d 26 3e bf 80 4e a0 c5 |.s...uM)M&>..N..| +00000010 7d 64 6d 43 79 39 32 23 31 58 ce 71 f3 ba 95 a6 |}dmCy92#1X.q....| +00000020 c0 c0 76 17 fb f7 bf 4d ce fc 40 e6 f4 45 7f db |..v....M..@..E..| +00000030 7e ae c0 31 f8 6b 10 06 7e 26 50 55 b5 05 56 68 |~..1.k..~&PU..Vh| +00000040 48 4c eb 40 5e 50 fe 19 ea 28 a8 b8 7a 13 69 d7 |HL.@^P...(..z.i.| +00000050 4d b0 34 70 d8 65 d5 07 95 67 2b 52 ea 31 aa d4 |M.4p.e...g+R.1..| +00000060 80 b3 a8 ec a1 73 ed a7 f9 17 c3 13 d4 fa c1 71 |.....s.........q| +00000070 5f 38 b9 6c 07 72 81 a6 fe af 43 a6 49 2d c4 ee |_8.l.r....C.I-..| 00000080 bob $ ``` @@ -330,17 +316,15 @@ Bob 需要使用 OpenSSL 来解密消息,但是这次使用的是 `-decrypt` 2. Bob 的私钥(用于解密,因为文件是用 Bob 的公钥加密的) 3. 通过重定向保存解密输出的文件名 - -```bash -bob $ openssl rsautl -decrypt -inkey bob_private.pem -in top_secret.enc > top_secret.txt +``` +bob $ openssl rsautl -decrypt -inkey bob_private.pem -in top_secret.enc > top_secret.txt Enter pass phrase for bob_private.pem: bob $ ``` 现在,Bob 可以阅读 Alice 发送给他的秘密消息: - -```bash +``` bob $ ls -l top_secret.txt -rw-r--r--. 1 bob bob 15 Mar 22 14:02 top_secret.txt bob $ @@ -351,9 +335,8 @@ bob $ Bob 需要回复 Alice,因此他将秘密回复写在一个文件中: - -```bash -bob $ echo "nano for life" > reply_secret.txt +``` +bob $ echo "nano for life" > reply_secret.txt bob $ bob $ cat reply_secret.txt nano for life @@ -364,8 +347,7 @@ bob $ 为了发送消息,Bob 采用和 Alice 相同的步骤,但是由于该消息是发送给 Alice 的,因此他需要使用 Alice 的公钥来加密文件: - -```bash +``` bob $ openssl rsautl -encrypt -inkey alice_public.pem -pubin -in reply_secret.txt -out reply_secret.enc bob $ bob $ ls -l reply_secret.enc @@ -373,17 +355,17 @@ bob $ ls -l reply_secret.enc bob $ bob $ cat reply_secret.enc �F݇��.4"f�1��\��{o԰$�M��I{5�|�\�l͂�e��Y�V��{�|!$c^a -                                                 �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:bob $ + �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:bob $ bob $ bob $ hexdump -C ./reply_secret.enc -00000000  92 46 dd 87 04 bc a7 2e  34 22 01 66 1a 13 31 db  |.F......4".f..1.| -00000010  c4 5c b4 8e 7b 6f d4 b0  24 d2 4d 92 9b 49 7b 35  |.\\..{o..$.M..I{5| -00000020  da 7c ee 5c bb 6c cd 82  f1 1b 92 65 f1 8d f2 59  |.|.\\.l.....e...Y| -00000030  82 56 81 80 7b 89 07 7c  21 24 63 5e 61 0c ae 2a  |.V..{..|!$c^a..*| -00000040  d4 aa 5c 76 51 8d cf a0  39 04 c1 d7 dc f0 ad 99  |..\vQ...9.......| -00000050  27 ed 8e de d9 ae 02 73  50 e0 dd 27 13 ae 8e 5a  |'......sP..'...Z| -00000060  12 e4 9a 31 57 b3 03 6e  dd e1 16 7f 6b c0 b3 8b  |...1W..n....k...| -00000070  4a cf 30 b8 49 3b 50 38  e0 9f 84 f6 83 da 26 3a  |J.0.I;P8......&:| +00000000 92 46 dd 87 04 bc a7 2e 34 22 01 66 1a 13 31 db |.F......4".f..1.| +00000010 c4 5c b4 8e 7b 6f d4 b0 24 d2 4d 92 9b 49 7b 35 |.\..{o..$.M..I{5| +00000020 da 7c ee 5c bb 6c cd 82 f1 1b 92 65 f1 8d f2 59 |.|.\.l.....e...Y| +00000030 82 56 81 80 7b 89 07 7c 21 24 63 5e 61 0c ae 2a |.V..{..|!$c^a..*| +00000040 d4 aa 5c 76 51 8d cf a0 39 04 c1 d7 dc f0 ad 99 |..\vQ...9.......| +00000050 27 ed 8e de d9 ae 02 73 50 e0 dd 27 13 ae 8e 5a |'......sP..'...Z| +00000060 12 e4 9a 31 57 b3 03 6e dd e1 16 7f 6b c0 b3 8b |...1W..n....k...| +00000070 4a cf 30 b8 49 3b 50 38 e0 9f 84 f6 83 da 26 3a |J.0.I;P8......&:| 00000080 bob $ bob $ # remove clear text secret message file @@ -392,41 +374,38 @@ bob $ rm -f reply_secret.txt Bob 通过 `scp` 将加密的文件发送至 Alice 的工作站: - -```bash +``` $ scp reply_secret.enc alice@alice-machine-or-ip:/path/ ``` 如果 Alice 尝试使用常规工具去阅读加密的文本,她将无法理解加密的文本: - -```bash +``` alice $ alice $ ls -l reply_secret.enc -rw-r--r--. 1 alice alice 128 Mar 22 18:01 reply_secret.enc alice $ alice $ cat reply_secret.enc �F݇��.4"f�1��\��{o԰$�M��I{5�|�\�l͂�e��Y�V��{�|!$c^a -                                                 �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:alice $ + �*Ԫ\vQ�Ϡ9����'��ٮsP��'��Z�1W�n��k���J�0�I;P8������&:alice $ alice $ alice $ alice $ hexdump -C ./reply_secret.enc -00000000  92 46 dd 87 04 bc a7 2e  34 22 01 66 1a 13 31 db  |.F......4".f..1.| -00000010  c4 5c b4 8e 7b 6f d4 b0  24 d2 4d 92 9b 49 7b 35  |.\\..{o..$.M..I{5| -00000020  da 7c ee 5c bb 6c cd 82  f1 1b 92 65 f1 8d f2 59  |.|.\\.l.....e...Y| -00000030  82 56 81 80 7b 89 07 7c  21 24 63 5e 61 0c ae 2a  |.V..{..|!$c^a..*| -00000040  d4 aa 5c 76 51 8d cf a0  39 04 c1 d7 dc f0 ad 99  |..\vQ...9.......| -00000050  27 ed 8e de d9 ae 02 73  50 e0 dd 27 13 ae 8e 5a  |'......sP..'...Z| -00000060  12 e4 9a 31 57 b3 03 6e  dd e1 16 7f 6b c0 b3 8b  |...1W..n....k...| -00000070  4a cf 30 b8 49 3b 50 38  e0 9f 84 f6 83 da 26 3a  |J.0.I;P8......&:| +00000000 92 46 dd 87 04 bc a7 2e 34 22 01 66 1a 13 31 db |.F......4".f..1.| +00000010 c4 5c b4 8e 7b 6f d4 b0 24 d2 4d 92 9b 49 7b 35 |.\..{o..$.M..I{5| +00000020 da 7c ee 5c bb 6c cd 82 f1 1b 92 65 f1 8d f2 59 |.|.\.l.....e...Y| +00000030 82 56 81 80 7b 89 07 7c 21 24 63 5e 61 0c ae 2a |.V..{..|!$c^a..*| +00000040 d4 aa 5c 76 51 8d cf a0 39 04 c1 d7 dc f0 ad 99 |..\vQ...9.......| +00000050 27 ed 8e de d9 ae 02 73 50 e0 dd 27 13 ae 8e 5a |'......sP..'...Z| +00000060 12 e4 9a 31 57 b3 03 6e dd e1 16 7f 6b c0 b3 8b |...1W..n....k...| +00000070 4a cf 30 b8 49 3b 50 38 e0 9f 84 f6 83 da 26 3a |J.0.I;P8......&:| 00000080 alice $ ``` 所以,她使用 OpenSSL 解密消息,只不过这次她提供了自己的私钥并将输出保存到文件中: - -```bash +``` alice $ openssl rsautl -decrypt -inkey alice_private.pem -in reply_secret.enc > reply_secret.txt Enter pass phrase for alice_private.pem: alice $ @@ -440,7 +419,7 @@ alice $ ### 了解 OpenSSL 的更多信息 -OpenSSL 在加密界是真正的瑞士军刀。除了加密文件外,它还可以执行许多任务,你可以通过访问 OpenSSL [文档页面][4]来找到使用它的所有方式,包括手册的链接、 _OpenSSL Cookbook_、常见问题解答等。要了解更多信息,尝试使用其自带的各种加密算法,看看它是如何工作的。 +OpenSSL 在加密界是真正的瑞士军刀。除了加密文件外,它还可以执行许多任务,你可以通过访问 OpenSSL [文档页面][4]来找到使用它的所有方式,包括手册的链接、 《OpenSSL Cookbook》、常见问题解答等。要了解更多信息,尝试使用其自带的各种加密算法,看看它是如何工作的。 -------------------------------------------------------------------------------- @@ -449,7 +428,7 @@ via: https://opensource.com/article/21/4/encryption-decryption-openssl 作者:[Gaurav Kamathe][a] 选题:[lujun9972][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From f13303c936f9ac7b8576155e383a52e272262b84 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 16:39:55 +0800 Subject: [PATCH 121/170] PUB @MjSeven https://linux.cn/article-13368-1.html --- .../20210429 Encrypting and decrypting files with OpenSSL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210429 Encrypting and decrypting files with OpenSSL.md (99%) diff --git a/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md b/published/20210429 Encrypting and decrypting files with OpenSSL.md similarity index 99% rename from translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md rename to published/20210429 Encrypting and decrypting files with OpenSSL.md index d294102406..a3cbe64aec 100644 --- a/translated/tech/20210429 Encrypting and decrypting files with OpenSSL.md +++ b/published/20210429 Encrypting and decrypting files with OpenSSL.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "MjSeven" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-13368-1.html" 使用 OpenSSL 加密和解密文件 ====== From 36cd2483f6933b4b4471aea4612153419ebf9b09 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 23:01:08 +0800 Subject: [PATCH 122/170] PRF @alim0x --- ...odus is Finally Here on Steam for Linux.md | 47 +++++-------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md b/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md index fe29c13cfd..159fa30773 100644 --- a/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md +++ b/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md @@ -3,28 +3,32 @@ [#]: author: (Asesh Basu https://news.itsfoss.com/author/asesh/) [#]: collector: (lujun9972) [#]: translator: (alim0x) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -地铁:离去终于来到了 Steam for Linux +《地铁:离去》终于来到了 Steam for Linux ====== -地铁:离去是一款长久以来深受粉丝喜爱的游戏,现在终于来到了 Linux 平台。在超过两年的漫长等待之后,Linux 用户终于可以上手地铁三部曲的第三部作品。虽然先前已经有一些非官方移植的版本,但这个版本是 4A Games 发布的官方版本。 +> 在其他平台上推出后,《地铁:离去》正式登陆 Linux/GNU 平台。准备好体验最好的射击游戏之一了吗? -地铁:离去是一款第一人称射击游戏,拥有华丽的光线跟踪画面,故事背景设置在横跨俄罗斯广阔土地的荒野之上。这条精彩的故事线横跨了从春、夏、秋到核冬天的整整一年。游戏结合了快节奏的战斗和隐身以及探索和生存,可以轻而易举地成为 Linux 中最具沉浸感的游戏之一。 +![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/metro-exodus-linux.png?w=1200&ssl=1) + +《地铁:离去Metro Exodus》是一款长久以来深受粉丝喜爱的游戏,现在终于来到了 Linux 平台。在超过两年的漫长等待之后,Linux 用户终于可以上手《地铁》三部曲的第三部作品。虽然先前已经有一些非官方移植的版本,但这个版本是 4A Games 发布的官方版本。 + +《地铁:离去》是一款第一人称射击游戏,拥有华丽的光线跟踪画面,故事背景设置在横跨俄罗斯广阔土地的荒野之上。这条精彩的故事线横跨了从春、夏、秋到核冬天的整整一年。游戏结合了快节奏的战斗和隐身以及探索和生存,可以轻而易举地成为 Linux 中最具沉浸感的游戏之一。 ### 我的 PC 可以运行它吗? 作为一款图形计算密集型游戏,你得有像样的硬件来运行以获得不错的帧率。这款游戏重度依赖光线追踪来让画面看起来更棒。 -运行游戏的最低要求需要 **Intel Core i5 4400**,**8 GB** 内存,以及最低 **NVIDIA GTX670** 或 **AMD Radeon R9 380** 的显卡。推荐配置是 **Intel Core i7 4770K** 搭配 **GTX1070** 或 **RX 5500XT**。 +运行游戏的最低要求需要 **Intel Core i5 4400**、**8 GB** 内存,以及最低 **NVIDIA GTX670** 或 **AMD Radeon R9 380** 的显卡。推荐配置是 **Intel Core i7 4770K** 搭配 **GTX1070** 或 **RX 5500XT**。 这是开发者提及的官方配置清单: ![][1] -地铁:离去是付费游戏,你需要花费 39.99 美元来获取这个最新最棒的版本。 +《地铁:离去》是付费游戏,你需要花费 39.99 美元来获取这个最新最棒的版本。 如果你在游玩的时候遇到持续崩溃的情况,检查一下你的显卡驱动以及 Linux 内核版本。有人反馈了一些相关的问题,但不是普遍性的问题。 @@ -32,28 +36,11 @@ Linux 版本的游戏可以从 [Steam][2] for Linux 获取。如果你已经购买了游戏,它会自动出现在你的 Steam for Linux 游戏库内。 -[Metro Exodus (Steam)][2] +- [Metro Exodus (Steam)][2] 如果你还没有安装 Steam,你可以参考我们的教程:[在 Ubuntu 上安装 Steam][3] 和 [在 Fedora 上安装 Steam][4]。 -_你的 Steam 游戏库中已经有地铁:离去了吗?准备购买一份吗?可以在评论区写下你的想法。_ - -![][5] - -#### _相关信息_ - - * [热门游戏地铁:离去和罗马:全面战争重制版 4 月在 Linux 上发行][6] - * ![][7] ![][8] - - - * [别错过这些超赞的机会:假期的免费 Linux 游戏][9] - * ![][7] ![][10] - - - * [Linux 在游戏方面取得的进步简直令人难以置信:Lutris Creator][11] - * ![][7] ![][12] - - +你的 Steam 游戏库中已经有《地铁:离去》了吗?准备购买一份吗?可以在评论区写下你的想法。 -------------------------------------------------------------------------------- @@ -68,15 +55,7 @@ via: https://news.itsfoss.com/metro-exodus-steam/ [a]: https://news.itsfoss.com/author/asesh/ [b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzM3Micgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[1]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/METRO-EXODUS-LINUX-System-Requirements.jpg?w=1454&ssl=1 [2]: https://store.steampowered.com/app/412020/Metro_Exodus/ [3]: https://itsfoss.com/install-steam-ubuntu-linux/ [4]: https://itsfoss.com/install-steam-fedora/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: https://news.itsfoss.com/metro-exodus-total-war-rome-linux/ -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[8]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/metro-total-war-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[9]: https://news.itsfoss.com/game-deals-holiday-2020/ -[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-Game-Deals.png?fit=800%2C450&ssl=1&resize=350%2C200 -[11]: https://news.itsfoss.com/lutris-creator-interview/ -[12]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/lutris-interview-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 From 9e9949ebed27a4f6608b7c3c32ed29914ddb13df Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 23:01:56 +0800 Subject: [PATCH 123/170] PUB @alim0x https://linux.cn/article-13370-1.html --- ...0210416 Metro Exodus is Finally Here on Steam for Linux.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20210416 Metro Exodus is Finally Here on Steam for Linux.md (97%) diff --git a/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md b/published/20210416 Metro Exodus is Finally Here on Steam for Linux.md similarity index 97% rename from translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md rename to published/20210416 Metro Exodus is Finally Here on Steam for Linux.md index 159fa30773..6a70a602d6 100644 --- a/translated/news/20210416 Metro Exodus is Finally Here on Steam for Linux.md +++ b/published/20210416 Metro Exodus is Finally Here on Steam for Linux.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (alim0x) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13370-1.html) 《地铁:离去》终于来到了 Steam for Linux ====== From da7e07e8dbd257be06676c8e90ede313ee49027a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Fri, 7 May 2021 23:53:19 +0800 Subject: [PATCH 124/170] APL --- ...ora Vs Red Hat- Which Linux Distro Should You Use and Why.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md index dcb36b1877..f643299f7d 100644 --- a/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md +++ b/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md @@ -2,7 +2,7 @@ [#]: via: (https://itsfoss.com/fedora-vs-red-hat/) [#]: author: (Sarvottam Kumar https://itsfoss.com/author/sarvottam/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (wxy) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 4538fab2fd74f9b7a6a4b5ba24a221ef97e9f152 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 8 May 2021 00:48:45 +0800 Subject: [PATCH 125/170] TSL --- ...ich Linux Distro Should You Use and Why.md | 183 ------------------ ...ich Linux Distro Should You Use and Why.md | 182 +++++++++++++++++ 2 files changed, 182 insertions(+), 183 deletions(-) delete mode 100644 sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md create mode 100644 translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md diff --git a/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md deleted file mode 100644 index f643299f7d..0000000000 --- a/sources/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md +++ /dev/null @@ -1,183 +0,0 @@ -[#]: subject: (Fedora Vs Red Hat: Which Linux Distro Should You Use and Why?) -[#]: via: (https://itsfoss.com/fedora-vs-red-hat/) -[#]: author: (Sarvottam Kumar https://itsfoss.com/author/sarvottam/) -[#]: collector: (lujun9972) -[#]: translator: (wxy) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Fedora Vs Red Hat: Which Linux Distro Should You Use and Why? -====== - -Fedora and Red Hat. Both Linux distributions belong to the same organization, both use RPM package manager and both provide desktop and server editions. Both Linux distributions have a greater impact on the operating system world. - -This is why it is easier to get confused between the two similar distributions. In this article, I will discuss the similarities and difference between Red Hat and Fedora. - -This will help you if you want to choose between the two or simply want to understand the concept of having two distributions from the same organization. - -### Difference Between Fedora And RHEL - -![][1] - -Let’s talk about the difference between the two distributions first. - -#### Community Version vs Enterprise Version - -Back in 1995, Red Hat Linux had its first non-beta release, which was sold as a boxed product. It was also called Red Hat Commercial Linux. - -Later in 2003, Red Hat turned Red Hat Linux into a Red Hat Enterprise Linux (RHEL) focussed completely on enterprise customers. Since then, Red Hat is an enterprise version of Linux distribution. - -What it means is that you have to subscribe and pay to use Red Hat as it is not available as a free OS. Even all software, bug fixes, and security support are available for only those who have an active Red Hat subscription. - -At the time when Red Hat Linux became RHEL, it also resulted in the foundation of the Fedora Project that takes care of the development of Fedora Linux. - -Unlike Red Hat, Fedora is a community version of the Linux distribution that is available at free of cost for everyone including bug fixes and other services. - -Even though Red Hat sponsors the Fedora Project, Fedora Linux is primarily maintained by an independent open source community. - -#### Free vs Paid - -Well, you will find the majority of Linux distributions are available to download free of cost. Fedora Linux is also one such distro, whose desktop, server, all other editions, and spins are freely [available to download][2]. - -There are still Linux distros for which you have to pay. Red Hat Enterprise Linux is one such popular Linux-based operating system that comes at cost of money. - -Except for the RHEL [developer version][3] which costs $99, you have to pay more than $100 to purchase [other RHEL versions][4] for servers, virtual datacenters, and desktops. - -However, if you happen to be an individual developer, not an organization or team, you can join [Red Hat Developer Program][5]. Under the program, you get access to Red Hat Enterprise Linux including other products at no cost for a period of 12 months. - -#### Upstream vs Downstream - -Fedora is upstream of RHEL and RHEL is downstream of Fedora. This means when a new version of Fedora releases with new features and changes, Red Hat makes use of Fedora source code to include the desired features in its next release. - -Of course, Red Hat also test the pulled code before merging into its own codebase for RHEL. - -In another way, Fedora Linux acts as a testing ground for Red Hat to first check and then incorporate features into the RHEL system. - -#### Release Cycle - -For delivering the regular updates to all components of the OS, both RHEL and Fedora follow a standard fixed-point release model. - -Fedora has a new version release approximately every six months (mostly in April and October) that comes with maintenance support for up to 13 months. - -Red Hat releases a new point version of a particular series every year and a major version after approximately 5 years. Each major release of Red Hat goes through four lifecycle phases that range from 5 years of support to 10 years with Extended Life Phase using add-on subscriptions. - -#### Cutting-edge Linux Distribution - -When it comes to innovation and new technologies, Fedora takes a complete edge over the RHEL. Even though Fedora does not follow the [rolling release model][6], it is the distribution known for offering bleeding-edge technology early on. - -This is because Fedora regularly updates the packages to their latest version to provide an up-to-date OS after every six months. - -If you know, [GNOME 40][7] is the latest version of the GNOME desktop environment that arrived last month. And the latest stable [version 34][8] of Fedora does include it, while the latest stable version 8.3 of RHEL still comes with GNOME 3.32. - -#### File System - -Do you put the organization and retrieval of data on your system at a high priority in choosing an operating system? If so, you should know about XFS and BTRFS file system before deciding between Red Hat and Fedora. - -It was in 2014 when RHEL 7.0 replaced EXT4 with XFS as its default file system. Since then, Red Hat has an XFS 64-bit journaling file system in every version by default. - -Though Fedora is upstream to Red Hat, Fedora continued with EXT4 until last year when [Fedora 33][9] introduced [Btrfs as the default file system][10]. - -Interestingly, Red Hat had included Btrfs as a “technology preview” at the initial release of RHEL 6. Later on, Red Hat dropped the plan to use Btrfs and hence [removed][11] it completely from RHEL 8 and future major release in 2019. - -#### Variants Available - -Compared to Fedora, Red Hat has very limited number of editions. It is mainly available for desktops, servers, academics, developers, virtual servers, and IBM Power Little Endian. - -While Fedora along with official editions for desktop, server, and IoT, provides an immutable desktop Silverblue and a container-focused Fedora CoreOS. - -Not just that, but Fedora also has purpose-specific custom variants called [Fedora Labs][12]. Each ISO packs a set of software packages for professionals, neuroscience, designers, gamers, musicians, students, and scientists. - -Want different desktop environments in Fedora? you can also check for the official [Fedora Spins][13] that comes pre-configured with several desktop environments such as KDE, Xfce, LXQT, LXDE, Cinnamon, and i3 tiling window manager. - -![Fedora Cinnamon Spin][14] - -Furthermore, if you want to get your hands on new software before it lands in stable Fedora, Fedora Rawhide is yet another edition based on the rolling release model. - -### **Similarities Between Fedora And RHEL** - -Besides the dissimilarities, both Fedora and Red Hat also have several things in common. - -#### Parent Company - -Red Hat Inc. is the common company that backs both Fedora project and RHEL in terms of both development and financial. - -Even Red Hat sponsors the Fedora Project financially, Fedora also has its own council that supervises the development without Red Hat intervention. - -#### Open Source Product - -Before you think that Red Hat charges money then how it can be an open-source product, I would suggest reading our [article][15] that breaks down everything about FOSS and Open Source. - -Being an open source software does not mean you can get it freely, sometimes it can cost money. Red Hat is one of the open source companies that have built a business in it. - -Both Fedora and Red Hat is an open source operating system. All the Fedora package sources are available [here][16] and already packaged software [here][2]. - -However, in the case of Red Hat, the source code is also [freely available][17] for anyone. But unlike Fedora, you need to pay for using the runnable code or else you are free to build on your own. - -What you pay to Red Hat subscription is actually for the system maintenance and technical support. - -#### Desktop Environment And Init System - -The flagship desktop edition of Fedora and Red Hat ships GNOME graphical interface. So, if you’re already familiar with GNOME, starting with any of the distributions won’t be of much trouble. - -![GNOME desktop][18] - -Are you one of the few people who hate SystemD init system? If so, then none of Fedora and Red Hat is an OS for you as both supports and uses SystemD by default. - -Anyhow if you wishes to replace it with other init system like Runit or OpenRC, it’s not impossible but I would say it won’t be a best idea. - -#### RPM-based Distribution - -If you’re already well-versed with handling the rpm packages using YUM, RPM, or DNF command-line utility, kudos! you can count in both RPM-based distributions. - -By default, Red Hat uses RPM (Red Hat Package Manager) for installing, updating, removing, and managing RPM software packages. - -Fedora used YUM (Yellowdog Updater Modified) until Fedora 21 in 2015. Since Fedora 22, it now uses DNF (Dandified Yum) in place of YUM as the default [package manager][19]. - -### Fedora Or Red Hat: Which One Should You Choose? - -Frankly, it really depends on who you’re and why do you want to use it. If you’re a beginner, developer, or a normal user who wants it for productivity or to learn about Linux, Fedora can be a good choice. - -It will help you to set up the system easily, experiment, save money, and also become a part of the Fedora Project. Let me remind you that Linux creator [Linus Torvalds][20] uses Fedora Linux on his main workstation. - -However, it definitely does not mean you should also use Fedora. If you happen to be an enterprise, you may rethink choosing it considering Fedora’s support lifecycle that reaches end of life in a year. - -And if you’re not a fan of rapid changes in every new version, you may dislike cutting-edge Fedora for your server and business needs. - -With enterprise version Red Hat, you get high stability, security, and quality of support from expert Red Hat engineers for your large enterprise. - -So, are you willing to upgrade your server every year and get free community support or purchase a subscription to get more than 5 years of lifecycle and expert technical support? A decision is yours. - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/fedora-vs-red-hat/ - -作者:[Sarvottam Kumar][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/sarvottam/ -[b]: https://github.com/lujun9972 -[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/fedora-vs-red-hat.jpg?resize=800%2C450&ssl=1 -[2]: https://getfedora.org/ -[3]: https://www.redhat.com/en/store/red-hat-enterprise-linux-developer-suite -[4]: https://www.redhat.com/en/store/linux-platforms -[5]: https://developers.redhat.com/register/ -[6]: https://itsfoss.com/rolling-release/ -[7]: https://news.itsfoss.com/gnome-40-release/ -[8]: https://news.itsfoss.com/fedora-34-release/ -[9]: https://itsfoss.com/fedora-33/ -[10]: https://itsfoss.com/btrfs-default-fedora/ -[11]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/file-systems-and-storage_considerations-in-adopting-rhel-8#btrfs-has-been-removed_file-systems-and-storage -[12]: https://labs.fedoraproject.org/ -[13]: https://spins.fedoraproject.org/ -[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/Fedora-Cinnamon-Spin.jpg?resize=800%2C450&ssl=1 -[15]: https://itsfoss.com/what-is-foss/ -[16]: https://src.fedoraproject.org/ -[17]: http://ftp.redhat.com/pub/redhat/linux/enterprise/ -[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/GNOME-desktop.jpg?resize=800%2C450&ssl=1 -[19]: https://itsfoss.com/package-manager/ -[20]: https://itsfoss.com/linus-torvalds-facts/ diff --git a/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md new file mode 100644 index 0000000000..e38b1ca615 --- /dev/null +++ b/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md @@ -0,0 +1,182 @@ +[#]: subject: (Fedora Vs Red Hat: Which Linux Distro Should You Use and Why?) +[#]: via: (https://itsfoss.com/fedora-vs-red-hat/) +[#]: author: (Sarvottam Kumar https://itsfoss.com/author/sarvottam/) +[#]: collector: (lujun9972) +[#]: translator: (wxy) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Fedora 和红帽 Linux:你应该使用哪个,为什么? +====== + +Fedora 和红帽 Linux。这两个 Linux 发行版都属于同一个组织,都使用 RPM 包管理器,都提供桌面版和服务器版。这两个 Linux 发行版对操作系统世界都有较大的影响。 + +这就是为什么在这两个类似的发行版之间比较容易混淆的原因。在这篇文章中,我将讨论红帽 Linux 和 Fedora 的相似之处和区别。 + +如果你想在两者之间做出选择,或者只是想了解来自同一组织的两个发行版的概念,这将对你有所帮助。 + +### Fedora 和红帽 Linux 的区别 + +![][1] + +我们先来谈谈这两个发行版的区别。 + +#### 社区版与企业版 + +早在 1995 年,红帽 Linux 就有了它的第一个非 beta 版本,它是作为盒装产品出售的。它也被称为红帽商业 LinuxRed Hat Commercial Linux。 + +后来在 2003 年,红帽把红帽 Linux 变成了完全以企业客户为中心的红帽企业 LinuxRed Hat Enterprise Linux(RHEL)。从那时起,红帽就是一个企业版的 Linux 发行版。 + +它的意思是,你必须订阅并付费才能使用红帽 Linux,因为它不是作为一个免费的操作系统。甚至所有的软件、错误修复和安全支持都只对那些拥有红帽订阅的人开放。 + +当红帽 Linux 变成 RHEL 时,它也导致了 Fedora 项目的成立,该项目负责 Fedora Linux的开发。 + +与红帽不同,Fedora 是一个社区版本的 Linux 发行版,每个人都可以免费使用,包括错误修复和其他服务。 + +尽管红帽公司赞助了 Fedora 项目,但 Fedora Linux 主要由一个独立的开源社区维护。 + +#### 免费与付费 + +好吧,你会发现大多数的 Linux 发行版都可以免费下载。Fedora Linux 也是这样一个发行版,它的桌面版、服务器版、所有其他版本和 Spin 版都是免费 [可下载][2] 的。 + +还有一些 Linux 发行版,你必须付费购买。红帽企业 Linux 就是这样一个流行的基于 Linux 的操作系统,它是需要付费的。 + +除了价格为 99 美元的 RHEL [开发者版本][3],你必须支付超过 100 美元才能购买 [其他 RHEL 版本][4],用于服务器、虚拟数据中心和台式机。 + +然而,如果你碰巧是一个个人开发者,而不是一个组织或团队,你可以加入 [红帽开发者计划][5]。根据该计划,你可以在 12 个月内免费获得红帽企业 Linux 包括其他产品的使用权。 + +#### 上游还是下游 + +Fedora 是 RHEL 的上游,RHEL 是 Fedora 的下游。这意味着当 Fedora 的新版本发布时,红帽公司会利用 Fedora 的源代码,在其下一个版本中加入所需的功能。 + +当然,红帽公司也会在合并到自己的 RHEL 代码库之前测试这些拉来的代码。 + +换句话说,Fedora Linux 作为红帽公司的一个试验场,首先检查,然后将功能纳入 RHEL 系统中。 + +#### 发布周期 + +为了给操作系统的所有组件提供定期更新,RHEL 和 Fedora 都遵循一个标准的定点发布模式。 + +Fedora 大约每六个月发布一个新版本(主要在四月和十月),并提供长达 13 个月的维护支持。 + +红帽 Linux 每年发布一个特定系列的新的定点版本,大约 5 年后发布一个主要版本。红帽 Linux 的每个主要版本都要经过四个生命周期阶段,从 5 年的支持到使用附加的订阅的 10 年的延长寿命阶段。 + +#### 先锋 Linux 发行版 + +当涉及到创新和新技术时,Fedora 比 RHEL 更有先锋。即使 Fedora 不遵循 [滚动发布模式][6],它也是以早期提供先锋技术而闻名的发行版。 + +这是因为 Fedora 定期将软件包更新到最新版本,以便在每六个月后提供一个最新的操作系统。 + +如果你知道,[GNOME 40][7] 是 GNOME 桌面环境的最新版本,上个月才发布。而 Fedora 的最新稳定版 [版本 34][8] 确实包含了它,而 RHEL 的最新稳定版 8.3 仍然带有 GNOME 3.32。 + +#### 文件系统 + +在选择操作系统时,你是否把系统中数据的组织和检索放在了很重要的位置?如果是的话,在决定选择 Red Hat 和 Fedora 之前,你应该了解一下 XFS 和 BTRFS 文件系统。 + +那是在 2014 年,RHEL 7.0 用 XFS 取代 EXT4 作为其默认文件系统。从那时起,红帽在每个版本中都默认有一个 XFS 64 位日志文件系统。 + +虽然 Fedora 是红帽 Linux 的上游,但 Fedora 继续使用 EXT4,直到去年 [Fedora 33][9] 引入 [Btrfs 作为默认文件系统][10]。 + +有趣的是,红帽在最初发布的 RHEL 6 中包含了 Btrfs 作为“技术预览”。后来,红帽放弃了使用 Btrfs 的计划,因此在 RHEL 8 和 2019 年的后来的主要版本中完全 [删除][11] 了它。 + +#### 可用的变体 + +与 Fedora 相比,红帽 Linux 的版本数量非常有限。它主要适用于台式机、服务器、学术界、开发者、虚拟服务器和 IBM Power LE。 + +而 Fedora 除了桌面、服务器和物联网的官方版本外,还提供不可变的桌面 Silverblue 和专注于容器的 Fedora CoreOS。 + +不仅如此,Fedora 也有特定目的的定制变体,称为 [Fedora Labs][12]。每个 ISO 都为专业人士、神经科学、设计师、游戏玩家、音乐家、学生和科学家打包了一套软件。 + +想要 Fedora 中不同的桌面环境吗?你也可以查看官方的 [Fedora Spins][13],它预先配置了几种桌面环境,如 KDE、Xfce、LXQT、LXDE、Cinnamon 和 i3 平铺窗口管理器。 + +![Fedora Cinnamon Spin][14] + +此外,如果你想在新软件登陆稳定版 Fedora 之前就得到它,Fedora Rawhide 是另一个基于滚动发布模式的版本。 + +### Fedora 和红帽 Linux 的相似之处 + +除了不同之处,Fedora 和红帽 Linux 也有几个共同点。 + +#### 母公司 + +红帽公司是支持 Fedora 项目和 RHEL 的共同公司,在开发和财务方面都有支持。 + +即使红帽公司在财务上赞助 Fedora 项目,Fedora 也有自己的理事会,在没有红帽公司干预的情况下监督其发展。 + +#### 开源产品 + +在你认为红帽 Linux 要收钱,那么它怎么能成为一个开源产品之前,我建议阅读我们的 [文章][15],它分解了关于 FOSS 和开源的一切。 + +作为一个开源软件,并不意味着你可以免费得到它,有时它可能要花钱。红帽是一个已经在开源中建立了业务的开源公司。 + +Fedora 和红帽 Linux 都是开源的操作系统。所有的 Fedora 软件包都可以在 [这里][16] 得到源代码和在 [这里][2] 得到已经打包好的软件。 + +然而,就红帽 Linux 而言,源代码也是 [免费提供][17] 给任何人。但与 Fedora 不同的是,你需要为使用可运行的代码付费,要么你就可以自由地自行构建。 + +你支付给红帽的订阅费实际上是用于系统维护和技术支持。 +#### 桌面环境和初始系统 + +Fedora 和红帽 Linux 的旗舰桌面版采用了 GNOME 图形界面。所以,如果你已经熟悉了 GNOME,从任何一个发行版开始都不会有太大的问题。 + +![GNOME 桌面][18] + +你是少数讨厌 SystemD 初始化系统的人吗?如果是这样,那么 Fedora 和红帽 Linux 都不适合你,因为它们都默认支持并使用 SystemD。 + +总之,如果你想用 Runit 或 OpenRC 等其他初始化系统代替它,也不是不可能,但我认为这不是一个好主意。 + +#### 基于 RPM 的发行版 + +如果你已经精通使用 YUM、RPM 或 DNF 命令行工具来处理 RPM 软件包,赞一个!你可以在这两个基于 RPM 的发行版中选一个。 + +默认情况下,红帽 Linux 使用 RPM(Red Hat Package Manager)来安装、更新、删除和管理 RPM 软件包。 + +Fedora 在 2015 年的 Fedora 21 之前使用 YUM(Yellowdog Updater Modified)。从 Fedora 22 开始,它现在使用 DNF(Dandified Yum)代替 YUM 作为默认的 [软件包管理器][19]。 + +### Fedora 或红帽 Linux:你应该选择哪一个? + +坦率地说,这真的取决于你是谁以及你为什么要使用它。如果你是一个初学者、开发者,或者是一个想用它来提高生产力或学习 Linux 的普通用户,Fedora 可以是一个不错的选择。 + +它可以帮助你轻松地设置系统,进行实验,节省资金,还可以成为 Fedora 项目的一员。让我提醒你,Linux 的创造者 [Linus Torvalds][20] 在他的主要工作站上使用 Fedora Linux。 + +然而,这绝对不意味着你也应该使用 Fedora。如果你碰巧是一个企业,考虑到 Fedora 的支持生命周期在一年内就会结束,你可能会重新考虑选择它。 + +而且,如果你不喜欢每个新版本的快速变化,你可能不喜欢尖端的 Fedora 来满足你的服务器和业务需求。 + +使用企业版红帽,你可以得到高稳定性、安全性和红帽专家工程师为你的大型企业提供的支持品质。 + +那么,你是愿意每年升级你的服务器并获得免费的社区支持,还是购买订阅以获得超过 5 年的生命周期和专家技术支持?决定权在你。 + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/fedora-vs-red-hat/ + +作者:[Sarvottam Kumar][a] +选题:[lujun9972][b] +译者:[wxy](https://github.com/wxy) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/sarvottam/ +[b]: https://github.com/lujun9972 +[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/fedora-vs-red-hat.jpg?resize=800%2C450&ssl=1 +[2]: https://getfedora.org/ +[3]: https://www.redhat.com/en/store/red-hat-enterprise-linux-developer-suite +[4]: https://www.redhat.com/en/store/linux-platforms +[5]: https://developers.redhat.com/register/ +[6]: https://itsfoss.com/rolling-release/ +[7]: https://news.itsfoss.com/gnome-40-release/ +[8]: https://news.itsfoss.com/fedora-34-release/ +[9]: https://itsfoss.com/fedora-33/ +[10]: https://itsfoss.com/btrfs-default-fedora/ +[11]: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/file-systems-and-storage_considerations-in-adopting-rhel-8#btrfs-has-been-removed_file-systems-and-storage +[12]: https://labs.fedoraproject.org/ +[13]: https://spins.fedoraproject.org/ +[14]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/Fedora-Cinnamon-Spin.jpg?resize=800%2C450&ssl=1 +[15]: https://itsfoss.com/what-is-foss/ +[16]: https://src.fedoraproject.org/ +[17]: http://ftp.redhat.com/pub/redhat/linux/enterprise/ +[18]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/GNOME-desktop.jpg?resize=800%2C450&ssl=1 +[19]: https://itsfoss.com/package-manager/ +[20]: https://itsfoss.com/linus-torvalds-facts/ From 42be1b9564d1e11a8221df919087f269a5aaee7e Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 8 May 2021 05:03:39 +0800 Subject: [PATCH 126/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210508=20?= =?UTF-8?q?Best=20Open=20Source=20LMS=20for=20Creating=20Online=20Course?= =?UTF-8?q?=20and=20e-Learning=20Websites?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210508 Best Open Source LMS for Creating Online Course and e-Learning Websites.md --- ...g Online Course and e-Learning Websites.md | 232 ++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 sources/tech/20210508 Best Open Source LMS for Creating Online Course and e-Learning Websites.md diff --git a/sources/tech/20210508 Best Open Source LMS for Creating Online Course and e-Learning Websites.md b/sources/tech/20210508 Best Open Source LMS for Creating Online Course and e-Learning Websites.md new file mode 100644 index 0000000000..099429d814 --- /dev/null +++ b/sources/tech/20210508 Best Open Source LMS for Creating Online Course and e-Learning Websites.md @@ -0,0 +1,232 @@ +[#]: subject: (Best Open Source LMS for Creating Online Course and e-Learning Websites) +[#]: via: (https://itsfoss.com/best-open-source-lms/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Best Open Source LMS for Creating Online Course and e-Learning Websites +====== + +A Learning Management System (LMS) helps you automate and document the learning programs. It is suitable for both small-scale educational programs and university-level learning programs. + +Of course, even corporate training programs can be hosted using a learning management system. + +While it has a lot of use-cases, having a transparent platform for your Learning Management System should be a benefit for any organization. + +So, in this article, we will be listing some of the best open source LMS. + +### Top Open-Source Learning Management Systems + +To ensure that you have a transparent and secure platform that comes with community and/or professional support, open-source LMS solutions should be a perfect pick. + +You may self-host these software on your own [cloud servers][1] or physical servers. You can also opt for managed hosting from the developers of the LMS system themselves or their official partners. + +**Note**: The list is in no particular order of ranking. + +#### 1\. Moodle + +![][2] + +**Key Features:** + + * Simple user interface + * Plugin availability to extend options + * Collaboration and management options + * Administrative control options + * Regular security updates + + + +Moodle is a popular learning management platform. It features one of the most extensive set of options among any other learning management system out there. It may not offer the most modern and intuitive learning user experience, but it is a simple and feature-rich option as a learning platform. + +You get most of the essential options that include calendar, collaborative tools, file management, text editor, progress tracker, notifications, and several more. + +Unfortunately, there’s no managed hosting solution from the team itself. So, you will have to deploy it by yourself on your server or rely on certified partners to do the work. + +[Moodle][3] + +#### 2\. Forma LMS + +![][4] + +**Key Features:** + + * Tailored for corporate training + * Plugin support + * E-commerce integration + * Multi-company support + + + +Forma LMS is an open-source project tailored for corporate training. + +You can add courses, manage them, and also create webinar sessions to enhance your training process remotely. It lets you organize the courses in the form of catalogs while also being able to create multiple editions of courses for different classrooms. + +E-Commerce integration is available with it as well that will let you monetize your training courses in return for certifications. It also gives you the ability to utilize plugins to extend the functionality. + +The key feature of Forma LMS is that it allows you to manage multiple companies using a single installation. + +[Forma LMS][5] + +#### 3\. Open edX + +![][6] + +**Key Features:** + + * A robust platform for university-tailored programs + * Integration with exciting technology offerings for a premium learning experience + + + +If you happen to know a few learning platforms for courses and certifications, you probably know about edX. + +And, Open edX lets you utilize the same technology behind edX platform to offer instructor-led courses, degree programs, and self-paced learning courses. Of course, considering that it is already something successful as a platform used by many companies, you can utilize it for any scale of operation. + +You can opt for self-managed deployment or contact the partners for a managed hosting option to set up your LMS. + +[Open edX][7] + +#### 4\. ELMS Learning Network + +**Key Features:** + + * A suite of tools to choose from + * Distributed learning network + + + +Unlike others, ELMS Learning Network offers a set of tools that you can utilize to set up your learning platform as per your requirements. + +It is not an LMS by itself but through a collection of tools it offers in the network. This may not be a robust option for degree programs or equivalent. You will also find a demo available on their website if you’d like to explore more about it. + +You can also check out its [GitHub page][8] if you’re curious. + +[ELMS Network][9] + +#### 5\. Canvas LMS + +![][10] + +**Key Features:** + + * Fit for small-scale education programs and higher education + * API access + * Plenty of integration options + + + +Canvas LMS is also a quite popular open-source LMS. Similar to Open edX, Canvas LMS is also suitable for a range of applications, be it school education programs or university degrees. + +It offers integrations with several technologies while empowering you with an API that you can connect with Google Classrooms, Zoom, Microsoft Teams, and others. It is also an impressive option if you want to offer mobile learning through your platform. + +You can opt for a free trial to test it out or just deploy it on your server as required. To explore more about it, head to its [GitHub page][11]. + +[Canvas LMS][12] + +#### 6\. Sakai LMS + +![][13] + +**Key Features:** + + * Simple interface + * Essential features + + + +Sakai LMS may not be a popular option, but it offers most of the essential features that include course management, grade assessment, app integration, and collaboration tools. + +If you are looking for a simple and effective LMS that does not come with an overwhelming set of options, Sakai LMS can be a good option to choose. + +You can try it for free with a trial account if you want a cloud-based option. In either case, you can check out the [GitHub page][14] to self-host it. + +[Sakai LMS][15] + +#### 6\. Opigno LMS + +![][16] + +**Key Features:** + + * Tailored for corporate training + * Security features + * Authoring tools + * E-commerce integration + + + +Opigno LMS is a [Drupal-based open-source project][17] that caters to the needs of training programs for companies. + +In case you didn’t know, Drupal is an [open-source CMS][18] that you can use to create websites. And, with Opigno LMS, you can create training resources, quizzes, certificates. You can also sell certification courses using this learning platform. + +A simple interface and essential features, that’s what you get here. + +[Opigno LMS][19] + +#### 7\. Sensei LMS + +![][20] + +**Key Features:** + + * WordPress plugin + * Easy to use + * WooCommerce’s integration support + * Offers WooCommerce extensions + + + +Sensei LMA is an impressive open-source project which is a plugin available for WordPress. In fact, it is a project by the same company behind WordPress, i.e. **Automattic**. + +Considering that WordPress powers the majority of web – if you already have a website on WordPress, simply install Sensei as a plugin and incorporate a learning management system quickly, it is that easy! + +You can manage your courses, and also sell them online if you need. It also supports multiple WooCommerce extensions to give you more control on managing and monetizing the platform. + +[Sensei LMS][21] + +### Wrapping Up + +Most of the LMS should offer you the basic essentials of managing learning programs and courses along with the ability to sell them online. However, they differ based on their 3rd party integrations, ease of use, user interface, and plugins. + +So, make sure to go through all the available resources before you plan on setting up a learning management system for your educational institute or company training. + +Did I miss listing any other interesting open-source LMS? Let me know in the comments down below. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/best-open-source-lms/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://linuxhandbook.com/free-linux-cloud-servers/ +[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/moodle-dashboard.png?resize=800%2C627&ssl=1 +[3]: https://moodle.com +[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/forma-lms.png?resize=800%2C489&ssl=1 +[5]: https://www.formalms.org/ +[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/open-edx.png?resize=800%2C371&ssl=1 +[7]: https://open.edx.org/ +[8]: https://github.com/elmsln/elmsln +[9]: https://www.elmsln.org/ +[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/canvas-lms.png?resize=800%2C417&ssl=1 +[11]: https://github.com/instructure/canvas-lms +[12]: https://www.instructure.com/en-au/canvas +[13]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/04/sakai-lms.png?resize=800%2C388&ssl=1 +[14]: https://github.com/sakaiproject/sakai +[15]: https://www.sakailms.org +[16]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/opigno-screenshot.jpg?resize=800%2C714&ssl=1 +[17]: https://www.drupal.org/project/opigno_lms +[18]: https://itsfoss.com/open-source-cms/ +[19]: https://www.opigno.org/solution +[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/sensei-quiz.png?resize=800%2C620&ssl=1 +[21]: https://senseilms.com/ From 236ea501fa4a3b7e90ae0695c4b9b9eff83b048f Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sat, 8 May 2021 05:04:00 +0800 Subject: [PATCH 127/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210507=20?= =?UTF-8?q?6=20examples=20of=20open=20source=20best=20practices=20in=20kno?= =?UTF-8?q?wledge-sharing=20projects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md --- ...practices in knowledge-sharing projects.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md diff --git a/sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md b/sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md new file mode 100644 index 0000000000..e473e47bc4 --- /dev/null +++ b/sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md @@ -0,0 +1,112 @@ +[#]: subject: (6 examples of open source best practices in knowledge-sharing projects) +[#]: via: (https://opensource.com/article/21/5/open-source-knowledge-sharing) +[#]: author: (Deb Bryant https://opensource.com/users/debbryant) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +6 examples of open source best practices in knowledge-sharing projects +====== +Compare how six different knowledge-sharing communities approach +gathering, maintaining, and distributing their best practices. +![Practicing empathy][1] + +As someone who has watched my fair share of projects and initiatives come and go, I value the follow-on effects of good knowledge sharing. Even knowledge from bygone projects is available to learn from the past; such is the benefit and the curse of an internet that never forgets—all the practices good, no-longer-good, and never-were-good are out there to be found. + +As the head of Red Hat's [Open Source Program Office][2] (OSPO), I both appreciate and benefit from the myriad ways different communities create and share knowledge about open source. + +The very effort of creating open source software is a massive knowledge-sharing experience, covering all the domains of software development with many methods and practices. Although there is rarely only one way to achieve a goal, open source communities have, over time, honed their knowledge into best practices as a natural byproduct of the open collaboration and transparency passed on within their respective communities. + +But what about best practices that span communities, which are useful beyond the unique needs of a single project and broadly applicable to any and all open source software efforts? I'll look at six different knowledge-sharing communities that take six approaches to gathering, maintaining, and distributing their best practices. + +### TODO Group + +The TODO Group creates and maintains a set of [Open Source Guides][3] to support any organization developing an OSPO. An OSPO is a central program office working on a range of activities for the organization, defined by the organization's mission and open source interactions. It may be involved in license compliance, open source development practices, upstream community management, fostering internal community, facilitating relationships with foundations and standards bodies, and so forth. + +The best practices in these guides are to help organizations implement and run an effective OSPO. By collaborating within the TODO Group, the member OSPOs can raise their own knowledge while bringing up the collective knowledge of other OSPOs inside and outside of the TODO Group. Just as spreading good software development practices can help projects interoperate better, this raises the tide for all OSPOs for mutual benefit. + +The guides cover creating a new open source program. Featured topics include program management best practices such as using code, participating in existing communities, recruiting open source developers, and starting, running, and shutting down a project. + +These guides are examples of the benefits of knowledge sharing around a niche collaboration on tools and best practices. They provide guidance and assurance around a process-driven approach to open source software development as influenced by an open source program or projects office in all types of organizations. + +### OSI + +As part of expanding its education programs, the Open Source Initiative (OSI) has partnered with Brandeis University's Graduate Professional Studies and introduced a new [Open Source Technology Management][4] program. (Full disclosure: I'm a current OSI Board member.) This program's goal is to meet the growing demand for expertise from organizations seeking to professionalize their open source activities, from strategic planning to operational governance, and authentically collaborate and manage open source resources. + +In a series of four-week online microcourses, participants learn more about a range of topics, including how open source communities operate, how an organization might integrate with them, how communities develop software openly, and how businesses might embrace open source. + +The program is shaped by input from leading open source content experts and provides four learning options that align with each participant's lifestyle and learning style. A person can participate in a single microcourse or take several to earn a digital badge or certificate. These courses include content that students will find immediately useful in their work alongside material that supports graduate studies, should the student choose to complete an additional assessment for graduate-level credit. + +This is an example of a knowledge-sharing experience that combines several goals, from professional to academic pursuits. + +### IEEE SA OPEN + +The Institute of Electrical and Electronics Engineers goes back to 1884; in the intervening 137 years, IEEE has grown to be the world's largest technical professional society. Such societies are a pinnacle of knowledge-sharing communities, and IEEE's remit as a standards-developing organization overlaps with computer science and thus, open source software. + +The new [IEEE SA OPEN][5] program, launched in 2020, is a collaboration platform to "bridge the gap between standards developers and other open technical communities." One of its key tools is a 100% open source Git forge that is being expanded to embed knowledge directly and automatically into its processes. + +The documentation includes guidance from specific advisory groups, such as community, marketing, technical, academic, and diversity and inclusion. These advisory groups create a collaborative body of documentation and processes, which are then rolled out to be available for all projects on the SA OPEN platform. + +Not only does this documentation provide a list of needs for an open source project when starting, such as a governance framework, a code of conduct, and a contribution policy, the SA OPEN platform team plans to automate the creation and lifecycle of these documents for each project. This is done using an extensible open source platform that can be coded to embody "the IEEE way" of doing open source development. + +This knowledge-sharing method works by distilling the world of best practices and toolchains into a single set of solutions that can align with the long-horizon efforts of an organization like IEEE. + +### The Open Source Way + +Built around a collaborative-writing approach, the Open Source Way community considers itself to encompass all open source software projects, focusing on best practices for community architecture, design, and management. In this broad area, the community's real-world practitioners provide the core practices around what to do, how to do it, and especially why to do things the open source way. + +The Open Source Way community began in 2010 around the idea of a handbook written by practitioners, for practitioners. The core material was born at Red Hat from a need to record in one place the advice writers had been repeating to hundreds and thousands of people over the previous decade. It was released as an open source project, as it was self-evident that content about practicing the open source way needed to be written and published in an open source manner. For a few years, the handbook and wiki were locations where open source community management practitioners collaborated. + +The recently announced [2.0 guidebook][6] is a complete overhaul from the 1.0 guide of 2010, reflecting the evolution of open source software development over more than a decade. The guidebook works on the principle that "the path to creating a sustainable open source community starts by making something useful for the user base while lowering barriers to participation and contribution." It includes chapters on communication, diversity and inclusion, participant motivation, the nature and methods of a contribution, onboarding, governance, community roles, and community manager self-care. + +In addition to being a resource for community members of all types looking to improve their participation and contribution practices, the Open Source Way provides an overall community of practice that supports individual and organizational improvement. + +As a knowledge-sharing community, the Open Source Way project covers best practices within a broad range of how communities are created and thrive from the perspective of a much wider group of authors and contributors than other similar material and books. + +### Teaching Open Source + +The organizing principle of the [Teaching Open Source][7] (TOS) community is that for college-level educators to be most effective at teaching how to participate in open source communities, they should benefit from direct experience and connection to those communities. Via workshops and other programs, the TOS community brings instructors and professors into direct connection with open source software projects as part of the mission to "(bridge) the gap between traditional computing curricula and student work in open source communities." + +Once instructors are connected with projects, they facilitate students conducting classwork assignments as project contributions. For example, an upper-division programming class might have student assignments that include working on modules for a specific open source project. A lower-division writing class might have students research and write a friendly description for the release notes of a single feature for an upcoming release of open source software. + +The body of knowledge in the Teaching Open Source community has been organized around "teachers helping teachers." One popular workshop is the Professors' Open Source Software Experience (POSSE), a multiday hands-on workshop that teaches open source participation techniques to instructors. The TOS community creates the workshop materials and all the pedagogy around it out of its community of practice. + +This knowledge-sharing community exemplifies how a focused open source best-practices effort can provide a lot of value in a comparatively narrow niche. + +### The Open Organization + +Another example of a community blending open source best practices and knowledge sharing in a specified domain is the [Open Organization][8] project. This community works specifically at the intersection of open principles and organizational culture and design, "leading a global conversation about the ways open principles change how people work, manage, and lead." The Open Organization community is always asking: How can we adapt open principles and practices to all kinds of organizational contexts, so everyone can tap the benefits of living and working openly? + +In its own way, this community's origin story parallels that of the Linux kernel. The Open Organization community formed when former Red Hat CEO Jim Whitehurst published [_The Open Organization: Igniting Passion and Performance_][9], which concluded with a short invitation to continue the conversation about "how we can all lead and work better in the future." For several years since that founding moment, the community has focused its efforts on writing [several books and guides][10] that extend Jim's original writing, including a field guide, open leadership manual, workbook, and guides for distributed teamwork, IT culture change, and educators. The books feature chapters written by authors in different industries and geographic regions, bringing a diverse range of voices and experiences to this global conversation. + +As an open source knowledge-sharing community, the Open Organization project stands out for its focus on purposefully written and published books covering the breadth and depth of what it means to practice open principles in any kind of organization. + +### Conclusion + +These six knowledge-sharing projects demonstrate one of the wondrous things about open source software: bringing different approaches to similar but different problems. As these practice-oriented communities focus on the power of collaboration, they generate creative content out of the experiences and voices in their domain. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/open-source-knowledge-sharing + +作者:[Deb Bryant][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/debbryant +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/practicing-empathy.jpg?itok=-A7fj6NF (Practicing empathy) +[2]: https://www.redhat.com/en/about/open-source-program-office +[3]: https://todogroup.org/guides/ +[4]: https://opensource.org/ostm +[5]: https://saopen.ieee.org/ +[6]: https://lists.theopensourceway.org/archives/list/announce@theopensourceway.org/message/IDH3UEJW2MNJA5MGAKLXINWVTL2JGFJM/ +[7]: http://teachingopensource.org/ +[8]: https://theopenorganization.org/ +[9]: https://www.redhat.com/en/explore/the-open-organization-book +[10]: https://theopenorganization.org/books/ From b008494f70b9c3df9c1499407187077d81b3748a Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 8 May 2021 08:47:54 +0800 Subject: [PATCH 128/170] translating --- .../tech/20210505 Drop telnet for OpenSSL.md | 195 ------------------ .../tech/20210505 Drop telnet for OpenSSL.md | 194 +++++++++++++++++ 2 files changed, 194 insertions(+), 195 deletions(-) delete mode 100644 sources/tech/20210505 Drop telnet for OpenSSL.md create mode 100644 translated/tech/20210505 Drop telnet for OpenSSL.md diff --git a/sources/tech/20210505 Drop telnet for OpenSSL.md b/sources/tech/20210505 Drop telnet for OpenSSL.md deleted file mode 100644 index b412216178..0000000000 --- a/sources/tech/20210505 Drop telnet for OpenSSL.md +++ /dev/null @@ -1,195 +0,0 @@ -[#]: subject: (Drop telnet for OpenSSL) -[#]: via: (https://opensource.com/article/21/5/drop-telnet-openssl) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Drop telnet for OpenSSL -====== -Telnet's lack of encryption makes OpenSSL a safer option for connecting -to remote systems. -![Lock][1] - -The [telnet][2] command is one of the most popular network troubleshooting tools for anyone from systems administrators to networking hobbyists. In the early years of networked computing, telnet was used to connect to a remote system. You could use telnet to access a port on a remote system, log in, and run commands on that host. - -Due to telnet's lack of encryption, it has largely been replaced by OpenSSL for this job. Yet telnet's relevance persisted (and persists in some cases even today) as a sort of intelligent `ping`. While the `ping` command is a great way to probe a host for responsiveness, that's _all_ it can do. Telnet, on the other hand, not only confirms an active port, but it can also interact with a service on that port. Even so, because most modern network services are encrypted, telnet can be far less useful depending on what you're trying to achieve. - -### OpenSSL s_client - -For most tasks that once required telnet, I now use OpenSSL's `s_client` command. (I use [curl][3] for some tasks, but those are cases where I probably wouldn't have used telnet anyway.) Most people know [OpenSSL][4] as a library and framework for encryption, but not everyone realizes it's also a command. The `s_client` component of the `openssl` command implements a generic SSL or TLS client, helping you connect to a remote host using SSL or TLS. It's intended for testing and, internally at least, uses the same functionality as the library. - -### Install OpenSSL - -OpenSSL may already be installed on your Linux system. If not, you can install it with your distribution's package manager: - - -``` -`$ sudo dnf install openssl` -``` - -On Debian or similar: - - -``` -`$ sudo apt install openssl` -``` - -Once it's installed, verify that it responds as expected: - - -``` -$ openssl version -OpenSSL x.y.z FIPS -``` - -### Verify port access - -The most basic telnet usage is a task that looks something like this: - - -``` -$ telnet mail.example.com 25 -Trying 98.76.54.32... -Connected to example.com. -Escape character is '^]'. -``` - -This opens an interactive session with (in this example) whatever service is listening on port 25 (probably a mail server). As long as you gain access, you can communicate with the service. - -Should port 25 be inaccessible, the connection is refused. - -OpenSSL is similar, although usually less interactive. To verify access to a port: - - -``` -$ openssl s_client -connect example.com:80 -CONNECTED(00000003) -140306897352512:error:1408F10B:SSL [...] - -no peer certificate available - -No client certificate CA names sent - -SSL handshake has read 5 bytes and written 309 bytes -Verification: OK - -New, (NONE), Cipher is (NONE) -Secure Renegotiation IS NOT supported -Compression: NONE -Expansion: NONE -No ALPN negotiated -Early data was not sent -Verify return code: 0 (ok) -``` - -This is little more than a targeted ping, though. As you can see from the output, no SSL certificate was exchanged, so the connection immediately terminated. To get the most out of `openssl s_client`, you must target the encrypted port. - -### Interactive OpenSSL - -Web browsers and web servers interact such that traffic directed at port 80 is actually forwarded to 443, the port reserved for encrypted HTTP traffic. Knowing this, you can navigate to encrypted ports with the `openssl` command and interact with whatever web service is running on it. - -First, make a connection to a port using SSL. Using the `-showcerts` option causes the SSL certificate to print to your terminal, making the initial output a lot more verbose than telnet: - - -``` -$ openssl s_client -connect example.com:443 -showcerts -[...] -    0080 - 52 cd bd 95 3d 8a 1e 2d-3f 84 a0 e3 7a c0 8d 87   R...=..-?...z... -    0090 - 62 d0 ae d5 95 8d 82 11-01 bc 97 97 cd 8a 30 c1   b.............0. -    00a0 - 54 78 5c ad 62 5b 77 b9-a6 35 97 67 65 f5 9b 22   Tx\\.b[w..5.ge.." -    00b0 - 18 8a 6a 94 a4 d9 7e 2f-f5 33 e8 8a b7 82 bd 94   ..j...~/.3...... - -    Start Time: 1619661100 -    Timeout   : 7200 (sec) -    Verify return code: 0 (ok) -    Extended master secret: no -    Max Early Data: 0 -- -read R BLOCK -``` - -You're left in an interactive session. Eventually, this session will close, but if you act promptly, you can send HTTP signals to the server: - - -``` -[...] -GET / HTTP/1.1 -HOST: example.com -``` - -Press **Return** twice, and you receive the data for `example.com/index.html`: - - -``` -[...] -<body> -<div> -    <h1>Example Domain</h1> -    <p>This domain is for use in illustrative examples in documents. You may use this -    domain in literature without prior coordination or asking for permission.</p> -    <p><a href="[https://www.iana.org/domains/example"\>More][5] information...</a></p> -</div> -</body> -</html> -``` - -#### Email server - -You can also use OpenSSL's `s_client` to test an encrypted email server. For this to work, you must have your test user's username and password encoded in Base64. -Here's an easy way to do this: - - -``` -$ perl -MMIME::Base64 -e 'print encode_base64("username");' -$ perl -MMIME::Base64 -e 'print encode_base64("password");' -``` - -Once you have those values recorded, you can connect to a mail server over SSL, usually on port 587: - - -``` -$ openssl s_client -starttls smtp \ --connect email.example.com:587 -> ehlo example.com -> auth login -##paste your user base64 string here## -##paste your password base64 string here## - -> mail from: [noreply@example.com][6] -> rcpt to: [admin@example.com][7] -> data -> Subject: Test 001 -This is a test email. -. -> quit -``` - -Check your email (in this sample code, it's `admin@example.com`) for a test message from `noreply@example.com`. - -### OpenSSL or telnet? - -There are still uses for telnet, but it's not the indispensable tool it once was. The command has been relegated to "legacy" networking packages on many distributions, but without a `telnet-ng` or some obvious successor, admins are sometimes puzzled about why it's excluded from default installs. The answer is that it's not essential anymore, it's getting less and less useful—and that's _good_. Network security is important, so get comfortable with tools that interact with encrypted interfaces, so you don't have to disable your safeguards during troubleshooting. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/drop-telnet-openssl - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/security-lock-password.jpg?itok=KJMdkKum (Lock) -[2]: https://www.redhat.com/sysadmin/telnet-netcat-troubleshooting -[3]: https://opensource.com/downloads/curl-command-cheat-sheet -[4]: https://www.openssl.org/ -[5]: https://www.iana.org/domains/example"\>More -[6]: mailto:noreply@example.com -[7]: mailto:admin@example.com diff --git a/translated/tech/20210505 Drop telnet for OpenSSL.md b/translated/tech/20210505 Drop telnet for OpenSSL.md new file mode 100644 index 0000000000..423cf5c832 --- /dev/null +++ b/translated/tech/20210505 Drop telnet for OpenSSL.md @@ -0,0 +1,194 @@ +[#]: subject: (Drop telnet for OpenSSL) +[#]: via: (https://opensource.com/article/21/5/drop-telnet-openssl) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +为 OpenSSL 放弃 telnet +====== +Telnet 缺乏加密,这使得 OpenSSL 成为连接远程系统的更安全的选择。 +![Lock][1] + +[telnet][2] 命令是最受欢迎的网络故障排除工具之一,从系统管理员到网络爱好者都可以使用。在网络计算的早期,telnet 被用来连接到一个远程系统。你可以用 telnet 访问一个远程系统的端口,登录并在该主机上运行命令。 + +由于 telnet 缺乏加密功能,它在很大程度上已经被 OpenSSL 取代了这项工作。然而,作为一种智能的 `ping`,telnet 的相关仍然存在(甚至在某些情况下至今仍然存在)。虽然 `ping` 命令是一个探测主机响应的好方法,但这是它能做的_全部_。另一方面,telnet 不仅可以确认一个活动端口,而且还可以与该端口的服务进行交互。即便如此,由于大多数现代网络服务都是加密的,telnet 的作用可能要小得多,这取决于你想实现什么。 + +### OpenSSL s_client + +对于大多数曾经需要 telnet 的任务,我现在使用 OpenSSL 的 `s_client` 命令。(我在一些任务中使用 [curl][3],但那些情况下我可能无论如何也不会使用 telnet)。大多数人都知道 [OpenSSL][4] 是一个加密的库和框架,但不是所有人都意识到它也是一个命令。`openssl` 命令的 `s_client`组件实现了一个通用的 SSL 或 TLS 客户端,帮助你使用 SSL 或 TLS 连接到远程主机。它是用来测试的,至少在内部使用与库相同的功能。 + +### 安装 OpenSSL + +OpenSSL 可能已经安装在你的 Linux 系统上了。如果没有,你可以用你的发行版的软件包管理器安装它: + + +``` +`$ sudo dnf install openssl` +``` + +在 Debian 或类似的系统上: + + +``` +`$ sudo apt install openssl` +``` + +安装后,验证它的响应是否符合预期: + + +``` +$ openssl version +OpenSSL x.y.z FIPS +``` + +### 验证端口访问 + +最基本的 telnet 用法是一个看起来像这样的任务: + + +``` +$ telnet mail.example.com 25 +Trying 98.76.54.32... +Connected to example.com. +Escape character is '^]'. +``` + +这将与正在端口 25(可能是邮件服务器)监听的任意服务开一个交互式会话(在此示例中)。 只要你获得访问权限,就可以与该服务进行通信。 + +如果端口 25 无法访问,连接就会被拒绝。 + +OpenSSL 也是类似的,尽管通常较少互动。要验证对一个端口的访问: + +``` +$ openssl s_client -connect example.com:80 +CONNECTED(00000003) +140306897352512:error:1408F10B:SSL [...] + +no peer certificate available + +No client certificate CA names sent + +SSL handshake has read 5 bytes and written 309 bytes +Verification: OK + +New, (NONE), Cipher is (NONE) +Secure Renegotiation IS NOT supported +Compression: NONE +Expansion: NONE +No ALPN negotiated +Early data was not sent +Verify return code: 0 (ok) +``` + +但是,这仅是目标性 ping。从输出中可以看出,没有交换 SSL 证书,所以连接立即终止。为了充分利用 `openssl s_client`,你必须针对加密的端口。 + +### 交互式 OpenSSL + +Web 浏览器和 Web 服务器进行交互,使指向 80 端口的流量实际上被转发到 443,这是保留给加密 HTTP 流量的端口。知道了这一点,你就可以用 `openssl` 命令连接到加密的端口,并与在其上运行的任何网络服务进行交互。 + +首先,使用 SSL 连接到一个端口。使用 `-showcerts` 选项会使 SSL 证书打印到你的终端上,使最初的输出比 telnet 要冗长得多: + + +``` +$ openssl s_client -connect example.com:443 -showcerts +[...] +    0080 - 52 cd bd 95 3d 8a 1e 2d-3f 84 a0 e3 7a c0 8d 87   R...=..-?...z... +    0090 - 62 d0 ae d5 95 8d 82 11-01 bc 97 97 cd 8a 30 c1   b.............0. +    00a0 - 54 78 5c ad 62 5b 77 b9-a6 35 97 67 65 f5 9b 22   Tx\\.b[w..5.ge.." +    00b0 - 18 8a 6a 94 a4 d9 7e 2f-f5 33 e8 8a b7 82 bd 94   ..j...~/.3...... + +    Start Time: 1619661100 +    Timeout   : 7200 (sec) +    Verify return code: 0 (ok) +    Extended master secret: no +    Max Early Data: 0 +- +read R BLOCK +``` + +你被留在一个交互式会话中。最终,这个会话将关闭,但如果你及时行动,你可以向服务器发送 HTTP 信号: + + +``` +[...] +GET / HTTP/1.1 +HOST: example.com +``` + +按**回车键**两次,你会收到 `example.com/index.html` 的数据: + + +``` +[...] +<body> +<div> +    <h1>Example Domain</h1> +    <p>This domain is for use in illustrative examples in documents. You may use this +    domain in literature without prior coordination or asking for permission.</p> +    <p><a href="[https://www.iana.org/domains/example"\>More][5] information...</a></p> +</div> +</body> +</html> +``` + +#### Email 服务器 + +你也可以使用 OpenSSL 的 `s_client` 来测试一个加密的 email 服务器。要做到这点,你必须把你的测试用户的用户名和密码用 Base64 编码。 + +这里有一个简单的方法来做到: + + +``` +$ perl -MMIME::Base64 -e 'print encode_base64("username");' +$ perl -MMIME::Base64 -e 'print encode_base64("password");' +``` + +当你记录了这些值,你就可以通过 SSL 连接到邮件服务器,它通常在 587 端口: + + +``` +$ openssl s_client -starttls smtp \ +-connect email.example.com:587 +> ehlo example.com +> auth login +##paste your user base64 string here## +##paste your password base64 string here## + +> mail from: [noreply@example.com][6] +> rcpt to: [admin@example.com][7] +> data +> Subject: Test 001 +This is a test email. +. +> quit +``` + +检查你的邮件(在这个示例代码中,是 `admin@example.com`),查看来自 `noreply@example.com` 的测试邮件。 + +### OpenSSL 还是 telnet? + +telnet 仍然有用途,但它已经不是以前那种不可缺少的工具了。该命令在许多发行版上被归入 ”legacy“ 网络包,但还没有 `telnet-ng`或一些明显的继任者,管理员有时会对它被排除在默认安装之外感到疑惑。答案是,它不再是必不可少的,它的作用越来越小,这是_很好_的。网络安全很重要,所以要适应与加密接口互动的工具,这样你就不必在排除故障时禁用你的保护措施。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/drop-telnet-openssl + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/security-lock-password.jpg?itok=KJMdkKum (Lock) +[2]: https://www.redhat.com/sysadmin/telnet-netcat-troubleshooting +[3]: https://opensource.com/downloads/curl-command-cheat-sheet +[4]: https://www.openssl.org/ +[5]: https://www.iana.org/domains/example"\>More +[6]: mailto:noreply@example.com +[7]: mailto:admin@example.com From 83e313c08891bacebddf68c41e1e5dd2a69a7620 Mon Sep 17 00:00:00 2001 From: geekpi Date: Sat, 8 May 2021 08:52:24 +0800 Subject: [PATCH 129/170] translating --- ...earn essential Kubernetes commands with a new cheat sheet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md b/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md index c04e290e3e..f4718097f5 100644 --- a/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md +++ b/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/kubernetes-cheat-sheet) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From ed5b98d71456a872cf173a8750fdfd62d22481a7 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sat, 8 May 2021 10:28:57 +0800 Subject: [PATCH 130/170] Rename sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md to sources/talk/20210507 6 examples of open source best practices in knowledge-sharing projects.md --- ...of open source best practices in knowledge-sharing projects.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210507 6 examples of open source best practices in knowledge-sharing projects.md (100%) diff --git a/sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md b/sources/talk/20210507 6 examples of open source best practices in knowledge-sharing projects.md similarity index 100% rename from sources/tech/20210507 6 examples of open source best practices in knowledge-sharing projects.md rename to sources/talk/20210507 6 examples of open source best practices in knowledge-sharing projects.md From b45d2b0a69bef3668210c2634e90812d58de4b58 Mon Sep 17 00:00:00 2001 From: "Qian.Sun" Date: Sat, 8 May 2021 10:45:26 +0800 Subject: [PATCH 131/170] translating "Configure WireGuard VPNs with NetworkManager" is translating by DCOLIVERSUN --- .../20210503 Configure WireGuard VPNs with NetworkManager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md b/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md index a5cadaf43c..aaa6fb1da0 100644 --- a/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md +++ b/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md @@ -2,7 +2,7 @@ [#]: via: (https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/) [#]: author: (Maurizio Garcia https://fedoramagazine.org/author/malgnuz/) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (DCOLIVERSUN) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 5e6fd74bfcbfa5840986ba3e73c9839979e300a0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 8 May 2021 10:45:40 +0800 Subject: [PATCH 132/170] PRF @wxy --- ...ich Linux Distro Should You Use and Why.md | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md index e38b1ca615..b760ed1339 100644 --- a/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md +++ b/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md @@ -3,7 +3,7 @@ [#]: author: (Sarvottam Kumar https://itsfoss.com/author/sarvottam/) [#]: collector: (lujun9972) [#]: translator: (wxy) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) @@ -24,15 +24,15 @@ Fedora 和红帽 Linux。这两个 Linux 发行版都属于同一个组织,都 #### 社区版与企业版 -早在 1995 年,红帽 Linux 就有了它的第一个非 beta 版本,它是作为盒装产品出售的。它也被称为红帽商业 LinuxRed Hat Commercial Linux。 +早在 1995 年,红帽 Linux 就有了它的第一个正式版本,它是作为盒装产品出售的。它也被称为红帽商业 LinuxRed Hat Commercial Linux。 -后来在 2003 年,红帽把红帽 Linux 变成了完全以企业客户为中心的红帽企业 LinuxRed Hat Enterprise Linux(RHEL)。从那时起,红帽就是一个企业版的 Linux 发行版。 +后来在 2003 年,红帽把红帽 Linux 变成了完全以企业客户为中心的红帽企业 LinuxRed Hat Enterprise Linux(RHEL)。从那时起,红帽 Linux 就是一个企业版的 Linux 发行版。 它的意思是,你必须订阅并付费才能使用红帽 Linux,因为它不是作为一个免费的操作系统。甚至所有的软件、错误修复和安全支持都只对那些拥有红帽订阅的人开放。 当红帽 Linux 变成 RHEL 时,它也导致了 Fedora 项目的成立,该项目负责 Fedora Linux的开发。 -与红帽不同,Fedora 是一个社区版本的 Linux 发行版,每个人都可以免费使用,包括错误修复和其他服务。 +与红帽不同,Fedora 是一个社区版的 Linux 发行版,每个人都可以免费使用,包括错误修复和其他服务。 尽管红帽公司赞助了 Fedora 项目,但 Fedora Linux 主要由一个独立的开源社区维护。 @@ -52,7 +52,7 @@ Fedora 是 RHEL 的上游,RHEL 是 Fedora 的下游。这意味着当 Fedora 当然,红帽公司也会在合并到自己的 RHEL 代码库之前测试这些拉来的代码。 -换句话说,Fedora Linux 作为红帽公司的一个试验场,首先检查,然后将功能纳入 RHEL 系统中。 +换句话说,Fedora Linux 作为红帽公司的一个试验场,首先检查功能,然后将其纳入 RHEL 系统中。 #### 发布周期 @@ -60,11 +60,11 @@ Fedora 是 RHEL 的上游,RHEL 是 Fedora 的下游。这意味着当 Fedora Fedora 大约每六个月发布一个新版本(主要在四月和十月),并提供长达 13 个月的维护支持。 -红帽 Linux 每年发布一个特定系列的新的定点版本,大约 5 年后发布一个主要版本。红帽 Linux 的每个主要版本都要经过四个生命周期阶段,从 5 年的支持到使用附加的订阅的 10 年的延长寿命阶段。 +红帽 Linux 每年发布一个特定系列的新的定点版本,大约 5 年后发布一个主要版本。红帽 Linux 的每个主要版本都要经过四个生命周期阶段,从 5 年的支持到使用附加订阅的 10 年的延长寿命阶段。 -#### 先锋 Linux 发行版 +#### 尝鲜 Linux 发行版 -当涉及到创新和新技术时,Fedora 比 RHEL 更有先锋。即使 Fedora 不遵循 [滚动发布模式][6],它也是以早期提供先锋技术而闻名的发行版。 +当涉及到创新和新技术时,Fedora 比 RHEL 更积极。即使 Fedora 不遵循 [滚动发布模式][6],它也是以早期提供尝鲜技术而闻名的发行版。 这是因为 Fedora 定期将软件包更新到最新版本,以便在每六个月后提供一个最新的操作系统。 @@ -72,13 +72,13 @@ Fedora 大约每六个月发布一个新版本(主要在四月和十月), #### 文件系统 -在选择操作系统时,你是否把系统中数据的组织和检索放在了很重要的位置?如果是的话,在决定选择 Red Hat 和 Fedora 之前,你应该了解一下 XFS 和 BTRFS 文件系统。 +在选择操作系统时,你是否把系统中数据的组织和检索放在了很重要的位置?如果是的话,在决定选择 Red Hat 和 Fedora 之前,你应该了解一下 XFS 和 Btrfs 文件系统。 -那是在 2014 年,RHEL 7.0 用 XFS 取代 EXT4 作为其默认文件系统。从那时起,红帽在每个版本中都默认有一个 XFS 64 位日志文件系统。 +那是在 2014 年,RHEL 7.0 用 XFS 取代 Ext4 作为其默认文件系统。从那时起,红帽在每个版本中都默认有一个 XFS 64 位日志文件系统。 -虽然 Fedora 是红帽 Linux 的上游,但 Fedora 继续使用 EXT4,直到去年 [Fedora 33][9] 引入 [Btrfs 作为默认文件系统][10]。 +虽然 Fedora 是红帽 Linux 的上游,但 Fedora 继续使用 Ext4,直到去年 [Fedora 33][9] 引入 [Btrfs 作为默认文件系统][10]。 -有趣的是,红帽在最初发布的 RHEL 6 中包含了 Btrfs 作为“技术预览”。后来,红帽放弃了使用 Btrfs 的计划,因此在 RHEL 8 和 2019 年的后来的主要版本中完全 [删除][11] 了它。 +有趣的是,红帽在最初发布的 RHEL 6 中包含了 Btrfs 作为“技术预览”。后来,红帽放弃了使用 Btrfs 的计划,因此在 2019 年从 RHEL 8 和后来发布的主要版本中完全 [删除][11] 了它。 #### 可用的变体 @@ -106,15 +106,16 @@ Fedora 大约每六个月发布一个新版本(主要在四月和十月), #### 开源产品 -在你认为红帽 Linux 要收钱,那么它怎么能成为一个开源产品之前,我建议阅读我们的 [文章][15],它分解了关于 FOSS 和开源的一切。 +在你认为红帽 Linux 要收钱,那么它怎么能成为一个开源产品之前,我建议阅读我们的 [文章][15],它分析了关于 FOSS 和开源的一切。 -作为一个开源软件,并不意味着你可以免费得到它,有时它可能要花钱。红帽是一个已经在开源中建立了业务的开源公司。 +作为一个开源软件,并不意味着你可以免费得到它,有时它可能要花钱。红帽公司是一个已经在开源中建立了业务的开源公司。 Fedora 和红帽 Linux 都是开源的操作系统。所有的 Fedora 软件包都可以在 [这里][16] 得到源代码和在 [这里][2] 得到已经打包好的软件。 -然而,就红帽 Linux 而言,源代码也是 [免费提供][17] 给任何人。但与 Fedora 不同的是,你需要为使用可运行的代码付费,要么你就可以自由地自行构建。 +然而,就红帽 Linux 而言,源代码也 [免费提供][17] 给任何人。但与 Fedora 不同的是,你需要为使用可运行的代码付费,要么你可以自由地自行构建。 你支付给红帽的订阅费实际上是用于系统维护和技术支持。 + #### 桌面环境和初始系统 Fedora 和红帽 Linux 的旗舰桌面版采用了 GNOME 图形界面。所以,如果你已经熟悉了 GNOME,从任何一个发行版开始都不会有太大的问题。 @@ -129,9 +130,9 @@ Fedora 和红帽 Linux 的旗舰桌面版采用了 GNOME 图形界面。所以 如果你已经精通使用 YUM、RPM 或 DNF 命令行工具来处理 RPM 软件包,赞一个!你可以在这两个基于 RPM 的发行版中选一个。 -默认情况下,红帽 Linux 使用 RPM(Red Hat Package Manager)来安装、更新、删除和管理 RPM 软件包。 +默认情况下,红帽 Linux 使用 RPM(红帽包管理器Red Hat Package Manager)来安装、更新、删除和管理 RPM 软件包。 -Fedora 在 2015 年的 Fedora 21 之前使用 YUM(Yellowdog Updater Modified)。从 Fedora 22 开始,它现在使用 DNF(Dandified Yum)代替 YUM 作为默认的 [软件包管理器][19]。 +Fedora 在 2015 年的 Fedora 21 之前使用 YUM(黄狗更新器修改版Yellowdog Updater Modified)。从 Fedora 22 开始,它现在使用 DNF(时髦版 YumDandified Yum)代替 YUM 作为默认的 [软件包管理器][19]。 ### Fedora 或红帽 Linux:你应该选择哪一个? @@ -141,7 +142,7 @@ Fedora 在 2015 年的 Fedora 21 之前使用 YUM(Yellowdog Updater Modified 然而,这绝对不意味着你也应该使用 Fedora。如果你碰巧是一个企业,考虑到 Fedora 的支持生命周期在一年内就会结束,你可能会重新考虑选择它。 -而且,如果你不喜欢每个新版本的快速变化,你可能不喜欢尖端的 Fedora 来满足你的服务器和业务需求。 +而且,如果你不喜欢每个新版本的快速变化,你可能不喜欢尝鲜的 Fedora 来满足你的服务器和业务需求。 使用企业版红帽,你可以得到高稳定性、安全性和红帽专家工程师为你的大型企业提供的支持品质。 @@ -154,7 +155,7 @@ via: https://itsfoss.com/fedora-vs-red-hat/ 作者:[Sarvottam Kumar][a] 选题:[lujun9972][b] 译者:[wxy](https://github.com/wxy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 383afed8d3aafc45f315940e584f49193d057a0e Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 8 May 2021 10:46:14 +0800 Subject: [PATCH 133/170] PUB @wxy https://linux.cn/article-13372-1.html --- ...a Vs Red Hat- Which Linux Distro Should You Use and Why.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md (99%) diff --git a/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md b/published/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md similarity index 99% rename from translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md rename to published/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md index b760ed1339..c721782052 100644 --- a/translated/tech/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md +++ b/published/20210502 Fedora Vs Red Hat- Which Linux Distro Should You Use and Why.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (wxy) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13372-1.html) Fedora 和红帽 Linux:你应该使用哪个,为什么? ====== From e6e7db15dd778df6025d0bfc86e7640395c3bf33 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Sat, 8 May 2021 22:37:51 +0800 Subject: [PATCH 134/170] Update 20210422 Running Linux Apps In Windows Is Now A Reality.md --- ... Linux Apps In Windows Is Now A Reality.md | 84 +++++++++---------- 1 file changed, 41 insertions(+), 43 deletions(-) diff --git a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md index 89c73f91f8..ddf532da89 100644 --- a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md +++ b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md @@ -6,87 +6,85 @@ [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) +在Windows中运行基于Linux的应用程序已经成为现实 -Running Linux Apps In Windows Is Now A Reality ====== -When Microsoft released [Windows Subsystem for Linux][1] (WSL) in 2016, the hype was unreal. People were dreaming of running their Windows and Linux apps side-by-side, without having to reboot. But alas, WSL could only run terminal applications. +当微软在2016年发布“Windows subsystem for Linux”也就是WSL的时候显然有夸大宣传的嫌疑,当时人们梦想着无需重启就可以同时运行基于Windows和Linux的应用程序,令人可惜的是,WSL只能运行Linux终端程序。 -Last year, Microsoft set out again to try to revolutionize the Windows app ecosystem. This time, they replaced the old emulated kernel with a real Linux kernel. This change allowed you to run [Linux apps in Windows][2]. +去年,微软再次尝试去颠覆Windows的应用生态,这一次,他们替换了老旧的虚拟核心,转而使用了真正的Linux核心,这使得用户可以同时运行Linux和Windows程序。 [Linux apps in Windows][2]. -### Initial Preview of GUI Apps for WSL +### 有关WSL用户界面的最初展示 ![][3] -Technically, you did get the initial support for Linux GUI apps on WSL, but only when using a 3rd-party X server. These were often buggy, slow, hard to set up, and posed a privacy concern. +从技术上讲,用户确实获得了WSL上对Linux GUI应用程序的支持,但仅限于使用第三方X窗口系统时。这通常是不稳定的,缓慢的,难以设置的,并且使人们有隐私方面的顾虑。 -The result of this was a small group of Linux enthusiasts (that happened to run Windows) that had the skills and knowledge to set up an X server. These people were then horribly disappointed at the fact there was no hardware acceleration at all. +结果是小部分Linux爱好者(碰巧运行Windows),他们具有设置X窗口系统的能力。但是,这些爱好者对硬件加速的缺失感到失望。 -So, it was wise to stick to command line utilities on WSL. +所以,较为明智的方法是在WSL上只运行基于命令行的程序。 -**But this all changes now.** Now that Microsoft is [officially supporting][4] GUI Linux apps, we will be receiving hardware acceleration, alongside a huge range of other improvements in WSL. +**但是现在这个问题得到了改善** [现在,微软官方宣布了对图形化的Linux应用程序的支持,][4] 我们很快就能够享受硬件加速了, +### 面向大众的Linux GUI应用程序:WSLg -### Linux GUI Apps For The Masses: WSLg +![图片来源:Microsoft Devblogs][5] -![Image Credit: Microsoft Devblogs][5] +随着微软发布新的WSL,有了一系列巨大的改进,它们包括: -With the new official support from Microsoft in WSL, there is a huge range of available improvements. These include: - - * GPU hardware acceleration - * Audio and microphone support out of the box - * Automatic starting of the X and PulseAudio servers + * GPU硬件加速 + * 开箱即用的音频和麦克风支持 + * 自动启用X图形界面和 Pulse Audio服务 +有趣的是,开发者们给这个功能起了一个有趣的外号“WSLg” -And, they’ve given this feature a nickname “**WSLg**“. +这些功能将使在WSL上运行Linux应用程序几乎与运行原生应用程序一样容易,同时无需占用过多性能资源。 -These features will make running Linux apps on WSL almost as easy as running native apps, with a minimal performance impact. +因此,您可以尝试运行 [自己喜欢的IDE][6], 特定于Linux的测试用例以及诸如CAD之类的各种软件 [CAD][7]. -So, you can try running your [favorite IDE][6], Linux-specific testing use-cases, and a variety of other applications like [CAD software][7]. +#### 在Linux应用下的GPU硬件加速。 -#### GPU Hardware Acceleration In Linux Apps +![图片鸣谢:Microsoft Devblogs][8] -![Image Credit: Microsoft Devblogs][8] +以前在Windows上运行GUI Linux程序的最大问题之一是它们无法使用硬件加速。当用户尝试移动窗口并执行需要对GPU性能有要求的任务时候它常常陷入缓慢卡顿的局面。 -One of the biggest issues with running GUI Linux apps on Windows previously was that they couldn’t use hardware acceleration. This left us with a slow mess when trying to move windows around and doing anything that needed some GPU horsepower. +根据微软发布的宣发: -According to the announcement post from Microsoft: +> “作为此次更新的一部分,我们也启用了对3D图形的GPU加速支持,多亏了Mesa 21.0,所有的复杂3D渲染的应用程序都可以利用OpenGL在Windows 10上使用GPU为这些应用程序提供硬件加速。” +> +这是一个相当实用的改进,这对用户在WSL下运行需求强大GPU性能的应用程序提供了莫大帮助。 -> As part of this feature, we have also enabled support for GPU accelerated 3D graphics! Thanks to work that was completed in Mesa 21.0, any applications that are doing complex 3D rendering can leverage OpenGL to accelerate these using the GPU on your Windows 10 machine. +#### 开箱即用的音频和麦克风支持! -This is a useful addition, and should help anyone wanting to run GPU intensive applications through WSL. +如果想要良好的并行Windows和Linux程序,好的麦克风支持是必不可少的,随着新的WSL发布,音频支持时开箱即用的,这都要归功于随着X图形界面一同启用的pulse Audio服务。 -#### Audio And Microphone Support Out Of The Box! +如果想要良好的并行Windows和Linux程序,好的麦克风支持是必不可少的,随着新的WSL发布,音频支持时开箱即用的,这都要归功于随着X图形界面一同启用的pulse Audio服务。 -One of the key elements to a good experience with Linux apps running alongside Windows apps is the audio. With the new WSL update, audio is supported out of the box. This is achieved with a PulseAudio server being started at the same time as the X server. +> “WSL上的Linux GUI应用程序还将包括开箱即用的音频和麦克风支持。这一令人兴奋的改进将使您的应用程序可以播放音频提示并调用麦克风,适合构建,测试或使用电影播放器,应用程序等。” -Microsoft explains: +如果我们希望Linux变得更加普及,这是一项关键功能。这也将允许Windows应用的开发人员更好地将其应用移植到Linux。 -> Linux GUI applications on WSL will also include out-of-the-box audio and microphone support. This exciting aspect will let your apps play audio cues and utilize the microphone, perfect for building, testing, or using movie players, telecommunication apps, and more. +####自动启动所有必需的服务 -If we want Linux apps to become more widespread, this is a key feature. This will also allow developers of Windows apps to better support porting their apps to Linux. +![图片鸣谢:Microsoft Devblogs][9] -#### Automatic Starting Of All The Required Servers +以前,您必须先手动启动 [PulseAudio][10] 和 [X 图形界面][11] 然后才能运行应用程序。现在,Microsoft已实添加一项功能,该功能可以检查Linux应用程序是否正在运行,然后自动启动所需的服务。 -![Image Credit: Microsoft Devblogs][9] +这允许用户更容易在Windows上运行Linux应用程序 -Previously, you had to start the [PulseAudio][10] and [X servers][11] manually before being able to actually run anything. Now, Microsoft has implemented a service that checks to see if a Linux app is running, and then starts the required servers automatically. +微软声称这些改动会显著提升用户体验. -This allows much easier launching and using of Linux apps on Windows. +> “借助此功能,我们将启动一个配套发行版,其中包含Wayland,X桌面,音频服务以及使Linux GUI应用程序与Windows并行所需的所有功能。使用完GUI应用程序并终止WSL分发后,系统发行版也会自动结束其进程。” -Microsoft claims this will improve the user experience significantly: +这些组件的结合使运行Linux GUI应用程序与常规Windows程序并行运行更为简单。 -> With this feature, we are automatically starting a companion system distro, containing a Wayland, X server, pulse audio server, and everything else needed to make Linux GUI apps communicate with Windows. After you’re finished using GUI applications and terminate your WSL distribution the system distro will automatically end its session as well. +### 总结 -These components combine to make it super easy to run Linux GUI apps alongside regular Windows apps. +有了这些新功能,微软似乎正在竭尽全力使Linux应用程序在Windows上运行。随着越来越多的用户在Windows上运行Linux应用程序,我们可能会看到更多的用户转向Linux。特别是因为他们习惯的应用程序能够运行。 -### Wrapping Up +如果这种做法取得了成功(并且微软几年后仍未将其雪藏),它将结束为期5年的试图将Linux应用程序移植入Windows的过程。如果您想了解更多信息,可以查看 [发行说明][12]. -With all these new features, it looks like Microsoft is giving it their best to get Linux apps working on Windows. And with more users running Linux apps on Windows, we may see more of them jump ship and move solely to Linux. Especially since the apps they’re used to would run anyway. - -If this takes off (and Microsoft doesn’t kill it in a few years), it will bring an end to a 5-year quest to bring Linux apps to Windows. If you are curious to learn more about it, you can look at the [release announcement][12]. - -_What are your thoughts on GUI Linux apps running on Windows? Share them in the comments below!_ +_你对Linux软件移植入Windows怎么看?请在下面留下你的评论。_ #### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! @@ -115,7 +113,7 @@ via: https://news.itsfoss.com/linux-gui-apps-wsl/ 作者:[Jacob Crume][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[Kevin3599](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 634e3bfda896abec800dcc6197287868ed43d597 Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Sat, 8 May 2021 22:39:34 +0800 Subject: [PATCH 135/170] Update 20210422 Running Linux Apps In Windows Is Now A Reality.md --- ... Linux Apps In Windows Is Now A Reality.md | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md index ddf532da89..a8d026bb86 100644 --- a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md +++ b/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md @@ -86,27 +86,24 @@ _你对Linux软件移植入Windows怎么看?请在下面留下你的评论。_ -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! +#### BIG科技网站获得数百万美元的收入,这是FOSS的消息! -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. +如果您喜欢我们在FOSS上的文章,请考虑捐款以支持我们的独立出版物。您的支持将帮助我们继续发布针对台式机Linux和开源软件的内容。 -I'm not interested +我对此不感兴趣 -#### _Related_ +#### _有关的_ - * [Linux Mint 20.1 is Available to Download Now, Here are 9 New Features in This Release][13] - * ![][14] ![Linux Mint 20.1][15] + * [Linux Mint 20.1现在可以下载,这是此发行版中的9个新功能] [13] + *![] [14]![Linux Mint 20.1] [15] - * [The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][16] - * ![][14] ![][17] - - - * [Nitrux 1.3.8 Release Packs in KDE Plasma 5.21, Linux 5.11, and More Changes][18] - * ![][14] ![][19] - + * [Linux在游戏方面取得的进步简直令人难以置信:Lutris Creator] [16] + *![] [14]![] [17] + * [KDE Plasma 5.21,Linux 5.11和更多更改中的Nitrux 1.3.8发布包] [18] + *![] [14]![] [19] -------------------------------------------------------------------------------- via: https://news.itsfoss.com/linux-gui-apps-wsl/ From 692cd80a84b0836a47ebccfe79b033438a89bb54 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 9 May 2021 03:51:52 +0800 Subject: [PATCH 136/170] =?UTF-8?q?Revert=20"=E5=8E=9F=E6=96=87=E7=94=B3?= =?UTF-8?q?=E9=A2=86"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8b4bc1043f9c823e7032d774aaf3b6cc697c4fcd. --- .../talk/20210218 Not an engineer- Find out where you belong.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/talk/20210218 Not an engineer- Find out where you belong.md b/sources/talk/20210218 Not an engineer- Find out where you belong.md index 4bce68f512..fee015d8b3 100644 --- a/sources/talk/20210218 Not an engineer- Find out where you belong.md +++ b/sources/talk/20210218 Not an engineer- Find out where you belong.md @@ -85,7 +85,7 @@ via: https://opensource.com/article/21/2/advice-non-technical 作者:[Dawn Parzych][a] 选题:[lujun9972][b] -译者:[max27149](https://github.com/max27149) +译者:[max27149](https://github.com/imax27149) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From ed8ef9b9589ee4de9681e5565395b8d2ecb5c385 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Sun, 9 May 2021 05:05:14 +0800 Subject: [PATCH 137/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210508=20?= =?UTF-8?q?My=20weird=20jobs=20before=20tech?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210508 My weird jobs before tech.md --- .../20210508 My weird jobs before tech.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sources/tech/20210508 My weird jobs before tech.md diff --git a/sources/tech/20210508 My weird jobs before tech.md b/sources/tech/20210508 My weird jobs before tech.md new file mode 100644 index 0000000000..f275af1766 --- /dev/null +++ b/sources/tech/20210508 My weird jobs before tech.md @@ -0,0 +1,47 @@ +[#]: subject: (My weird jobs before tech) +[#]: via: (https://opensource.com/article/21/5/weird-jobs-tech) +[#]: author: (Chris Hermansen https://opensource.com/users/clhermansen) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +My weird jobs before tech +====== +You never know where you will travel from your first job. +![Yellow plane flying in the air, Beechcraft D17S][1] + +I had a few weird jobs before I hit tech. + +I was a junior assistant in an aircraft repair shop, which meant tasks like cleaning dirty metal parts in solvent (wow, things were different back in the '70s). My most fun task there was ironing Dacron aircraft fabric onto the wooden ailerons and horizontal stabilizer on a beautiful old Beechcraft Staggerwing that was in the shop for a rebuild. + +One summer during university, I worked at the same airport on the team that mixed the fire retardant and pumped it into the fire suppression aircraft ("[water bombers][2]"). That was probably the dirtiest job I ever had, but loading the aircraft was pretty cool. There was a small flap about two meters off the ground that you would stick your finger into after attaching the filling hose to the coupling. Then the person on the pump would start the pump. When you felt your finger get wet, you waved for the pump master to stop the pump. Meanwhile, the incredibly noisy right-side radial engine was running a few meters in front of you, with the propellers doing a great job of blowing off all the red dust that accumulated on you from mixing the retardant in the first place. If you screwed up and let the airplane get too full, they would have to taxi over to a patch of ground and dump the load right there, since they would be too heavy to take off otherwise. + +Two other summers, I worked for the local Pepsi, 7-Up, and Orange Crush distributor delivering crates of soft drinks to stores and restaurants. That was definitely the most physically demanding job I ever had. Think of a five-high stack of wooden crates with each containing a dozen 750ml glass bottles of soft drinks on a hand truck. Think of pulling that up to a second-floor restaurant. Think of that restaurant getting 120 crates per week... 24 trips up those stairs and back down again with all the empties. A small truck would typically have 300 or so crates of soft drinks on board. We were paid by the load, not by the hour, so the goal was to get done early and hit the beach. + +### My tech jobs + +Delivering sodas was my last summer job during university. I graduated the next year with a degree in mathematics and a lot of computer courses, especially numerical analysis, under my belt. My first job in tech was working for a small computer services consultant. I used SPSS to do a bunch of analysis on some sport fishing surveys, wrote a few hundred lines of PL/1 to print concert tickets on the IBM 3800 laser printer in the service bureau where we rented time, and started working on some programs to analyze forest statistics. I eventually went to work for the client needing forestry statistics, becoming a partner in the mid-1980s. By then we were doing a lot more than measuring trees and no longer using a timesharing bureau to do our computations. We bought a Unix minicomputer, which we upgraded in the late 1980s to a network of Sun workstations. + +I spent some time working on a big development project headquartered in Kuala Lumpur, Malaysia. Then we bought our first geographic information system, and I spent most of my time in the late 1980s and 1990s working with our customers who needed to customize that software to meet their business needs. By the early 2000s, my three older partners were getting ready to retire, and I was trying to understand how I fit into the long-term picture of our no-longer-small company of 200 or so employees. Our new employee-owners couldn't really figure that one out either, and in 2002, I found myself in Chile, looking to see if the Chile-Canada Free Trade Agreement provided a reasonable opportunity to move some of our business to Latin America. + +That business started off formally in 2004. The Canadian parent, meanwhile, was badly sideswiped by a combination of some investments that, in the light of the 2007–2009 economic meltdown, no longer seemed so wise, and it was forced to close its doors in 2011. However, by that time, the Chilean subsidiary was a going concern, so our original employee and I became partners and purchased it from the asset sale. It's still going today, doing a lot of cool stuff in the social-environmental space, and I'm often a part of that, especially when my trusty mathematics and computational background are useful. + +As a side hustle, I develop and support a horse racing information system for a wonderful man who has made a career out of buying and selling racehorses in India. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/weird-jobs-tech + +作者:[Chris Hermansen][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/clhermansen +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yellow_plane_fly_air.jpg?itok=pEcrCVJT (Yellow plane flying in the air, Beechcraft D17S) +[2]: https://worldairphotography.wordpress.com/2016/08/22/air-tanker-history-in-canada-part-one/amp/ From 55db17c3ed4318e400095e11713d8b412a54948b Mon Sep 17 00:00:00 2001 From: Kevin3599 <69574926+Kevin3599@users.noreply.github.com> Date: Sun, 9 May 2021 10:22:11 +0800 Subject: [PATCH 138/170] Rename sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md to translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md --- .../20210422 Running Linux Apps In Windows Is Now A Reality.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/news/20210422 Running Linux Apps In Windows Is Now A Reality.md (100%) diff --git a/sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md similarity index 100% rename from sources/news/20210422 Running Linux Apps In Windows Is Now A Reality.md rename to translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md From 51b8d581b60e8356b8ecdab78ef8763b2c3c8a90 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Sun, 9 May 2021 10:29:58 +0800 Subject: [PATCH 139/170] Rename sources/tech/20210508 My weird jobs before tech.md to sources/talk/20210508 My weird jobs before tech.md --- sources/{tech => talk}/20210508 My weird jobs before tech.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210508 My weird jobs before tech.md (100%) diff --git a/sources/tech/20210508 My weird jobs before tech.md b/sources/talk/20210508 My weird jobs before tech.md similarity index 100% rename from sources/tech/20210508 My weird jobs before tech.md rename to sources/talk/20210508 My weird jobs before tech.md From 54db0fcb82b2938728d1b6533fa0b256daf67d97 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 9 May 2021 12:12:15 +0800 Subject: [PATCH 140/170] PRF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @cooljelly 本文中,conntrack 作为命令出现的,我保持原样,而作为“子系统”出现的,我采用了“连接跟踪”。 --- ...translation part 2 - the conntrack tool.md | 68 +++++++++---------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md b/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md index 992ab1e3c3..9ea150d569 100644 --- a/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md +++ b/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md @@ -1,26 +1,26 @@ [#]: collector: (lujun9972) [#]: translator: (cooljelly) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Network address translation part 2 – the conntrack tool) [#]: via: (https://fedoramagazine.org/network-address-translation-part-2-the-conntrack-tool/) [#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) -网络地址转换第二部分 - conntrack 工具 +网络地址转换(NAT)之连接跟踪工具 ====== -![][1] +![](https://img.linux.net.cn/data/attachment/album/202105/09/120958wwocez99o2nofw8s.jpg) -这是有关网络地址转换network address translation(NAT)的系列文章中的第二篇。之前的第一篇文章介绍了 [如何使用 iptables/nftables 的报文跟踪功能][2] 来定位 NAT 相关的连接问题。作为第二部分,本文介绍 “conntrack” 命令。conntrack 命令允许您查看和修改被跟踪的连接。 +这是有关网络地址转换network address translation(NAT)的系列文章中的第二篇。之前的第一篇文章介绍了 [如何使用 iptables/nftables 的报文跟踪功能][2] 来定位 NAT 相关的连接问题。作为第二部分,本文介绍 `conntrack` 命令,它允许你查看和修改被跟踪的连接。 ### 引言 -通过 iptables 或 nftables 配置的 NAT 建立在 netfilters 连接跟踪工具之上。_conntrack_ 命令作为 “conntrack-tools” 软件包的一部分,用于查看和更改连接状态表。 +通过 iptables 或 nftables 配置的 NAT 建立在 netfilters 连接跟踪子系统之上。`conntrack` 命令作为 “conntrack-tools” 软件包的一部分,用于查看和更改连接状态表。 -### Conntrack 连接状态表 +### 连接跟踪状态表 -连接跟踪子系统跟踪它看到的所有报文流。运行 “_sudo conntrack -L_” 可查看其内容: +连接跟踪子系统会跟踪它看到的所有报文流。运行 `sudo conntrack -L` 可查看其内容: ``` tcp 6 43184 ESTABLISHED src=192.168.2.5 dst=10.25.39.80 sport=5646 dport=443 src=10.25.39.80 dst=192.168.2.5 sport=443 dport=5646 [ASSURED] mark=0 use=1 @@ -28,16 +28,16 @@ tcp 6 26 SYN_SENT src=192.168.2.5 dst=192.168.2.10 sport=35684 dport=443 [UNREPL udp 17 29 src=192.168.8.1 dst=239.255.255.250 sport=48169 dport=1900 [UNREPLIED] src=239.255.255.250 dst=192.168.8.1 sport=1900 dport=48169 mark=0 use=1 ``` -上述显示结果中,每行表示一个连接跟踪项。您可能会注意到,每行相同的地址和端口号会出现两次,而且第二次出现的源地址/端口对和目标地址/端口对会与第一次正好相反!这是因为每个连接跟踪项会先后两次被插入连接状态表。第一个四元组(源地址,目标地址,源端口,目标端口)记录的是原始方向的连接信息,即发送者发送报文的方向。而第二个四元组则记录的是 conntrack 子系统期望收到的对端回复报文的连接信息。这解决了两个问题: +上述显示结果中,每行表示一个连接跟踪项。你可能会注意到,每行相同的地址和端口号会出现两次,而且第二次出现的源地址/端口对和目标地址/端口对会与第一次正好相反!这是因为每个连接跟踪项会先后两次被插入连接状态表。第一个四元组(源地址、目标地址、源端口、目标端口)记录的是原始方向的连接信息,即发送者发送报文的方向。而第二个四元组则记录的是连接跟踪子系统期望收到的对端回复报文的连接信息。这解决了两个问题: 1. 如果报文匹配到一个 NAT 规则,例如 IP 地址伪装,相应的映射信息会记录在链接跟踪项的回复方向部分,并自动应用于同一条流的所有后续报文。 2. 即使一条流经过了地址或端口的转换,也可以成功在连接状态表中查找到回复报文的四元组信息。 -原始方向的(第一个显示的)四元组信息永远不会改变:它就是发送者发送的连接信息。NAT 操作只会修改回复方向(第二个)四元组,因为这是接受者看到的连接信息。修改第一个四元组没有意义:netfilter 无法控制发起者的连接状态,它只能在收到/转发报文时对其施加影响。当一个报文未映射到现有连接表项时,conntrack 可以为其新建一个表项。对于 UDP 报文,该操作会自动进行。对于 TCP 报文,conntrack 可以配置为只有 TCP 报文设置了 [SYN 标志位][3] 才新建表项。默认情况下,conntrack 会允许从流的中间报文开始创建,这是为了避免对 conntrack 使能之前就存在的流处理出现问题。 +原始方向的(第一个显示的)四元组信息永远不会改变:它就是发送者发送的连接信息。NAT 操作只会修改回复方向(第二个)四元组,因为这是接受者看到的连接信息。修改第一个四元组没有意义:netfilter 无法控制发起者的连接状态,它只能在收到/转发报文时对其施加影响。当一个报文未映射到现有连接表项时,连接跟踪可以为其新建一个表项。对于 UDP 报文,该操作会自动进行。对于 TCP 报文,连接跟踪可以配置为只有 TCP 报文设置了 [SYN 标志位][3] 才新建表项。默认情况下,连接跟踪会允许从流的中间报文开始创建,这是为了避免对启用连接跟踪之前就存在的流处理出现问题。 -### Conntrack 连接状态表和 NAT +### 连接跟踪状态表和 NAT -如上一节所述,回复方向的四元组包含 NAT 信息。您可以通过命令过滤输出经过源地址 NAT 或目标地址 NAT 的连接跟踪项。通过这种方式可以看到一个指定的流经过了哪种类型的 NAT 转换。例如,运行 “_sudo conntrack -L -p tcp –src-nat_” 可显示经过源 NAT 的连接跟踪项,输出结果类似于以下内容: +如上一节所述,回复方向的四元组包含 NAT 信息。你可以通过命令过滤输出经过源地址 NAT 或目标地址 NAT 的连接跟踪项。通过这种方式可以看到一个指定的流经过了哪种类型的 NAT 转换。例如,运行 `sudo conntrack -L -p tcp –src-nat` 可显示经过源 NAT 的连接跟踪项,输出结果类似于以下内容: ``` tcp 6 114 TIME_WAIT src=10.0.0.10 dst=10.8.2.12 sport=5536 dport=80 src=10.8.2.12 dst=192.168.1.2 sport=80 dport=5536 [ASSURED] @@ -51,39 +51,37 @@ inet nat postrouting meta oifname "veth0" masquerade 其他类型的 NAT 规则,例如目标地址 DNAT 规则或重定向规则,其连接跟踪项也会以类似的方式显示,回复方向四元组的远端地址或端口与原始方向四元组的远端地址或端口不同。 -### Conntrack 扩展 - -conntrack 的记帐功能和时间戳功能是两个有用的扩展功能。运行 “_sudo sysctl net.netfilter.nf_conntrack_acct=1_” 可以在运行 “_sudo conntrack -L_” 时显示每个流经过的字节数和报文数。运行 “_sudo sysctl net.netfilter.nf_conntrack_timestamp=1_” 为每个连接记录一个开始时间戳,之后每次运行 “_sudo conntrack -L_” 时都可以显示这个流从开始经过了多少秒。在上述命令中增加 “–output ktimestamp” 选项也可以看到流开始的绝对时间。 +### 连接跟踪扩展 +连接跟踪的记帐功能和时间戳功能是两个有用的扩展功能。运行 `sudo sysctl net.netfilter.nf_conntrack_acct=1` 可以在运行 `sudo conntrack -L` 时显示每个流经过的字节数和报文数。运行 `sudo sysctl net.netfilter.nf_conntrack_timestamp=1` 为每个连接记录一个开始时间戳,之后每次运行 `sudo conntrack -L` 时都可以显示这个流从开始经过了多少秒。在上述命令中增加 `–output ktimestamp` 选项也可以看到流开始的绝对时间。 ### 插入和更改连接跟踪项 -您可以手动为状态表添加连接跟踪项,例如: +你可以手动为状态表添加连接跟踪项,例如: ``` sudo conntrack -I -s 192.168.7.10 -d 10.1.1.1 --protonum 17 --timeout 120 --sport 12345 --dport 80 ``` -这项命令通常被 conntrackd 用于状态复制,即将主防火墙的连接跟踪项复制到备用防火墙系统。于是当切换发生的时候,备用系统可以接管已经建立的连接且不会造成中断。Conntrack 还可以存储报文的带外元数据,例如 conntrack 标记和连接跟踪标签。可以用 “update” (-U) 选项来修改它们: +这项命令通常被 conntrackd 用于状态复制,即将主防火墙的连接跟踪项复制到备用防火墙系统。于是当切换发生的时候,备用系统可以接管已经建立的连接且不会造成中断。连接跟踪还可以存储报文的带外元数据,例如连接跟踪标记和连接跟踪标签。可以用更新选项(`-U`)来修改它们: ``` sudo conntrack -U -m 42 -p tcp ``` -这条命令将所有的 TCP 流的 connmark 修改为 42。 +这条命令将所有的 TCP 流的连接跟踪标记修改为 42。 -### **Delete entries** -### **删除连接跟踪项** +### 删除连接跟踪项 -在某些情况下,您可能想从状态表中删除条目。例如,对 NAT 规则的修改不会影响表中已存在流的经过报文。因此对 UDP 长连接(例如像 VXLAN 这样的隧道协议),删除表项可能很有意义,这样新的 NAT 转换规则才能生效。可以通过 “sudo conntrack -D” 命令附带可选的地址和端口列表选项,来删除相应的表项,如下例所示: +在某些情况下,你可能想从状态表中删除条目。例如,对 NAT 规则的修改不会影响表中已存在流的经过报文。因此对 UDP 长连接(例如像 VXLAN 这样的隧道协议),删除表项可能很有意义,这样新的 NAT 转换规则才能生效。可以通过 `sudo conntrack -D` 命令附带可选的地址和端口列表选项,来删除相应的表项,如下例所示: ``` sudo conntrack -D -p udp --src 10.0.12.4 --dst 10.0.0.1 --sport 1234 --dport 53 ``` -### Conntrack 错误计数 +### 连接跟踪错误计数 -Conntrack 也可以输出统计数字: +`conntrack` 也可以输出统计数字: ``` # sudo conntrack -S @@ -93,19 +91,19 @@ cpu=2 found=0 invalid=0 insert=0 insert_failed=0 drop=0 early_drop=0 error=0 sea cpu=3 found=0 invalid=0 insert=0 insert_failed=0 drop=0 early_drop=0 error=0 search_restart=0 ``` -大多数计数器将为 0。“Found” 和 “insert” 数将始终为 0,它们只是为了后向兼容。其他错误计数包括: +大多数计数器将为 0。`Found` 和 `insert` 数将始终为 0,它们只是为了后向兼容。其他错误计数包括: - * invalid:报文既不匹配已有连接跟踪项,也未创建新连接。 - * insert_failed:报文新建了一个连接,但插入状态表时失败。这在 NAT 引擎在伪装时恰好选择了重复的源地址和端口时可能出现。 - * drop:报文新建了一个连接,但是没有可用的内存为其分配新的状态条目。 - * early_drop:conntrack 表已满。为了接受新的连接,已有的未看到双向报文的连接被丢弃。 - * error:icmp(v6) 收到与已知连接不匹配的 icmp 错误数据包。 - * search_restart:查找过程由于另一个 CPU 的插入或删除操作而中断。 - * clash_resolve:多个 CPU 试图插入相同的 conntrack 条目。 + * `invalid`:报文既不匹配已有连接跟踪项,也未创建新连接。 + * `insert_failed`:报文新建了一个连接,但插入状态表时失败。这在 NAT 引擎在伪装时恰好选择了重复的源地址和端口时可能出现。 + * `drop`:报文新建了一个连接,但是没有可用的内存为其分配新的状态条目。 + * `early_drop`:连接跟踪表已满。为了接受新的连接,已有的未看到双向报文的连接被丢弃。 + * `error`:icmp(v6) 收到与已知连接不匹配的 icmp 错误数据包。 + * `search_restart`:查找过程由于另一个 CPU 的插入或删除操作而中断。 + * `clash_resolve`:多个 CPU 试图插入相同的连接跟踪条目。 -除非经常发生,这些错误条件通常无害。一些错误可以通过针对预期工作负载调整 conntrack 系统的参数来降低其发生概率,典型的配置包括 _net.netfilter.nf_conntrack_buckets_ 和 _net.netfilter.nf_conntrack_max_ 参数。可在 [nf_conntrack-sysctl 文档][5] 中查阅相应配置参数的完整列表。 +除非经常发生,这些错误条件通常无害。一些错误可以通过针对预期工作负载调整连接跟踪子系统的参数来降低其发生概率,典型的配置包括 `net.netfilter.nf_conntrack_buckets` 和 `net.netfilter.nf_conntrack_max` 参数。可在 [nf_conntrack-sysctl 文档][5] 中查阅相应配置参数的完整列表。 -当报文状态是 invalid 时,请使用 “_sudo sysctl net.netfilter.nf_conntrack_log_invalid=255_” 来获取更多信息。例如,当 conntrack 遇到一个所有 TCP 标志位均为 0 的报文时,将记录以下内容: +当报文状态是 `invalid` 时,请使用 `sudo sysctl net.netfilter.nf_conntrack_log_invalid=255` 来获取更多信息。例如,当连接跟踪遇到一个所有 TCP 标志位均为 0 的报文时,将记录以下内容: ``` nf_ct_proto_6: invalid tcp flag combination SRC=10.0.2.1 DST=10.0.96.7 LEN=1040 TOS=0x00 PREC=0x00 TTL=255 ID=0 PROTO=TCP SPT=5723 DPT=443 SEQ=1 ACK=0 @@ -113,7 +111,7 @@ nf_ct_proto_6: invalid tcp flag combination SRC=10.0.2.1 DST=10.0.96.7 LEN=1040 ### 总结 -本文介绍了如何检查连接跟踪表和存储在跟踪流中的 NAT 信息。本系列的下一部分将延伸讨论 conntrack 工具和连接跟踪事件框架。 +本文介绍了如何检查连接跟踪表和存储在跟踪流中的 NAT 信息。本系列的下一部分将延伸讨论连接跟踪工具和连接跟踪事件框架。 -------------------------------------------------------------------------------- @@ -122,14 +120,14 @@ via: https://fedoramagazine.org/network-address-translation-part-2-the-conntrack 作者:[Florian Westphal][a] 选题:[lujun9972][b] 译者:[cooljelly](https://github.com/cooljelly) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 [a]: https://fedoramagazine.org/author/strlen/ [b]: https://github.com/lujun9972 [1]: https://fedoramagazine.org/wp-content/uploads/2021/02/network-address-translation-part-2-816x345.jpg -[2]: https://fedoramagazine.org/network-address-translation-part-1-packet-tracing/ +[2]: https://linux.cn/article-13364-1.html [3]: https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure [4]: https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)#Masquerading [5]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/nf_conntrack-sysctl.rst From ce16c8f70ec29fd57184cf302bc9b6155e38a9a7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 9 May 2021 12:13:53 +0800 Subject: [PATCH 141/170] PUB @cooljelly https://linux.cn/article-13373-1.html --- ...Network address translation part 2 - the conntrack tool.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210212 Network address translation part 2 - the conntrack tool.md (99%) diff --git a/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md b/published/20210212 Network address translation part 2 - the conntrack tool.md similarity index 99% rename from translated/tech/20210212 Network address translation part 2 - the conntrack tool.md rename to published/20210212 Network address translation part 2 - the conntrack tool.md index 9ea150d569..6a779f4a74 100644 --- a/translated/tech/20210212 Network address translation part 2 - the conntrack tool.md +++ b/published/20210212 Network address translation part 2 - the conntrack tool.md @@ -1,8 +1,8 @@ [#]: collector: (lujun9972) [#]: translator: (cooljelly) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13373-1.html) [#]: subject: (Network address translation part 2 – the conntrack tool) [#]: via: (https://fedoramagazine.org/network-address-translation-part-2-the-conntrack-tool/) [#]: author: (Florian Westphal https://fedoramagazine.org/author/strlen/) From bc229f5abeeacdec8180a944d9b2949d728a3416 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 9 May 2021 12:22:27 +0800 Subject: [PATCH 142/170] PRF --- ...10104 Network address translation part 1 - packet tracing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/published/20210104 Network address translation part 1 - packet tracing.md b/published/20210104 Network address translation part 1 - packet tracing.md index dfc1351d98..b1b8c31243 100644 --- a/published/20210104 Network address translation part 1 - packet tracing.md +++ b/published/20210104 Network address translation part 1 - packet tracing.md @@ -155,7 +155,7 @@ trace id 20a4ef inet trace_debug trace_pre packet: iif "enp0" ether saddr .. ip ### 规则集合分析 -上一节我们发现报文在 inet 过滤表中的一个名叫 `allowed_dnats` 的链中被丢弃。现在我们来查看它: +上一节我们发现报文在 inet filter 表中的一个名叫 `allowed_dnats` 的链中被丢弃。现在我们来查看它: ``` # nft list chain inet filter allowed_dnats From b48261bcd14a269d8e6476eb3f48586aa61f5b23 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 9 May 2021 16:42:19 +0800 Subject: [PATCH 143/170] PRF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ddl-hust 感谢你!完成了第一篇翻译贡献! --- ... beginner-s guide to network management.md | 150 +++++++++--------- 1 file changed, 71 insertions(+), 79 deletions(-) diff --git a/translated/tech/20210420 A beginner-s guide to network management.md b/translated/tech/20210420 A beginner-s guide to network management.md index bafff8dd7c..c88b751759 100644 --- a/translated/tech/20210420 A beginner-s guide to network management.md +++ b/translated/tech/20210420 A beginner-s guide to network management.md @@ -3,96 +3,90 @@ [#]: author: "Seth Kenlon https://opensource.com/users/seth" [#]: collector: "lujun9972" [#]: translator: "ddl-hust" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " -面向初学者的网络管理 +网络管理初学者指南 ====== -学习网络如何工作以及使用开源工具进行网络性能调优。 +> 了解网络是如何工作的,以及使用开源工具进行网络性能调优的一些窍门。 -![Tips and gears turning][1] +![](https://img.linux.net.cn/data/attachment/album/202105/09/164127umsevtfspssppmsp.jpg) -大多数人每一天至少会接触到两种类型的网络。当你打开计算机或者移动设备,设备连接到本地WIFI,本地WIFI然后连接到互联网"the internet"。 +大多数人每一天至少会接触到两种类型的网络。当你打开计算机或者移动设备,设备连接到本地 WiFi,本地 WiFi 然后连接到所谓“互联网”的互联网络。 -但是网络实际上是如何工作的?你的设备如何能够找到网络、共享打印机或文件共享?这些东西如何知道响应你的设备?系统管理员用什么措施来优化网络的性能? +但是网络实际上是如何工作的?你的设备如何能够找到互联网、共享打印机或文件共享?这些东西如何知道响应你的设备?系统管理员用什么措施来优化网络的性能? -开源思想在网络技术领域根深蒂固,因此任何想更多了解网络的人,可以免费获得网络相关的资源。本文使用开源技术介绍了网络管理相关的基础技术。 +开源思想在网络技术领域根深蒂固,因此任何想更多了解网络的人,可以免费获得网络相关的资源。本文介绍了使用开源技术的网络管理相关的基础知识。 ### 网络是什么? -网络指的是两台或者多台电脑互相通信,为了使得网络能够工作,一台电脑必须能够找到其他电脑,为了解决这个问题,两种不同的通信协议被定义:TCP和IP。 +计算机网络是由两台或者多台计算机组成的、互相通信的集合。为了使得网络能够工作,网络上一台计算机必须能够找到其他计算机,且通信必须能够从一台计算机到达另外一台。为了解决这一需求,开发和定义了两种不同的通信协议:TCP 和 IP。 -### TCP传输协议 +#### 用于传输的 TCP 协议 -为了使得计算机之间能够通信,必须要有一种传输介质来帮助通信。人说话产生的声音通过声波来传递,计算机通过以太网电缆、无线电波或微波传输的数字信号进行通信。这方面的规范被正式定义为[TCP协议][2]。 +为了使得计算机之间能够通信,它们之间必须有一种传输信息的手段。人说话产生的声音是通过声波来传递的,计算机是通过以太网电缆、无线电波或微波传输的数字信号进行通信的。这方面的规范被正式定义为 [TCP 协议][2]。 -### IP寻址 +#### 用于寻址的 IP 协议 -计算机必须有一些识别手段才能相互寻址。当人类相互称呼时,我们使用名字和代名词。 当计算机相互寻址时,它们使用IP地址,如`192.168.0.1`,IP地址可以被映射到名称上,如笔记本电脑、桌面、Tux或者企鹅。这种规范定义为[IP协议][3]。 +计算机必须有一些识别手段才能相互寻址。当人类相互称呼时,我们使用名字和代名词。当计算机相互寻址时,它们使用 IP 地址,如 `192.168.0.1`,IP 地址可以被映射到名称上,如“Laptop”、“Desktop”、“Tux” 或 “Penguin”。这方面的规范被定义为 [IP 协议][3]。 ### 最小配置设置 -最简单的网络是两台计算机的网络,使用特殊布线方式的以太网电缆——`交叉电缆`。一条交叉电缆将来自一台计算机的信号连接并传输到另一台计算机上的相应受体。还有一些交叉适配器可以将标准的以太网转换为交叉电缆。 +最简单的网络是一个两台计算机的网络,使用称为“交叉电缆”的特殊布线方式的以太网电缆。交叉电缆将来自一台计算机的信号连接并传输到另一台计算机上的适当受体。还有一些交叉适配器可以将标准的以太网转换为交叉电缆。 ![Crossover cable][4] -(Seth Kenlon, [CC BY-SA 4.0][5]) +由于在这两台计算机之间没有路由器,所有的网络管理都必须在每台机器上手动完成,因此这是一个很好的网络基础知识的入门练习。 -由于计算机之间没有路由器,所有的网络管理都必须在每台机器上手动完成,因此这是一个很好的网络基础知识的入门练习。 +用一根交叉电缆,你可以把两台计算机连接在一起。因为这两台计算机是直接连接的,没有网络控制器提供指导,所以这两台计算机都不用做什么创建网络或加入网络的事情。通常情况下,这项任务会由交换机和 DHCP 服务器或路由器来提示,但在这个简单的网络设置中,这一切都由你负责。 -用一根交叉电缆,你可以把两台计算机连接在一起。因为这两台计算机是直接连接的,没有网络控制器提供指导,所以这两台计算机现在什么事情也没有做,即没有创建一个网络也没有加入任何网络。通常情况下,这项任务会由交换机和DHCP服务器或路由器来提示,但在这个简单的网络设置中,这一切都由你负责。 +要创建一个网络,你必须先为每台计算机分配一个 IP 地址,为自行分配而保留的地址从 169.254 开始,这是一个约定俗成的方式,提醒你本 IP 段是一个闭环系统。 -创建一个网络,你必须先为每台计算机分配一个IP地址,自分配的保留地址从169.254开始,这是一个约定俗成的方式提醒你本IP段是一个闭环系统。 - -### 找寻网络接口 - -首先,你必须知道你正在使用什么网络接口。以太网端口通常用 "eth"加上一个从 0 开始的数字来指定,但有些设备用不同的术语来表示接口。你可以用`ip`命令来查询计算机上的接口。 +#### 找寻网络接口 +首先,你必须知道你正在使用什么网络接口。以太网端口通常用 “eth” 加上一个从 0 开始的数字来指定,但有些设备用不同的术语来表示接口。你可以用 `ip` 命令来查询计算机上的接口: ``` $ ip address show -1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ... -    link/loopback 00:00:00:00:00:00 brd ... -    inet 127.0.0.1/8 scope host lo -       valid_lft forever preferred_lft forever -    inet6 ::1/128 scope host -       valid_lft forever preferred_lft forever -2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ... -    link/ether dc:a6:32:be:a3:e1 brd ... -3: wlan0: <BROADCAST,MULTICAST> ... -    link/ether dc:a6:32:be:a3:e2 brd ... +1: lo: mtu 65536 ... + link/loopback 00:00:00:00:00:00 brd ... + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host + valid_lft forever preferred_lft forever +2: eth0: ... + link/ether dc:a6:32:be:a3:e1 brd ... +3: wlan0: ... + link/ether dc:a6:32:be:a3:e2 brd ... ``` -在这个例子中,`eth0`是正确的接口名称。然而,在某些情况下,你会看到`en0`或`enp0s1`或类似的东西,所以在使用设备名称之前,一定要先检查它。 +在这个例子中,`eth0` 是正确的接口名称。然而,在某些情况下,你会看到 `en0` 或 `enp0s1` 或类似的东西,所以在使用设备名称之前,一定要先检查它。 -### 分配IP地址 +#### 分配 IP 地址 -通常情况下,IP地址从路由器获得的,路由器在网络上广播提供地址。当一台计算机连接到一个网络时,它请求一个地址。路由器通过媒体访问控制(MAC)地址识别设备(注意这个Mac与苹果Mac电脑无关),并被分配IP地址。这就是计算机在网络上找到彼此的方式。 - -在本文的简单网络中,没有路由器来分配IP地址以及登记设备,因此我们需要手动分配IP地址,使用 `ip` 命令来给计算机分配IP地址: +通常情况下,IP 地址是从路由器获得的,路由器在网络上广播提供地址。当一台计算机连接到一个网络时,它请求一个地址。路由器通过介质访问控制(MAC)地址识别设备(注意这个 MAC 与苹果 Mac 电脑无关),并被分配 IP 地址。这就是计算机在网络上找到彼此的方式。 +在本文的简单网络中,没有路由器来分配 IP 地址及注册设备,因此我们需要手动分配 IP 地址,使用 `ip` 命令来给计算机分配 IP 地址: ``` -`$ sudo ip address add 169.254.0.1 dev eth0` +$ sudo ip address add 169.254.0.1 dev eth0 ``` -给另外一台计算机分配IP地址,将IP地址号增1: - +给另外一台计算机分配 IP 地址,将 IP 地址增 1: ``` -`$ sudo ip address add 169.254.0.2 dev eth0` +$ sudo ip address add 169.254.0.2 dev eth0 ``` -现在计算机有了交叉电缆作为通信介质,有了独一无二的IP地址用来识别身份。但是这个网络还缺少一个重要成分:计算机不知道自己是网络的一部分。 +现在计算机有了交叉电缆作为通信介质,有了独一无二的 IP 地址用来识别身份。但是这个网络还缺少一个重要成分:计算机不知道自己是网络的一部分。 -### 设置路由 +#### 设置路由 路由器另外的一个功能是设置从一个地方到另一个地方的网络路径,称作路由表,路由表可以简单的看作网络的城市地图。 -虽然现在我们还没有设置路由表,但是我们可以通过`route`命令来查看路由表: - +虽然现在我们还没有设置路由表,但是我们可以通过 `route` 命令来查看路由表: ``` $ route @@ -101,28 +95,25 @@ Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface $ ``` -同样,你可以通过`ip`命令来查看路由表: - +同样,你可以通过 `ip` 命令来查看路由表: ``` $ ip route $ ``` -通过`ip`命令添加一条路由信息: - +通过 `ip` 命令添加一条路由信息: ``` $ sudo ip route \ -add 169.254.0.0/24 \ -dev eth0 \ -proto static + add 169.254.0.0/24 \ + dev eth0 \ + proto static ``` -这条命令为`eth0`接口添加一个地址范围(从`169.254.0.0`开始到`169.254.0.255`结束)的路由。它将路由协议设置为 `静态`,表示作为管理员的你创建了这个路由,作为对该范围内的任何动态路由进行覆盖。 - -通过`route`命令来查询路由表: +这条命令为 `eth0` 接口添加一个地址范围(从 `169.254.0.0` 开始到 `169.254.0.255` 结束)的路由。它将路由协议设置为“静态”,表示作为管理员的你创建了这个路由,作为对该范围内的任何动态路由进行覆盖。 +通过 `route` 命令来查询路由表: ``` $ route @@ -133,58 +124,59 @@ link-local  | 0.0.0.0 | 255.255.255.0 | ... | eth0 或者使用`ip`命令从不同角度来查询路由表: - ``` $ ip route 169.254.0.0/24 dev eth0 proto static scope link ``` -### 探测相邻网络 - -通过之前的介绍,我们的网路有了传输介质,寻址方法以及网络路由。你可以联系到你的计算机以外的主机。向另一台计算机发送的最简单的信息是 `ping`,这也是产生该信息的命令的名称。 +#### 探测相邻网络 +现在,你的网络有了传输方式、寻址方法以及网络路由。你可以联系到你的计算机以外的主机。向另一台计算机发送的最简单的信息是一个 “呯”,这也是产生该信息的命令的名称(`ping`)。 ``` -$ ping -c1 169.254.0.264 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms\--- 169.254.0.2 ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 0msrtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms +$ ping -c1 169.254.0.2 +64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms + +--- 169.254.0.2 ping statistics --- +1 packets transmitted, 1 received, 0% packet loss, time 0ms +rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms ``` -你可以通过下面的命令查询与你交互的邻居: - +你可以通过下面的命令看到与你交互的邻居: ``` -$ ip neighbour169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE +$ ip neighbour +169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE ``` ### 通过交换机扩展你的网络 -只有双节点的网络的需求并不多。 为了解决这个问题,人们开发了特殊的硬件,称为网络`交换机`。网络交换机允许你将几条以太网电缆连接到它上面,它将消息不加区分地从发送消息的计算机分发到交换机上所有监听的计算机。除了拥有与预期接收者相匹配的IP地址的计算机外,其他所有计算机都会忽略该信息。这使得网络变得相对嘈杂,但这是物理上,将一组计算机连接在一起的简单方法。 +只需要双节点的网络并不多。为了解决这个问题,人们开发了特殊的硬件,称为网络“交换机”。网络交换机允许你将几条以太网电缆连接到它上面,它将消息不加区分地从发送消息的计算机分发到交换机上所有监听的计算机。除了拥有与预期接收者相匹配的 IP 地址的计算机外,其他所有计算机都会忽略该信息。这使得网络变得相对嘈杂,但这是物理上,将一组计算机连接在一起的简单方法。 -在大多数现代家庭网络中,用于物理电缆的物理交换机并不实用。,所以WiFi接入点代替代替了物理交换机。WiFi接入点的功能与交换机相同:它允许许多计算机连接到它并在它们之间传递信息。 +在大多数现代家庭网络中,用于物理电缆的物理交换机并不实用。所以 WiFi 接入点代替了物理交换机。WiFi 接入点的功能与交换机相同:它允许许多计算机连接到它并在它们之间传递信息。 -接入互联网不仅仅是一种期望,它通常是家庭网络存在的原因。没有接入互联网的交换机或WiFi接入点不是很有用,但要将你的网络连接到另一个网络,你需要一个路由器。 +接入互联网不仅仅是一种期望,它通常是家庭网络存在的原因。没有接入互联网的交换机或 WiFi 接入点不是很有用,但要将你的网络连接到另一个网络,你需要一个路由器。 -### 添加路由器 +#### 添加路由器 -实际上,局部网络连接了许多设备,并且越来越多的设备具备联网能力,使得网络的规模呈数量级级别增长。 +实际上,本地网络连接了许多设备,并且越来越多的设备具备联网能力,使得网络的规模呈数量级级别增长。 -手动配置网络是不切实际的,因此这些任务分配给网络中特定的节点来处理,网络中每台计算机运行一个后台守护进程填充从网络上的权威服务器收到的网络设置。家庭网络中,这些工作通常被整合到一个小型嵌入式设备中,通常由你的互联网服务提供商(ISP)提供,称为**路由器**(人们有时错误地将其称为调制解调器)。在一个大型网络中,每项工作通常被分配到一个单独的专用服务器上,以确保专用服务器能够专注于自己的工作以及保证工作弹性。这些任务包括: +手动配置网络是不切实际的,因此这些任务分配给网络中特定的节点来处理,网络中每台计算机运行一个后台守护进程,以填充从网络上的权威服务器收到的网络设置。家庭网络中,这些工作通常被整合到一个小型嵌入式设备中,通常由你的互联网服务提供商(ISP)提供,称为**路由器**(人们有时错误地将其称为调制解调器)。在一个大型网络中,每项工作通常被分配到一个单独的专用服务器上,以确保专用服务器能够专注于自己的工作以及保证工作弹性。这些任务包括: -- DHCP服务器,为加入网络的设备分配和跟踪IP地址 -- DNS服务器将诸如域名 [红帽][7]转换成IP地址`209.132.183.105` -- [防火墙][8]保护网络不受未知流量涌入攻击,或者禁止本地网络流量流出 +- DHCP 服务器,为加入网络的设备分配和跟踪 IP 地址 +- DNS 服务器将诸如域名 [redhat.com][7] 转换成 IP 地址 `209.132.183.105` +- [防火墙][8] 保护你的网络免受不需要的传入流量或被禁止的传出流量 - 路由器有效传输网络流量,作为其他网络(如互联网)的网关,并进行网络地址转换(NAT) -你现在的网络上可能有一个路由器,它可能管理着所有这些任务,甚至可能更多。感谢像VyOS这样的项目,现在你可以运行[自己的开源路由器][9]。对于这样一个项目,你应该使用一台专门的计算机,至少有两个网络接口控制器(NIC):一个连接到你的ISP,另一个连接到交换机,或者更有可能是一个WiFi接入点。 +你现在的网络上可能有一个路由器,它可能管理着所有这些任务,甚至可能更多。感谢像 VyOS 这样的项目,现在你可以运行 [自己的开源路由器][9]。对于这样一个项目,你应该使用一台专门的计算机,至少有两个网络接口控制器(NIC):一个连接到你的 ISP,另一个连接到交换机,或者更有可能是一个 WiFi 接入点。 -### 扩大知识规模 +### 扩大你的知识规模 -无论你的网络上有多少设备,或你的网络连接到多少其他网络,其原则仍然与你的双节点网络相同。你需要一种传输方式,一种寻址方案,以及如何路由到网络。 - -### 网络知识小抄 - -了解网络是如何运作的,对管理网络至关重要。除非你了解你的测试结果,否则你无法排除问题,除非你知道哪些命令能够与你的网络设备交互,否则你无法运行测试。对于重要的网络命令的基本用法以及你可以用它们提取什么样的信息,[下载我们最新的网络小抄][10]。 +无论你的网络上有多少设备,或你的网络连接到多少其他网络,其原则仍然与你的双节点网络相同。你需要一种传输方式,一种寻址方案,以及如何路由到网络的知识。 +### 网络知识速查表 +了解网络是如何运作的,对管理网络至关重要。除非你了解你的测试结果,否则你无法排除问题,除非你知道哪些命令能够与你的网络设备交互,否则你无法运行测试。对于重要的网络命令的基本用法以及你可以用它们提取什么样的信息,[请下载我们最新的网络速查表][10]。 -------------------------------------------------------------------------------- @@ -193,7 +185,7 @@ via: https://opensource.com/article/21/4/network-management 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[ddl-hust](https://github.com/ddl-hust) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From cc3c587d73a9a2598eb31a3b5f2c21765851fad0 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sun, 9 May 2021 16:43:28 +0800 Subject: [PATCH 144/170] PUB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @ddl-hust 本文首发地址: https://linux.cn/article-13374-1.html 你的 LCTT 专页地址:https://linux.cn/lctt/ddl-hust --- .../20210420 A beginner-s guide to network management.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210420 A beginner-s guide to network management.md (99%) diff --git a/translated/tech/20210420 A beginner-s guide to network management.md b/published/20210420 A beginner-s guide to network management.md similarity index 99% rename from translated/tech/20210420 A beginner-s guide to network management.md rename to published/20210420 A beginner-s guide to network management.md index c88b751759..7d5e004bbf 100644 --- a/translated/tech/20210420 A beginner-s guide to network management.md +++ b/published/20210420 A beginner-s guide to network management.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "ddl-hust" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-13374-1.html" 网络管理初学者指南 ====== From 4efd6b6d13c8bdf9381775e6c688c627a49d444a Mon Sep 17 00:00:00 2001 From: MjSeven Date: Sun, 9 May 2021 19:00:26 +0800 Subject: [PATCH 145/170] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20210412 Scheduling tasks with cron.md | 207 ------------------ .../20210412 Scheduling tasks with cron.md | 202 +++++++++++++++++ 2 files changed, 202 insertions(+), 207 deletions(-) delete mode 100644 sources/tech/20210412 Scheduling tasks with cron.md create mode 100644 translated/tech/20210412 Scheduling tasks with cron.md diff --git a/sources/tech/20210412 Scheduling tasks with cron.md b/sources/tech/20210412 Scheduling tasks with cron.md deleted file mode 100644 index 0e61f10985..0000000000 --- a/sources/tech/20210412 Scheduling tasks with cron.md +++ /dev/null @@ -1,207 +0,0 @@ -[#]: subject: (Scheduling tasks with cron) -[#]: via: (https://fedoramagazine.org/scheduling-tasks-with-cron/) -[#]: author: (Darshna Das https://fedoramagazine.org/author/climoiselle/) -[#]: collector: (lujun9972) -[#]: translator: (MjSeven) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Scheduling tasks with cron -====== - -![][1] - -Photo by [Yomex Owo][2] on [Unsplash][3] - -Cron is a scheduling daemon that executes tasks at specified intervals. These tasks are called _cron_ jobs and are mostly used to automate system maintenance or administration tasks. For example, you could set a _cron_ job to automate repetitive tasks such as backing up database or data, updating the system with the latest security patches, checking the disk space usage, sending emails, and so on. The _cron_ jobs can be scheduled to run by the minute, hour, day of the month, month, day of the week, or any combination of these. - -### **Some advantages of cron** - -These are a few of the advantages of using _cron_ jobs: - - * You have much more control over when your job runs i.e. you can control the minute, the hour, the day, etc. when it will execute. - * It eliminates the need to write the code for the looping and logic of the task and you can shut it off when you no longer need to execute the job. - * Jobs do not occupy your memory when not executing so you are able to save the memory allocation. - * If a job fails to execute and exits for some reason it will run again when the proper time comes. - - - -### Installing the cron daemon - -Luckily Fedora Linux is pre-configured to run important system tasks to keep the system updated. There are several utilities that can run tasks such as _cron_, _anacron_, _at_ and _batch_. This article will focus on the installation of the _cron_ utility only. Cron is installed with the _cronie_ package that also provides the _cron_ services. - -To determine if the package is already present or not, use the rpm command: - -``` -$ rpm -q cronie - Cronie-1.5.2-4.el8.x86_64 -``` - -If the _cronie_ package is installed it will return the full name of the _cronie_ package. If you do not have the package present in your system it will say the package is not installed. -To install type this: - -``` -$ dnf install cronie -``` - -### Running the cron daemon - -A _cron_ job is executed by the _crond_ service based on information from a configuration file. Before adding a job to the configuration file, however, it is necessary to start the _crond_ service, or in some cases install it. What is _crond_? _Crond_ is the compressed name of cron daemon (crond). To determine if the _crond_ service is running or not, type in the following command: - -``` -$ systemctl status crond.service -● crond.service - Command Scheduler - Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor pre> - Active: active (running) since Sat 2021-03-20 14:12:35 PDT; 1 day 21h ago - Main PID: 1110 (crond) -``` - -If you do not see something similar including the line “Active: active (running) since…”, you will have to start the _crond_ daemon. To run the _crond_ service in the current session, enter the following command: - -``` -$ systemctl run crond.service -``` - -To configure the service to start automatically at boot time, type the following: - -``` -$ systemctl enable crond.service -``` - -If, for some reason, you wish to stop the _crond_ service from running, use the _stop_ command as follows: - -``` -$ systemctl stop crond.service -``` - -To restart it, simply use the _restart_ command: - -``` -$ systemctl restart crond.service -``` - -### Defining a cron job - -#### The cron configuration - -Here is an example of the configuration details for a _cron_ job. This defines a simple _cron_ job to pull the latest changes of a _git_ master branch into a cloned repository: - -``` -*/59 * * * * username cd /home/username/project/design && git pull origin master -``` - -There are two main parts: - - * The first part is “*/59 * * * *”. This is where the timer is set to every 59 minutes. - * The rest of the line is the command as it would run from the command line. -The command itself in this example has three parts: - * The job will run as the user “username” - * It will change to the directory /home/username/project/design - * The git command runs to pull the latest changes in the master branch. - - - -#### **Timing syntax** - -The timing information is the first part of the _cron_ job string, as mentioned above. This determines how often and when the cron job is going to run. It consists of 5 parts in this order: - - * minute - * hour - * day of the month - * month - * day of the week - - - -Here is a more graphic way to explain the syntax may be seen here: - -``` -.---------------- minute (0 - 59) - | .------------- hour (0 - 23) - | | .---------- day of month (1 - 31) - | | | .------- month (1 - 12) OR jan,feb,mar,apr … - | | | | .---- day of week (0-6) (Sunday=0 or 7) - | | | | | OR sun,mon,tue,wed,thr,fri,sat - | | | | | - * * * * user-name command-to-be-executed -``` - -#### Use of the **asterisk** - -An asterisk (*) may be used in place of a number to represents all possible values for that position. For example, an asterisk in the minute position would make it run every minute. The following examples may help to better understand the syntax. - -This cron job will run every minute, all the time: - -``` -* * * * [command] -``` - -A slash (/) indicates a multiple number of minutes The following example will run 12 times per hour, i.e., every 5 minutes: - -``` -*/5 * * * * [command] -``` - -The next example will run once a month, on the second day of the month at midnight (e.g. January 2nd 12:00am, February 2nd 12:00am, etc.): - -``` -0 0 2 * * [command] -``` - -#### Using crontab to create a cron job - -Cron jobs run in the background and constantly check the _/etc/crontab_ file, and the _/etc/cron.*/_ and _/var/spool/cron/_ directories. Each user has a unique crontab file in _/var/spool/cron/_ . - -These _cron_ files are not supposed to be edited directly. The _crontab_ command is the method you use to create, edit, install, uninstall, and list cron jobs. - -The same _crontab_ command is used for creating and editing cron jobs. And what’s even cooler is that you don’t need to restart cron after creating new files or editing existing ones. - -``` -$ crontab -e -``` - -This opens your existing _crontab_ file or creates one if necessary. The _vi_ editor opens by default when calling _crontab -e_. Note: To edit the _crontab_ file using Nano editor, you can optionally set the **EDITOR**=nano environment variable. - -List all your _cron_ jobs using the option _-l_ and specify a user using the _-u_ option, if desired. - -``` -$ crontab -l -$ crontab -u username -l -``` - -Remove or erase all your _cron_ jobs using the following command: - -``` -$ crontab -r -``` - -To remove jobs for a specific user you must run the following command as the _root user_: - -``` -$ crontab -r -u username -``` - -Thank you for reading. _cron_ jobs may seem like a tool just for system admins, but they are actually relevant to many kinds of web applications and user tasks. - -#### Reference - -Fedora Linux documentation for [Automated Tasks][4] - --------------------------------------------------------------------------------- - -via: https://fedoramagazine.org/scheduling-tasks-with-cron/ - -作者:[Darshna Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://fedoramagazine.org/author/climoiselle/ -[b]: https://github.com/lujun9972 -[1]: https://fedoramagazine.org/wp-content/uploads/2021/03/schedule_with_cron-816x345.jpg -[2]: https://unsplash.com/@yomex4life?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[3]: https://unsplash.com/s/photos/clock?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText -[4]: https://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/ch-autotasks.html diff --git a/translated/tech/20210412 Scheduling tasks with cron.md b/translated/tech/20210412 Scheduling tasks with cron.md new file mode 100644 index 0000000000..fbf0a6c985 --- /dev/null +++ b/translated/tech/20210412 Scheduling tasks with cron.md @@ -0,0 +1,202 @@ +[#]: subject: "Scheduling tasks with cron" +[#]: via: "https://fedoramagazine.org/scheduling-tasks-with-cron/" +[#]: author: "Darshna Das https://fedoramagazine.org/author/climoiselle/" +[#]: collector: "lujun9972" +[#]: translator: "MjSeven" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " + +使用 cron 调度任务 +====== + +![][1] + +Photo by [Yomex Owo][2] on [Unsplash][3] + +Cron 是一个调度守护进程,它以指定的时间间隔执行任务,这些任务称为 _corn_ 作业,主要用于自动执行系统维护或管理任务。例如,你可以设置一个 _cron_ 作业来自动执行重复的任务,比如备份数据库或数据,使用最新的安全补丁更新系统,检查磁盘空间使用情况,发送电子邮件等等。 _cron_ 作业可以按分钟、小时、日、月、星期或它们的任意组合运行。 + +### **cron 的一些优点** + +以下是使用 _cron_ 作业的一些优点: + + * 你可以更好地控制作业的运行时间。例如,你可以精确到分钟、小时、天等。 + * 它消除了为循环任务逻辑而去写代码的需要,当你不再需要执行任务时,可以直接关闭它。 + * 作业在不执行时不会占用内存,因此你可以节省内存分配。 + * 如果一个作业执行失败并由于某种原因退出,它将在指定的时间再次运行。 + +### 安装 cron 守护进程 + +幸运的是,Fedora Linux 预先配置了运行重要的系统任务来保持系统更新,有几个实用程序可以运行任务例如 _cron_、_anacorn_、_at_ 和 _batch_ 。本文只关注 _cron_ 实用程序的安装。Cron 和 _cronie_ 包一起安装,cronie 包也提供 _cron_ 服务。 + +要确定软件包是否已经存在,使用 rpm 命令: + +```bash +$ rpm -q cronie + Cronie-1.5.2-4.el8.x86_64 +``` + +如果安装了 _cronie_ ,它将返回 _cronie_ 包的全名。如果你的系统中没有安装,则会显示未安装。 + +使用以下命令安装: + +```bash +$ dnf install cronie +``` + +### 运行 cron 守护进程 + +一个 _cron_ 作业由 _crond_ 服务来执行,它会读取配置文件中的信息。在将作业添加到配置文件之前,必须启动 _crond_ 服务,或者安装它。什么是 _crond_ 呢?_Crond_ 是 cron 守护程序的简称。要确定 _crond_ 服务是否正在运行,输入以下命令: + +```bash +$ systemctl status crond.service +● crond.service - Command Scheduler + Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor pre> + Active: active (running) since Sat 2021-03-20 14:12:35 PDT; 1 day 21h ago + Main PID: 1110 (crond) +``` + +如果你没有看到类似的内容 "Active: active (running) since…",你需要启动 _crond_ 守护进程。要在当前会话中运行 _crond_ 服务,输入以下命令: + +```bash +$ systemctl run crond.service +``` + +将其配置为开机自启动,输入以下命令: + +```bash +$ systemctl enable crond.service +``` + +如果出于某种原因,你希望停止 _crond_ 服务,按以下方式使用 _stop_ 命令: + +```bash +$ systemctl stop crond.service +``` + +要重新启动它,只需使用 _restart_ 命令: + +```bash +$ systemctl restart crond.service +``` + +### **定义 cron 工作** + +#### **cron 配置** + +以下是一个 _cron_ 作业的配置细节示例。它定义了一个简单的 _cron_ 作业,将 _git_ master 分支的最新更改拉取到克隆的仓库中: + +```shell +*/59 * * * * username cd /home/username/project/design && git pull origin master +``` + +主要有两部分: + + * 第一部分是 “*/59 * * * *”。这表明计时器设置为每 59 分钟一次。 + * 该行的其余部分是命令,因为它将从命令行运行。 + 在此示例中,命令本身包含三个部分: + * 作业将以用户 ”username“ 的身份运行 + * 它将切换到目录 `/home/username/project/design` + * 运行 git 命令拉取 master 分支中的最新更改 + +#### **时间语法** + +如上所述,时间信息是 _cron_ 作业字符串的第一部分,如上所属。它决定了 cron 作业运行的频率和时间。它按以下顺序包括 5 个部分: + + * 分钟 + * 小时 + * 一个月中的某天 + * 月份 + * 一周中的某天 + +下面是一种更图形化的方式来解释语法: + +```bash + .---------------- 分钟 (0 - 59) + | .------------- 小时 (0 - 23) + | | .---------- 一月中的某天 (1 - 31) + | | | .------- 月份 (1 - 12) 或 jan,feb,mar,apr … + | | | | .---- 一周中的某天 (0-6) (Sunday=0 or 7) + | | | | | 或 sun,mon,tue,wed,thr,fri,sat + | | | | | + * * * * * user-name command-to-be-executed +``` + +#### **星号**的使用 + +星号(*)可以用来替代数字,表示该位置的所有可能值。例如,分钟位置上的星号会使它每分钟运行一次。以下示例可能有助于更好地理解语法。 + +这个 cron 作业将每分钟运行一次: + +```bash +* * * * [command] +``` + +斜杠表示分钟数。下面的示例将每小时运行 12 次,即每 5 分钟运行一次: + +```bash +*/5 * * * * [command] +``` + +下一个示例将每月的第二天午夜(例如 1 月 2 日凌晨 12:00,2 月 2 日凌晨 12:00 等等): + +```bash +0 0 2 * * [command] +``` + +#### 使用 crontab 创建一个 cron 作业 + +Cron 作业会在后台运行,它会不断检查 _/etc/crontab_ 文件和 _/etc/cron.*/_ 以及 _/var/spool/cron/_ 目录。每个用户在 _/var/spool/cron/_ 中都有一个唯一的 crontab 文件。 + +不应该直接编辑这些 _cron_ 文件。_crontab_ 命令是用于创建、编辑、安装、卸载和列出 cron 作业的方法。 + +更酷的是,在创建新文件或编辑现有文件后,你无需重新启动 cron。 + +```bash +$ crontab -e +``` + +这将打开你现有的 _crontab_ 文件,或者创建一个。调用 _crontab -e_ 时,默认情况下会使用 _vi_ 编辑器。注意:使用 Nano 编辑 _crontab_ 文件,可以选择设置 **EDITOR**=nano 环境变量。 + +使用 -l 选项列出所有 cron 作业。如果需要,使用 -u 选项指定一个用户。 + +```bash +$ crontab -l +$ crontab -u username -l +``` + +使用以下命令删除所有 _cron_ 作业: + +```bash +$ crontab -r +``` + +要删除特定用户的作业,你必须以 _root 用户_ 身份运行以下命令: + +```bash +$ crontab -r -u username +``` + +感谢你的阅读。_cron_ 作业看起来可能只是系统管理员的工具,但它实际上与许多 Web 应用程序和用户任务有关。 + +#### 参考 + +Fedora Linux 文档的[自动化任务][4] + +-------------------------------------------------------------------------------- + +via: https://fedoramagazine.org/scheduling-tasks-with-cron/ + +作者:[Darshna Das][a] +选题:[lujun9972][b] +译者:[MjSeven](https://github.com/MjSeven) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://fedoramagazine.org/author/climoiselle/ +[b]: https://github.com/lujun9972 +[1]: https://fedoramagazine.org/wp-content/uploads/2021/03/schedule_with_cron-816x345.jpg +[2]: https://unsplash.com/@yomex4life?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[3]: https://unsplash.com/s/photos/clock?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText +[4]: https://docs.fedoraproject.org/en-US/Fedora/12/html/Deployment_Guide/ch-autotasks.html \ No newline at end of file From 9da5115ee2ccaabb8980a4f0b765489ef26b5828 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Mon, 10 May 2021 05:02:21 +0800 Subject: [PATCH 146/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210509=20?= =?UTF-8?q?My=20first=20tech=20job:=208=20stories=20from=20the=20community?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210509 My first tech job- 8 stories from the community.md --- ... tech job- 8 stories from the community.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sources/tech/20210509 My first tech job- 8 stories from the community.md diff --git a/sources/tech/20210509 My first tech job- 8 stories from the community.md b/sources/tech/20210509 My first tech job- 8 stories from the community.md new file mode 100644 index 0000000000..222b8ae4d7 --- /dev/null +++ b/sources/tech/20210509 My first tech job- 8 stories from the community.md @@ -0,0 +1,58 @@ +[#]: subject: (My first tech job: 8 stories from the community) +[#]: via: (https://opensource.com/article/21/4/my-first-tech-job) +[#]: author: (Jen Wike Huger https://opensource.com/users/jen-wike) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +My first tech job: 8 stories from the community +====== +Folks share what job led to their career in tech. +![Selfcare, calm routine][1] + +Riffing on the topic of what unusual jobs people had before tech, a few of our responses from the community were more focused on jobs that *led *to a job in tech. + +These eight authors shared their experiences. Share yours in the comments. + +* * * + +While getting a degree in English and Anthropology, I formatted and laser-printed my resume using a text editor on the big mainframe at my college, because it made my resume look extra fancy. That fancy resume landed me my first job as a technical writer for financial services. Then, I went back to school and got a degree in folklore. Realizing that a folklore degree was just a license to beg for a living, I opted to go back into technical writing, but for IT at a pharmaceutical company. That led to a career in usability and user experience before the term "user experience" was coined. For extra spice, I then took a hiatus from computers to homeschool for 15 years (all grades, all subjects, K-12), which was an education in and of itself. Eventually, the kids grew up, and I needed a job. **Red Hat decided that my patchwork career was just what my department needed.** That was six years ago. I not very techie by Red Hat standards, but none of my non-tech friends actually understand my job, so maybe I'm a techie after all? —[Ingrid Towey][2] + +I've always been technically minded, when I was a kid I would take things apart, and usually put them back together. I repaired various appliances, the VCR, and other audio equipment. I also learned to program BASIC on our Atari 400 home computer (circa 1982). In college, I was initially working on a bachelor's degree in Geography but continued to play around with computers and added a minor in Computer Science. I worked in a grocery store until I switched to being a computer lab assistant in college. This is where I based my first Opensource.com article. While still in college, I built custom computers at several different small companies. **After college, I moved to the DC area and began doing government IT work.** —[Alan Formy-Duval][3] + +I worked in education. I taught ESL and then was at MIT OpenCourseWare for several years. I was already interested in open licensing at that point, and the power it had to help people. At OCW, I spent time faced with the technical limitations of our work, and how not everyone we wanted to reach had access to the infrastructure they need to learn what they want to learn. **I moved into tech in response to those concerns.** —[Molly de Blanc][4] + +My last job before getting into tech was as a retail employee at the Rubbermaid store in the mall. Prior to that, I'd been a short-order cook. **I landed my first tech job "because you know [Microsoft] Word" as an intern in the IT department** of a company that, several years later, ended up hiring me as a help desk technician full time when I graduated from college. All of this, despite getting a degree in music. —[Chris Collins][5] + +I was a physics student during university, and my first paid internship was taking thin-film x-ray diffraction data at a national lab. I spent most of my days feeding samples into an x-ray diffractometer, which gathers data you can use to calculate the crystalline structure of the samples. My goal throughout my university career was to go into physics research. The next year, grant funding mostly dried up, and I wasn't able to find another lab internship. But I knew computer programming, and a friend pointed me to a paid internship at a small company, doing code cleanup and writing small audit utilities. I really liked working there and got along very well with the IT folks. **When I graduated with my BS, they offered me a job in the IT department, managing Unix servers.** —[Jim Hall][6] + +I made my living playing the French horn for five years. I did tech stuff as a hobby with geeky friends in music school using Linux, Python, etc, mostly for amusement. Most of those friends found their way into tech jobs soon after completing their music degrees. Eventually, a couple of them offered to pay me to do part-time work, which sounded fun and was a nice way to hedge my bets against the thin job security of the performing arts. I loved the work, and after five years of balancing a full-time music career and a nearly full-time freelance tech career, **I got an offer I couldn't refuse and took a salaried job in tech.** Working "only" Monday-Friday felt like I was on vacation all the time. I miss performing, which is an experience unlike any other, but I am thrilled with my career path in tech and would not change a thing. Of that group of friends from music school, several work at Red Hat, several at Google, one at SAS, and a smattering of other places. —[Michael Hrivnak][7] + +Before university, I studied for a year in a US high school and kept in touch with relatives at home through email at a time when only military and higher education had access to the internet. I went on to learn about environmental protection at the university back at home. Of course, I wanted to get an email address ASAP. First, I was refused because first-year students don't get one. When I insisted, I got an email address and was also invited to work at the faculty IT group. **The rest is history: I have two non-IT degrees but ended up working as a sysadmin, QA engineer, and later with open source communities. **—[Peter Czanik][8] + +I worked as a financial manager for a political consulting company in Boston, and I worked on a number of campaigns before going to grad school in Michigan. That led to being a professor of economics, and **from there to IT as I worked at incorporating computer technology into my teaching methods.** I was successful enough at it to become the Faculty Development Officer, responsible for training all of my colleagues. —[Kevin O'Brien][9] + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/4/my-first-tech-job + +作者:[Jen Wike Huger][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/jen-wike +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/meditate_zen_wfh_outside_family_selfcare_520.png?itok=qoSXLqRw (Selfcare, calm routine) +[2]: https://opensource.com/users/i-towey +[3]: https://opensource.com/users/alanfdoss +[4]: https://opensource.com/users/mollydb +[5]: https://opensource.com/users/clcollins +[6]: https://opensource.com/users/jim-hall +[7]: https://opensource.com/users/mhrivnak +[8]: https://opensource.com/users/czanik +[9]: https://opensource.com/users/ahuka From 59f41b2fde13d114b2c425b8434ef35a2892d18f Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 10 May 2021 08:34:09 +0800 Subject: [PATCH 147/170] translated --- ...tu via Torrent -Absolute Beginner-s Tip.md | 79 ------------------- ...tu via Torrent -Absolute Beginner-s Tip.md | 79 +++++++++++++++++++ 2 files changed, 79 insertions(+), 79 deletions(-) delete mode 100644 sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md create mode 100644 translated/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md diff --git a/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md b/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md deleted file mode 100644 index 80a39cfd06..0000000000 --- a/sources/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md +++ /dev/null @@ -1,79 +0,0 @@ -[#]: subject: (How to Download Ubuntu via Torrent [Absolute Beginner’s Tip]) -[#]: via: (https://itsfoss.com/download-ubuntu-via-torrent/) -[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -How to Download Ubuntu via Torrent [Absolute Beginner’s Tip] -====== - -Downloading Ubuntu is pretty straightforward. You go to its [official website][1]. Click on the [desktop download section][2], select the appropriate Ubuntu version and hit the download button. - -![][3] - -Ubuntu is available as a single image of more than 2.5 GB in size. The direct download works well for people with high-speed internet connection. - -However, if you have a slow or inconsistent internet connection, you’ll have a difficult time downloading such a big file. The download may be interrupted several times in the process or may take several hours. - -![Direct download may take several hours for slow internet connections][4] - -### Downloading Ubuntu via Torrent - -If you also suffer from limited data or slow internet connection, using a download manager or torrent would be a better option. I am not going to discuss what torrent is in this quick tutorial. Just know that with torrents, you can download a large file in a number of sessions. - -The Good thing is that Ubuntu actually provides downloads via torrents. The bad thing is that it is hidden on the website and difficult to guess if you are not familiar with it. - -If you want to download Ubuntu via torrent, go to your chosen Ubuntu version’s section and look for **alternative downloads**. - -![][5] - -**Click on this “alternative downloads” link** and it will open a new web page. **Scroll down** on this page to see the BitTorrent section. You’ll see the option to download the torrent files for all the available versions. If you are going to use Ubuntu on your personal computer or laptop, you should go with the desktop version. - -![][6] - -Read [this article to get some guidance on which Ubuntu version][7] you should be using. Considering that you are going to use this distribution, having some ideas about [Ubuntu LTS and non-LTS release would be helpful][8]. - -#### How do you use the download torrent file for getting Ubuntu? - -I presumed that you know how to use torrent. If not, let me quickly summarize it for you. - -You have downloaded a .torrent file of a few KB in size. You need to download and install a Torrent application like uTorrent or Deluge or BitTorrent. - -I recommend using [uTorrent][9] on Windows. If you are using some Linux distribution, you should already have a [torrent client like Transmission][10]. If not, you can install it from your distribution’s software manager. - -Once you have installed the torrent application, run it. Now drag and drop the .torrent file you had downloaded from the website of Ubuntu. You may also use the open with option from the menu. - -Once the torrent file has been added to the Torrent application, it starts downloading the file. If you turn off the system, the download is paused. Start the Torrent application again and the download resumes from the same point. - -When the download is 100% complete, you can use it to [install Ubuntu afresh][11] or in [dual boot with Windows][12]. - -Enjoy Ubuntu :) - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/download-ubuntu-via-torrent/ - -作者:[Abhishek Prakash][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/abhishek/ -[b]: https://github.com/lujun9972 -[1]: https://ubuntu.com -[2]: https://ubuntu.com/download/desktop -[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/download-ubuntu.png?resize=800%2C325&ssl=1 -[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/slow-direct-download-ubuntu.png?resize=800%2C365&ssl=1 -[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/ubuntu-torrent-download.png?resize=800%2C505&ssl=1 -[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/ubuntu-torrent-download-option.png?resize=800%2C338&ssl=1 -[7]: https://itsfoss.com/which-ubuntu-install/ -[8]: https://itsfoss.com/long-term-support-lts/ -[9]: https://www.utorrent.com/ -[10]: https://itsfoss.com/best-torrent-ubuntu/ -[11]: https://itsfoss.com/install-ubuntu/ -[12]: https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ diff --git a/translated/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md b/translated/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md new file mode 100644 index 0000000000..118884c428 --- /dev/null +++ b/translated/tech/20210417 How to Download Ubuntu via Torrent -Absolute Beginner-s Tip.md @@ -0,0 +1,79 @@ +[#]: subject: (How to Download Ubuntu via Torrent [Absolute Beginner’s Tip]) +[#]: via: (https://itsfoss.com/download-ubuntu-via-torrent/) +[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +如何通过 Torrent 下载 Ubuntu(绝对的初学者技巧) +====== + +下载 Ubuntu 是非常直接的。你去它的[官方网站][1]。点击[桌面下载][2],选择合适的 Ubuntu 版本并点击下载按钮。 + +![][3] + +Ubuntu 是以一个超过 2.5GB 大小的单一镜像形式提供的。直接下载对于拥有高速网络连接的人来说效果很好。 + +然而,如果你的网络连接很慢或不稳定,你将很难下载这样一个大文件。在这个过程中,下载可能会中断几次,或者可能需要几个小时。 + +![Direct download may take several hours for slow internet connections][4] + +### 通过 Torrent 下载 Ubuntu + +如果你也受到受限数据或网络连接过慢的困扰,使用下载管理器或 torrent 将是一个更好的选择。我不打算在这个快速教程中讨论什么是 torrent。你只需要知道,通过 torrent,你可以在多个会话内下载一个大文件。 + +好的是,Ubuntu 实际上提供了通过 torrent 的下载。不好的是,它隐藏在网站上,如果你不熟悉它,很难猜到在哪。 + +如果你想通过 torrent 下载 Ubuntu,请到你所选择的 Ubuntu 版本中寻找**其他下载方式**。 + +![][5] + +**点击这个”其他下载方式“链接**,它将打开一个新的网页。**在这个页面向下滚动**,看到 BitTorrent 部分。你会看到下载所有可用版本的 torrent 文件的选项。如果你要在你的个人电脑或笔记本电脑上使用 Ubuntu,你应该选择桌面版本。 + +![][6] + +阅读[这篇文章以获得一些关于你应该使用哪个 Ubuntu 版本的指导][7]。考虑到你要使用这个发行版,了解 [Ubuntu LTS 和非 LTS 版本会有所帮助][8]。 + +#### 你是如何使用下载的 torrent 文件来获取 Ubuntu 的? + +我推测你知道如何使用 torrent。如果没有,让我为你快速总结一下。 + +你已经下载了一个几 KB 大小的 .torrent 文件。你需要下载并安装一个 Torrent 应用,比如 uTorrent 或 Deluge 或 BitTorrent。 + +我建议在 Windows 上使用 [uTorrent][9]。如果你使用的是某个 Linux 发行版,你应该已经有一个[像 Transmission 这样的 torrent 客户端][10]。如果没有,你可以从你的发行版的软件管理器中安装它。 + +当你安装了 Torrent 应用,运行它。现在拖放你从 Ubuntu 网站下载的 .torrent 文件。你也可以使用菜单中的打开选项。 + +当 torrent 文件被添加到 Torrent 应用中,它就开始下载该文件。如果你关闭了系统,下载就会暂停。再次启动 Torrent 应用,下载就会从同一个地方恢复。 + +当下载 100% 完成后,你可以用它来[全新安装 Ubuntu][11]或[与 Windows 双启动][12]。 + +享受 Ubuntu :) + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/download-ubuntu-via-torrent/ + +作者:[Abhishek Prakash][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lujun9972 +[1]: https://ubuntu.com +[2]: https://ubuntu.com/download/desktop +[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/download-ubuntu.png?resize=800%2C325&ssl=1 +[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/04/slow-direct-download-ubuntu.png?resize=800%2C365&ssl=1 +[5]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/ubuntu-torrent-download.png?resize=800%2C505&ssl=1 +[6]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/04/ubuntu-torrent-download-option.png?resize=800%2C338&ssl=1 +[7]: https://itsfoss.com/which-ubuntu-install/ +[8]: https://itsfoss.com/long-term-support-lts/ +[9]: https://www.utorrent.com/ +[10]: https://itsfoss.com/best-torrent-ubuntu/ +[11]: https://itsfoss.com/install-ubuntu/ +[12]: https://itsfoss.com/install-ubuntu-1404-dual-boot-mode-windows-8-81-uefi/ From b1dc1b2d7c76f3cce8eb87752c38a6f89ad67b44 Mon Sep 17 00:00:00 2001 From: geekpi Date: Mon, 10 May 2021 08:51:06 +0800 Subject: [PATCH 148/170] translating --- .../tech/20210430 Access an alternate internet with OpenNIC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210430 Access an alternate internet with OpenNIC.md b/sources/tech/20210430 Access an alternate internet with OpenNIC.md index 20558213cb..b9ca764b6c 100644 --- a/sources/tech/20210430 Access an alternate internet with OpenNIC.md +++ b/sources/tech/20210430 Access an alternate internet with OpenNIC.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/opennic-internet) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 25b06e1a41d4138f0b03102099540a12cf2f3514 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Mon, 10 May 2021 09:29:56 +0800 Subject: [PATCH 149/170] Rename sources/tech/20210509 My first tech job- 8 stories from the community.md to sources/talk/20210509 My first tech job- 8 stories from the community.md --- .../20210509 My first tech job- 8 stories from the community.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sources/{tech => talk}/20210509 My first tech job- 8 stories from the community.md (100%) diff --git a/sources/tech/20210509 My first tech job- 8 stories from the community.md b/sources/talk/20210509 My first tech job- 8 stories from the community.md similarity index 100% rename from sources/tech/20210509 My first tech job- 8 stories from the community.md rename to sources/talk/20210509 My first tech job- 8 stories from the community.md From 1c5e40b2b181023563b93887bea9b40a1376665b Mon Sep 17 00:00:00 2001 From: "Qian.Sun" Date: Mon, 10 May 2021 10:39:21 +0800 Subject: [PATCH 150/170] translated "Configure WireGuard VPNs with NetworkManager" is translated by DCOLIVERSUN --- ...gure WireGuard VPNs with NetworkManager.md | 84 +++++++++---------- 1 file changed, 41 insertions(+), 43 deletions(-) rename {sources => translated}/tech/20210503 Configure WireGuard VPNs with NetworkManager.md (59%) diff --git a/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md b/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md similarity index 59% rename from sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md rename to translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md index aaa6fb1da0..11f01fb74c 100644 --- a/sources/tech/20210503 Configure WireGuard VPNs with NetworkManager.md +++ b/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md @@ -7,58 +7,56 @@ [#]: publisher: ( ) [#]: url: ( ) -Configure WireGuard VPNs with NetworkManager +用 NetworkManager 配置 WireGuard 虚拟私有网络 ====== ![wireguard][1] -Photo excerpted from [Thin Ethernet Ramble (TS 10:38)][2] by [High Treason][3] +照片由[High Treason][3]节选自[Thin Ethernet Ramble (TS 10:38)][2] -Virtual Private Networks (VPNs) are used extensively. Nowadays there are different solutions available which allow users access to any kind of resource while maintaining their confidentiality and privacy. +虚拟私有网络Virtual Private Networks应用广泛。如今有各种方案可供使用,用户可通过这些方案访问任意类型的资源,同时保持其机密性与隐私性。 -Lately, one of the most commonly used VPN protocols is WireGuard because of its simplicity, speed and the security it offers. WireGuard’s implementation started in the Linux kernel but currently it is available in other platforms such as iOS and Android among others. +最近,WireGuard 因为其简单性、速度与安全性成为最广泛使用的虚拟私有网络协议之一。WireGuard 最早应用于 Linux 内核,但目前可以用在其他平台,例如 iOS、Android 等。 -WireGuard uses UDP as its transport protocol and it bases the communication between peers upon Critokey Routing (CKR). Each peer, either server or client, has a pair of keys (public and private) and there is a link between public keys and allowed IPs to communicate with. For further information about WireGuard please visit its [page][4]. +WireGuard 使用 UDP 作为其传输协议,基于 Critokey Routing (CKR) 建立对等节点之间的通信。服务器或客户端的每一个对等节点都有一对密钥key(公钥与私钥),公钥与许可 IP 间建立通信连接。有关 WireGuard 更多信息请访问[主页][4]。 -This article describes how to set up WireGuard between two peers: PeerA and PeerB. Both nodes are running Fedora Linux and both are using NetworkManager for a persistent configuration. +本文描述了如何在两个对等方——PeerA 与 PeerB——间设置 WireGuard。两个节点均运行 Fedora Linux 系统,使用 NetworkManager 为持久性配置。 -## **WireGuard set up and networking configuration** +## **WireGuard 设置与网络配置** -You are only three steps away from having a persistent VPN connection between PeerA and PeerB: +在 PeerA 与 PeerB 之间建立持久性虚拟私有网络连接只需三步: - 1. Install the required packages. - 2. Generate key pairs. - 3. Configure the WireGuard interfaces. + 1. 安装所需软件包。 + 2. 生成密钥对key pair。 + 3. 配置 WireGuard 接口。 +### **安装** - -### **Installation** - -Install the _wireguard-tools_ package on both peers (PeerA and PeerB): +在两个对等节点(PeerA 与 PeerB)上安装 _wireguard-tools_ 软件包: ``` $ sudo -i # dnf -y install wireguard-tools ``` -This package is available in the Fedora Linux updates repository. It creates a configuration directory at _/etc/wireguard/_. This is where you will create the keys and the interface configuration file. +这个包可以从 Fedora Linux 更新库中找到。它在 _/etc/wireguard/_ 中创建一个配置目录。在这里你将创建密钥和接口配置文件。 -### **Generate the key pairs** +### **生成密钥对** -Next, use the _wg_ utility to generate both public and private keys on each node: +现在,使用 _wg_ 工具在每个节点上生成公钥与私钥: ``` # cd /etc/wireguard # wg genkey | tee privatekey | wg pubkey > publickey ``` -### **Configure the WireGuard interface on PeerA** +### **在 PeerA 上配置 WireGuard 接口** -WireGuard interfaces use the names: _wg0_, _wg1_ and so on. Create the configuration for the WireGuard interface. For this, you need the following items: +WireGuard 接口命名规则为 _wg0_、_wg1_等等。完成下述步骤为 WireGuard 接口创建配置: - * The IP address and MASK you want to configure in the PeerA node. - * The UDP port where this peer listens. - * PeerA’s private key. + * PeerA 节点上配置想要的 IP 地址与 MASK。 + * 该节点监听的 UDP 端口。 + * PeerA 的私钥。 @@ -76,7 +74,7 @@ AllowedIPs = 172.16.1.2/32 EOF ``` -Allow UDP traffic through the port on which this peer will listen: +节点监听端口的许可 UDP 流量: ``` # firewall-cmd --add-port=60001/udp --permanent --zone=public @@ -84,14 +82,14 @@ Allow UDP traffic through the port on which this peer will listen: success ``` -Finally, import the interface profile into NetworkManager. As a result, the WireGuard interface will persist after reboots. +最后,将接口配置文件导入 NetworkManager。因此,WireGuard 接口在重启后将持续存在。 ``` # nmcli con import type wireguard file /etc/wireguard/wg0.conf Connection 'wg0' (21d939af-9e55-4df2-bacf-a13a4a488377) successfully added. ``` -Verify the status of device _wg0_: +验证 _wg0_ 的状态: ``` # wg @@ -130,16 +128,16 @@ IP6.GATEWAY: -- ------------------------------------------------------------------------------- ``` -The above output shows that interface _wg0_ is connected. It is now able to communicate with one peer whose VPN IP address is 172.16.1.2. +上述输出显示接口 _wg0_ 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.2 的对等节点通信。 -### Configure the WireGuard interface in PeerB +### 在 PeerB 上配置 WireGuard 接口 -It is time to create the configuration file for the _wg0_ interface on the second peer. Make sure you have the following: +现在可以在第二个对等节点上创建 _wg0_ 接口的配置文件了。确保你已经完成以下步骤: - * The IP address and MASK to set on PeerB. - * The PeerB’s private key. - * The PeerA’s public key. - * The PeerA’s IP address or hostname and the UDP port on which it is listening for WireGuard traffic. + * PeerB 节点上设置 IP 地址与 MASK。 + * PeerB 的私钥。 + * PeerA 的公钥 + * PeerA 的 IP 地址或主机名、监听 WireGuard 流量的 UDP 端口。 @@ -157,14 +155,14 @@ Endpoint = peera.example.com:60001 EOF ``` -The last step is about importing the interface profile into NetworkManager. As I mentioned before, this allows the WireGuard interface to have a persistent configuration after reboots. +最后一步是将接口配置文件导入 NetworkManager。如上所述,这一步是重启后保持 WireGuard 接口持续存在的关键。 ``` # nmcli con import type wireguard file /etc/wireguard/wg0.conf Connection 'wg0' (39bdaba7-8d91-4334-bc8f-85fa978777d8) successfully added. ``` -Verify the status of device _wg0_: +验证 _wg0_ 的状态: ``` # wg @@ -203,11 +201,11 @@ IP6.GATEWAY: -- ------------------------------------------------------------------------------- ``` -The above output shows that interface _wg0_ is connected. It is now able to communicate with one peer whose VPN IP address is 172.16.1.254. +上述输出显示接口 _wg0_ 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.254 的对等节点通信。 -### **Verify connectivity between peers** +### **验证节点间通信** -After executing the procedure described earlier both peers can communicate to each other through the VPN connection as demonstrated in the following ICMP test: +完成上述步骤后,两个对等节点可以通过虚拟私有网络连接相互通信,以下是 ICMP 测试结果: ``` [root@peerb ~]# ping 172.16.1.254 -c 4 @@ -218,13 +216,13 @@ PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data. 64 bytes from 172.16.1.254: icmp_seq=4 ttl=64 time=1.47 ms ``` -In this scenario, if you capture UDP traffic on port 60001 on PeerA you will see the communication relying on WireGuard protocol and the encrypted data: +在这种情况下,如果你在 PeerA 端口 60001 上捕获 UDP 通信,则将看到依赖 WireGuard 协议的通信过程和加密的数据: -![Capture of UDP traffic between peers relying on WireGuard protocol][5] +![捕获依赖 WireGuard 协议的节点间 UDP 流量][5] -## Conclusion +## 总结 -Virtual Private Networks (VPNs) are very common. Among a wide variety of protocols and tools for deploying a VPN, WireGuard is a simple, lightweight and secure choice. It allows secure point-to-point connections between peers based on CryptoKey routing and the procedure is very straight-forward. In addition, NetworkManager supports WireGuard interfaces allowing persistent configurations after reboots. +虚拟私有网络很常见。在用于部署虚拟私有网络的各种协议和工具中,WireGuard 是一种简单、轻巧和安全的选择。它可以基于 CryptoKey Routing 的对等节点间建立安全的点对点通信point-to-point connection>,过程非常简单。此外,NetworkManager 支持 WireGuard 接口,允许重启后进行持久配置。 -------------------------------------------------------------------------------- @@ -232,7 +230,7 @@ via: https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/ 作者:[Maurizio Garcia][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[DCOLIVERSUN](https://github.com/DCOLIVERSUN) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From eed33ade0d7ba9af093773a86fc1f6ba5f30446f Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 11:06:07 +0800 Subject: [PATCH 151/170] PRF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @Kevin3599 翻译时请忠实原文意思,可以再细心些。 --- ... Linux Apps In Windows Is Now A Reality.md | 115 +++++++----------- 1 file changed, 47 insertions(+), 68 deletions(-) diff --git a/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md index a8d026bb86..8b8039ee26 100644 --- a/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md +++ b/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md @@ -2,116 +2,102 @@ [#]: via: (https://news.itsfoss.com/linux-gui-apps-wsl/) [#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) [#]: collector: (lujun9972) -[#]: translator: (Kevin3599 ) -[#]: reviewer: ( ) +[#]: translator: (Kevin3599) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -在Windows中运行基于Linux的应用程序已经成为现实 +在 Windows 中运行基于 Linux 的应用程序已经成为现实 ====== -当微软在2016年发布“Windows subsystem for Linux”也就是WSL的时候显然有夸大宣传的嫌疑,当时人们梦想着无需重启就可以同时运行基于Windows和Linux的应用程序,令人可惜的是,WSL只能运行Linux终端程序。 +> 微软宣布对其 WSL 进行重大改进,使你能够轻松地运行 Linux 图形化应用程序。 -去年,微软再次尝试去颠覆Windows的应用生态,这一次,他们替换了老旧的虚拟核心,转而使用了真正的Linux核心,这使得用户可以同时运行Linux和Windows程序。 [Linux apps in Windows][2]. +![](https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/linux-apps-windows.png?w=1200&ssl=1) -### 有关WSL用户界面的最初展示 +当微软在 2016 年发布 “Windows subsystem for Linux”(也就是 WSL)的时候显然有夸大宣传的嫌疑,当时人们梦想着无需重启就可以同时运行基于 Windows 和 Linux 的应用程序,令人可惜的是,WSL 只能运行 Linux 终端程序。 -![][3] +去年,微软再次尝试去颠覆 Windows 的应用生态,这一次,他们替换了老旧的模拟核心,转而使用了真正的 Linux 核心,这一变化使你可以 [在 Windows 中运行 Linux 应用程序][2]。 -从技术上讲,用户确实获得了WSL上对Linux GUI应用程序的支持,但仅限于使用第三方X窗口系统时。这通常是不稳定的,缓慢的,难以设置的,并且使人们有隐私方面的顾虑。 +### WSL 图形化应用的初步预览 -结果是小部分Linux爱好者(碰巧运行Windows),他们具有设置X窗口系统的能力。但是,这些爱好者对硬件加速的缺失感到失望。 +![https://youtu.be/f8_nvJzuaSU](https://img.linux.net.cn//static/video/Introducing%20Linux%20GUI%20apps%20running%20on%20Windows%20using%20the%20Windows%20Subsystem%20for%20Linux%20%28WSL%29-f8_nvJzuaSU.mp4) -所以,较为明智的方法是在WSL上只运行基于命令行的程序。 +从技术上讲,用户最初确实在 WSL 上获得了对 Linux 图形化应用程序的支持,但仅限于使用第三方 X 服务器时。这通常是不稳定的、缓慢、难以设置,并且使人们有隐私方面的顾虑。 -**但是现在这个问题得到了改善** [现在,微软官方宣布了对图形化的Linux应用程序的支持,][4] 我们很快就能够享受硬件加速了, -### 面向大众的Linux GUI应用程序:WSLg +结果是小部分 Linux 爱好者(碰巧运行 Windows),他们具有设置 X 服务器的能力。但是,这些爱好者对没有硬件加速支持感到失望。 + +所以,较为明智的方法是在 WSL 上只运行基于命令行的程序。 + +**但是现在这个问题得到了改善**。现在,微软 [正式支持][4] 了 Linux 图形化应用程序,我们很快就能够享受硬件加速了, + +### 面向大众的 Linux 图形化应用程序:WSLg ![图片来源:Microsoft Devblogs][5] -随着微软发布新的WSL,有了一系列巨大的改进,它们包括: +随着微软发布新的 WSL,有了一系列巨大的改进,它们包括: - * GPU硬件加速 + * GPU 硬件加速 * 开箱即用的音频和麦克风支持 - * 自动启用X图形界面和 Pulse Audio服务 + * 自动启用 X 服务器和 Pulse 音频服务 +有趣的是,开发者们给这个功能起了一个有趣的外号 “WSLg”。 -有趣的是,开发者们给这个功能起了一个有趣的外号“WSLg” +这些功能将使在 WSL 上运行 Linux 应用程序几乎与运行原生应用程序一样容易,同时无需占用过多性能资源。 -这些功能将使在WSL上运行Linux应用程序几乎与运行原生应用程序一样容易,同时无需占用过多性能资源。 +因此,你可以尝试运行 [自己喜欢的 IDE][6]、特定于 Linux 的测试用例以及诸如 [CAD][7] 之类的各种软件。 -因此,您可以尝试运行 [自己喜欢的IDE][6], 特定于Linux的测试用例以及诸如CAD之类的各种软件 [CAD][7]. - -#### 在Linux应用下的GPU硬件加速。 +#### Linux 应用的 GPU 硬件加速 ![图片鸣谢:Microsoft Devblogs][8] -以前在Windows上运行GUI Linux程序的最大问题之一是它们无法使用硬件加速。当用户尝试移动窗口并执行需要对GPU性能有要求的任务时候它常常陷入缓慢卡顿的局面。 +以前在 Windows 上运行图形化 Linux 程序的最大问题之一是它们无法使用硬件加速。当用户尝试移动窗口和执行任何需要对 GPU 性能有要求的任务时候,它常常陷入缓慢卡顿的局面。 -根据微软发布的宣发: +根据微软发布的公告: -> “作为此次更新的一部分,我们也启用了对3D图形的GPU加速支持,多亏了Mesa 21.0,所有的复杂3D渲染的应用程序都可以利用OpenGL在Windows 10上使用GPU为这些应用程序提供硬件加速。” -> -这是一个相当实用的改进,这对用户在WSL下运行需求强大GPU性能的应用程序提供了莫大帮助。 +> “作为此次更新的一部分,我们也启用了对 3D 图形的 GPU 加速支持,多亏了 Mesa 21.0 中完成的工作,所有的复杂 3D 渲染的应用程序都可以利用 OpenGL 在 Windows 10 上使用 GPU 为这些应用程序提供硬件加速。” + +这是一个相当实用的改进,这对用户在 WSL 下运行需求强大 GPU 性能的应用程序提供了莫大帮助。 #### 开箱即用的音频和麦克风支持! -如果想要良好的并行Windows和Linux程序,好的麦克风支持是必不可少的,随着新的WSL发布,音频支持时开箱即用的,这都要归功于随着X图形界面一同启用的pulse Audio服务。 +如果想要良好的并行 Windows 和 Linux 程序,好的音频支持是必不可少的,随着新的 WSL 发布,音频得到开箱即用的支持,这都要归功于随着 X 服务器一同启动的 Pulse 音频服务。 -如果想要良好的并行Windows和Linux程序,好的麦克风支持是必不可少的,随着新的WSL发布,音频支持时开箱即用的,这都要归功于随着X图形界面一同启用的pulse Audio服务。 +微软解释说: -> “WSL上的Linux GUI应用程序还将包括开箱即用的音频和麦克风支持。这一令人兴奋的改进将使您的应用程序可以播放音频提示并调用麦克风,适合构建,测试或使用电影播放器,应用程序等。” +> “WSL 上的 Linux 图形化应用程序还将包括开箱即用的音频和麦克风支持。这一令人兴奋的改进将使你的应用程序可以播放音频提示并调用麦克风,适合构建、测试或使用电影播放器、电信应用程序等。” -如果我们希望Linux变得更加普及,这是一项关键功能。这也将允许Windows应用的开发人员更好地将其应用移植到Linux。 +如果我们希望 Linux 变得更加普及,这是一项关键功能。这也将允许 Windows 应用的开发人员更好地将其应用移植到 Linux。 -####自动启动所有必需的服务 +#### 自动启动所有必需的服务器 ![图片鸣谢:Microsoft Devblogs][9] -以前,您必须先手动启动 [PulseAudio][10] 和 [X 图形界面][11] 然后才能运行应用程序。现在,Microsoft已实添加一项功能,该功能可以检查Linux应用程序是否正在运行,然后自动启动所需的服务。 +以前,你必须先手动启动 [PulseAudio][10] 和 [X 服务器][11],然后才能运行应用程序。现在,微软已经实现了一项服务,可以检查 Linux 应用程序是否正在运行,然后自动启动所需的服务器。 -这允许用户更容易在Windows上运行Linux应用程序 +这使得用户更容易在 Windows 上运行 Linux 应用程序。 -微软声称这些改动会显著提升用户体验. +微软声称这些改动会显著提升用户体验。 -> “借助此功能,我们将启动一个配套发行版,其中包含Wayland,X桌面,音频服务以及使Linux GUI应用程序与Windows并行所需的所有功能。使用完GUI应用程序并终止WSL分发后,系统发行版也会自动结束其进程。” +> “借助此功能,我们将启动一个配套的系统分发包,其中包含 Wayland、X 服务器、Pulse 音频服务以及使 Linux 图形化应用程序与 Windows 通信所需的所有功能。使用完图形化应用程序并终止 WSL 发行版后,系统分发包也会自动结束其会话。” -这些组件的结合使运行Linux GUI应用程序与常规Windows程序并行运行更为简单。 +这些组件的结合使 Linux 图形化应用程序与常规 Windows 程序并行运行更为简单。 ### 总结 -有了这些新功能,微软似乎正在竭尽全力使Linux应用程序在Windows上运行。随着越来越多的用户在Windows上运行Linux应用程序,我们可能会看到更多的用户转向Linux。特别是因为他们习惯的应用程序能够运行。 +有了这些新功能,微软似乎正在竭尽全力使 Linux 应用程序在 Windows 上运行。随着越来越多的用户在 Windows 上运行 Linux 应用程序,我们可能会看到更多的用户转向 Linux。特别是因为他们习惯的应用程序能够运行。 -如果这种做法取得了成功(并且微软几年后仍未将其雪藏),它将结束为期5年的试图将Linux应用程序移植入Windows的过程。如果您想了解更多信息,可以查看 [发行说明][12]. +如果这种做法取得了成功(并且微软几年后仍未将其雪藏),它将结束 5 年来对将 Linux 应用引入 Windows 的探索。如果你想了解更多信息,可以查看 [发行公告][12]。 -_你对Linux软件移植入Windows怎么看?请在下面留下你的评论。_ +你对在 Windows 上运行 Linux 图形化应用程序怎么看?请在下面留下你的评论。 -#### BIG科技网站获得数百万美元的收入,这是FOSS的消息! - -如果您喜欢我们在FOSS上的文章,请考虑捐款以支持我们的独立出版物。您的支持将帮助我们继续发布针对台式机Linux和开源软件的内容。 - -我对此不感兴趣 - -#### _有关的_ - - * [Linux Mint 20.1现在可以下载,这是此发行版中的9个新功能] [13] - *![] [14]![Linux Mint 20.1] [15] - - - * [Linux在游戏方面取得的进步简直令人难以置信:Lutris Creator] [16] - *![] [14]![] [17] - - - * [KDE Plasma 5.21,Linux 5.11和更多更改中的Nitrux 1.3.8发布包] [18] - *![] [14]![] [19] -------------------------------------------------------------------------------- via: https://news.itsfoss.com/linux-gui-apps-wsl/ 作者:[Jacob Crume][a] 选题:[lujun9972][b] -译者:[Kevin3599](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) +译者:[Kevin3599](https://github.com/Kevin3599) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -121,18 +107,11 @@ via: https://news.itsfoss.com/linux-gui-apps-wsl/ [2]: https://itsfoss.com/run-linux-apps-windows-wsl/ [3]: https://i0.wp.com/i.ytimg.com/vi/f8_nvJzuaSU/hqdefault.jpg?w=780&ssl=1 [4]: https://devblogs.microsoft.com/commandline/the-initial-preview-of-gui-app-support-is-now-available-for-the-windows-subsystem-for-linux-2/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ0MScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[5]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/gedit-wsl-gui.png?w=800&ssl=1 [6]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ [7]: https://itsfoss.com/cad-software-linux/ -[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ0NScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ0MCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= +[8]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/gpu-acceleration-wsl.png?w=800&ssl=1 +[9]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/wslg-architecture.png?w=800&ssl=1 [10]: https://www.freedesktop.org/wiki/Software/PulseAudio/ [11]: https://x.org/wiki/ [12]: https://blogs.windows.com/windows-insider/2021/04/21/announcing-windows-10-insider-preview-build-21364/ -[13]: https://news.itsfoss.com/linux-mint-20-1-release/ -[14]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[15]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/linux-mint-20-1.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[16]: https://news.itsfoss.com/lutris-creator-interview/ -[17]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/lutris-interview-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[18]: https://news.itsfoss.com/nitrux-1-3-8-release/ -[19]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/nitrux-1-3-8.png?fit=1200%2C675&ssl=1&resize=350%2C200 From dcda3220a9234f786711d560dee1e7b4aa5e78ea Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 11:06:33 +0800 Subject: [PATCH 152/170] PUB @Kevin3599 https://linux.cn/article-13376-1.html --- ...20210422 Running Linux Apps In Windows Is Now A Reality.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/news => published}/20210422 Running Linux Apps In Windows Is Now A Reality.md (98%) diff --git a/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md b/published/20210422 Running Linux Apps In Windows Is Now A Reality.md similarity index 98% rename from translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md rename to published/20210422 Running Linux Apps In Windows Is Now A Reality.md index 8b8039ee26..b28e1eb194 100644 --- a/translated/news/20210422 Running Linux Apps In Windows Is Now A Reality.md +++ b/published/20210422 Running Linux Apps In Windows Is Now A Reality.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (Kevin3599) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13376-1.html) 在 Windows 中运行基于 Linux 的应用程序已经成为现实 ====== From 51f922e77031a8018072c0155129ea4d28bc63e7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 11:39:15 +0800 Subject: [PATCH 153/170] PRF --- ...o Control All Your RGB Lighting Settings.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md index 450a16d320..8344949edb 100644 --- a/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md +++ b/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md @@ -3,14 +3,16 @@ [#]: author: (Ankush Das https://itsfoss.com/author/ankush/) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -一个控制所有 RGB 灯光设置的开源应用 +OpenRGB:一个控制所有 RGB 灯光设置的开源应用 ====== -**_简介_:**_OpenRGB 是一个有用的开源工具,可以一个工具管理所有的 RGB 灯光。让我们来了解一下它。_ +> OpenRGB 是一个有用的开源工具,可以一个工具管理所有的 RGB 灯光。让我们来了解一下它。 + +![](https://img.linux.net.cn/data/attachment/album/202105/10/113851zqod756ft373tz36.jpg) 无论是你的键盘、鼠标、CPU 风扇、AIO,还是其他连接的外围设备或组件,Linux 都没有官方软件支持来控制 RGB 灯光。 @@ -20,7 +22,7 @@ ![][1] -是的,你可能会找到不同的工具来调整设置,如 **Piper** 专门[在 Linux 上配置游戏鼠标][2]。但是,如果你有各种组件或外设,要把它们都设置成你喜欢的 RGB 颜色,那将是一件很麻烦的事情。 +是的,你可能会找到不同的工具来调整设置,如 **Piper** 专门 [在 Linux 上配置游戏鼠标][2]。但是,如果你有各种组件或外设,要把它们都设置成你喜欢的 RGB 颜色,那将是一件很麻烦的事情。 OpenRGB 是一个令人印象深刻的工具,它不仅专注于 Linux,也可用于 Windows 和 MacOS。 @@ -44,8 +46,6 @@ OpenRGB 是一个令人印象深刻的工具,它不仅专注于 Linux,也可 * 查看设备信息 * 连接 OpenRGB 的多个实例,在多台电脑上同步灯光 - - ![][4] 除了上述所有的特点外,你还可以很好地控制照明区域、色彩模式、颜色等。 @@ -58,9 +58,9 @@ OpenRGB 是一个令人印象深刻的工具,它不仅专注于 Linux,也可 官方网站应该也可以让你下载其他平台的软件包。但是,如果你想探索更多关于它的信息或自己编译它,请前往它的 [GitLab 页面][8]。 -[OpenRGB][9] +- [OpenRGB][9] -### 最后感想 +### 总结 尽管我没有很多支持 RGB 的设备/组件,但我可以成功地调整我的罗技 G502 鼠标。 @@ -75,7 +75,7 @@ via: https://itsfoss.com/openrgb/ 作者:[Ankush Das][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 5db5a788da681b876856127679c325d1a620be14 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 11:39:59 +0800 Subject: [PATCH 154/170] PUB @geekpi https://linux.cn/article-13377-1.html --- ...en-Source App to Control All Your RGB Lighting Settings.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md (98%) diff --git a/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md b/published/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md similarity index 98% rename from translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md rename to published/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md index 8344949edb..b9a5ec566e 100644 --- a/translated/tech/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md +++ b/published/20210427 An Open-Source App to Control All Your RGB Lighting Settings.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13377-1.html) OpenRGB:一个控制所有 RGB 灯光设置的开源应用 ====== From f01146a6a9748f23c910527bab1b6d5506d419e7 Mon Sep 17 00:00:00 2001 From: HuengchI <37769009+HuengchI@users.noreply.github.com> Date: Mon, 10 May 2021 14:42:38 +0800 Subject: [PATCH 155/170] Update 20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md --- ...k Change in Linux- Here-s How to Fix it.md | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md index 3c44d5a588..5617e3a729 100644 --- a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md +++ b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md @@ -1,58 +1,58 @@ -[#]: subject: (Chrome Browser Keeps Detecting Network Change in Linux? Here’s How to Fix it) -[#]: via: (https://itsfoss.com/network-change-detected/) -[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/) -[#]: collector: (lujun9972) -[#]: translator: (HuengchI) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: subject: "Chrome Browser Keeps Detecting Network Change in Linux? Here’s How to Fix it" +[#]: via: "https://itsfoss.com/network-change-detected/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lujun9972" +[#]: translator: "HuengchI" +[#]: reviewer: " " +[#]: publisher: " " +[#]: url: " " -Chrome Browser Keeps Detecting Network Change in Linux? Here’s How to Fix it +Linux下Chrome 浏览器一直报"detected a network change"错?修复方法来了 ====== -For the past several days, I faced a strange issue in my system running Ubuntu Linux. I use Firefox and [Brave browsers][1]. Everything was normal in Firefox but Brave keeps on detecting a network change on almost every refresh. +过去几天,我在Ubuntu Linux系统上遇到了一个奇怪的问题。我用的是Firefox浏览器和[Brave 浏览器][1]。Brave浏览器一直报"network change detection"错误,几乎每次刷新都报错,但是在Firefox浏览器中一切正常。 ![][2] -This went on to the extent that it became impossible to use the browser. I could not use [Feedly][3] to browse feeds from my favorite websites, every search result ends in multiple refresh, websites needed to be refreshed multiple times as well. +这个问题严重到了几乎不能使用浏览器的地步。我不能用[Feedly][3] 来从我最喜欢的网站浏览电视节目,每次搜索都导致多次刷新,网站也需要多次刷新。 -As an alternative, I tried [installing Chrome on Ubuntu][4]. The problem remained the same. I [installed Microsoft Edge on Linux][5] and yet, the problem persisted there as well. Basically, any Chromium-based browser keep encountering the ERR_NETWORK_CHANGED error. +作为替代,我尝试[在Ubuntu上安装Chrome浏览器][4]。但是问题依然存在。我还[在Linux上安装了Microsoft Edge][5],但是问题依旧。基本上,任何Chromium内核的浏览器都会持续报"ERR_NETWORK_CHANGED"错。 -Luckily, I found a way to fix the issue. I am going to share the steps with you so that it helps you if you are also facing the same problem. +幸运地是,我找到了一个方法来修复这个问题。我将会把解决步骤分享给你,如果你也遇到了同样的问题,这将能够帮到你。 -### Fixing frequent network change detection issues in Chromium based browsers +### 解决基于Chromium内核的浏览器频繁报"network change detection"错的问题 -The trick that worked for me was to disable IPv6 in the network settings. Now, I am not sure why this happens but I know that IPv6 is known to create network problems in many systems. If your system, router and other devices use IPv6 instead of the good old IPv4, you may encounter network connection issues like the one I encountered. +对我而言,关闭网络设置中的IPv6是一个有效的诀窍。虽然现在我还不确定是什么导致了这个故障,但是IPv6会在很多系统中导致错误并不是什么鲜为人知的事。如果你的系统,路由器和其他设备用了IPv6而不是古老却优秀的IPv4,那么你就可能遭遇和我相同的网络连接故障。 -Thankfully, it is not that difficult to [disable IPv6 in Ubuntu][6]. There are several ways to do that and I am going to share the easiest method perhaps. This method uses GRUB to disable IPv6. +幸亏,[关闭Ubuntu的IPv6][6]并不算难。有好几种方法都能够达到目的,我将会分享一个大概是最容易的方法。这个方法就是用GRUB来关闭IPV6。 -Attention Beginners! +新手注意! -If you are not too comfortable with the command line and terminal, please pay extra attention on the steps. Read the instructions carefully. +如果你不习惯于用命令行和终端,请额外注意这些步骤。仔细的阅读这些操作说明。 -#### Step 1: Open GRUB config file for editing +#### 第1步:打开GRUB配置文件以供编辑 -Open the terminal. Now use the following command to edit the GRUB config file in Nano editor. You’ll have to enter your account’s password. +打开终端。用下面的命令来在Nano编辑器中打开GRUB配置文件。这里你需要输入你的账户密码。 ``` sudo nano /etc/default/grub ``` -I hope you know a little bit about [using Nano editor][7]. Use the arrow keys to go to the line starting with GRUB_CMDLINE_LINUX. Make its value look like this: +我希望你懂得一点[使用Nano编辑器][7]的方法。使用方向键移动光标,找到以GRUB_CMDLINE_LINUX开头的这行。把它的值修改成这样: ``` GRUB_CMDLINE_LINUX="ipv6.disable=1" ``` -Be careful of the inverted commas and spaces. Don’t touch other lines. +注意引号和空格。不要动其他行。 ![][8] -Save your changes by using the Ctrl+x keys. It will ask you to confirm the changes. Press Y or enter when asked. +使用Ctrl+x快捷键保存更改。按Y或者回车确认。 -#### Step 2: Update grub +#### 第2步:更新grub -You have made changes to the GRUB bootloader configuration. These changes won’t be taken into account until you update grub. Use the command below for that: +你已经修改了GRUB引导器的配置,但是在你更新grub之前这些更改都不会生效。使用下面的命令来更新grub: ``` sudo update-grub @@ -60,13 +60,13 @@ sudo update-grub ![][9] -Now when you restart your system, IPv6 will be disabled for your networks. You should not encounter the network interruption issue anymore. +现在当你重启系统之后,IPV6将会被关闭了。你不应该再遇到网络中断的故障了。 -You may think why I didn’t mention disabling IPv6 from the network settings. It’s because Ubuntu uses [Netplan][10] to manage network configuration these days and it seems that changes in Network Manager are not fully taken into account by Netplan. I tried it but despite IPv6 being disabled in the Network Manager, the problem didn’t go away until I used the command line method. +你可能会想为什么我没提从网络设置中关掉IPv6。这是因为目前Ubuntu用了[Netplan][10]来管理网络配置,似乎在网络设置中做出的更改并没有被完全应用到Netplan中。我试过虽然在网络设置中关掉了IPv6,但是这个问题并没有被解决,直到我用了上述命令行的方法。 -Even after so many years, IPv6 support has not matured and it keeps causing trouble. Disabling IPv6 sometimes [improve WiFi speed in Linux][11]. Weird, I know. +即使过了这么多年,IPv6的支持还是没有成熟,并且持续引发了很多故障。关闭IPv6有时候能[提高Linux下的WIFI速度][11]。够扯吧? -Anyway, I hope this trick helps you with the network change detection issue in your system as well. +不管怎样,我希望上述小方法也能够帮助你解决系统中的"network change detection"故障。 -------------------------------------------------------------------------------- @@ -74,7 +74,7 @@ via: https://itsfoss.com/network-change-detected/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) +译者:[HuengchI](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 63d70c9655cd32c2f6866860733fdecc7356f830 Mon Sep 17 00:00:00 2001 From: HuengchI <37769009+HuengchI@users.noreply.github.com> Date: Mon, 10 May 2021 14:43:06 +0800 Subject: [PATCH 156/170] Update 20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md --- ...s Detecting Network Change in Linux- Here-s How to Fix it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md index 5617e3a729..c8130b9205 100644 --- a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md +++ b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md @@ -74,7 +74,7 @@ via: https://itsfoss.com/network-change-detected/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] -译者:[HuengchI](https://github.com/译者ID) +译者:[HuengchI](https://github.com/HuengchI) 校对:[校对者ID](https://github.com/校对者ID) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 49606cf2694501f4b48401ac33593d2d39cd7eae Mon Sep 17 00:00:00 2001 From: HuengchI <37769009+HuengchI@users.noreply.github.com> Date: Mon, 10 May 2021 14:43:54 +0800 Subject: [PATCH 157/170] Update 20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md --- ...s Detecting Network Change in Linux- Here-s How to Fix it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md index c8130b9205..cc73375df7 100644 --- a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md +++ b/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md @@ -64,7 +64,7 @@ sudo update-grub 你可能会想为什么我没提从网络设置中关掉IPv6。这是因为目前Ubuntu用了[Netplan][10]来管理网络配置,似乎在网络设置中做出的更改并没有被完全应用到Netplan中。我试过虽然在网络设置中关掉了IPv6,但是这个问题并没有被解决,直到我用了上述命令行的方法。 -即使过了这么多年,IPv6的支持还是没有成熟,并且持续引发了很多故障。关闭IPv6有时候能[提高Linux下的WIFI速度][11]。够扯吧? +即使过了这么多年,IPv6的支持还是没有成熟,并且持续引发了很多故障。比如关闭IPv6有时候能[提高Linux下的WIFI速度][11]。够扯吧? 不管怎样,我希望上述小方法也能够帮助你解决系统中的"network change detection"故障。 From 5d812ddea460d00e60be3bbfd1c9d4deb8435ab6 Mon Sep 17 00:00:00 2001 From: HuengchI <37769009+HuengchI@users.noreply.github.com> Date: Mon, 10 May 2021 14:51:34 +0800 Subject: [PATCH 158/170] Rename sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md to translated/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md --- ...eps Detecting Network Change in Linux- Here-s How to Fix it.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sources => translated}/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md (100%) diff --git a/sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md b/translated/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md similarity index 100% rename from sources/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md rename to translated/tech/20210501 Chrome Browser Keeps Detecting Network Change in Linux- Here-s How to Fix it.md From b4c041a797406d48c535977e2fdd5353e7895bde Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 23:13:36 +0800 Subject: [PATCH 159/170] =?UTF-8?q?=E8=BF=87=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... Access Proton Calendar (beta) for Free.md | 96 ------------- ...nswer to Microsoft-s Visual Studio Code.md | 128 ----------------- ...ng News Surrounding Youtube-dl Takedown.md | 132 ------------------ ...0, Linux Kernel 5.11, and a New i3 Spin.md | 118 ---------------- 4 files changed, 474 deletions(-) delete mode 100644 sources/news/20210415 ProtonMail Users can Now Access Proton Calendar (beta) for Free.md delete mode 100644 sources/news/20210416 Kate Editor Set to Become KDE-s Answer to Microsoft-s Visual Studio Code.md delete mode 100644 sources/news/20210422 Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown.md delete mode 100644 sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md diff --git a/sources/news/20210415 ProtonMail Users can Now Access Proton Calendar (beta) for Free.md b/sources/news/20210415 ProtonMail Users can Now Access Proton Calendar (beta) for Free.md deleted file mode 100644 index e5f0496b16..0000000000 --- a/sources/news/20210415 ProtonMail Users can Now Access Proton Calendar (beta) for Free.md +++ /dev/null @@ -1,96 +0,0 @@ -[#]: subject: (ProtonMail Users can Now Access Proton Calendar (beta) for Free) -[#]: via: (https://news.itsfoss.com/protoncalendar-beta-free/) -[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -ProtonMail Users can Now Access Proton Calendar (beta) for Free -====== - -[ProtonMail][1] is one of the [best secure email services][2] out there. While alternatives like [Tutanota][3] already offer a calendar feature, ProtonMail did not offer it for all the users. - -The calendar feature (in beta) was limited to paid users. Recently, in an [announcement][4], ProtonMail has made it accessible for all users for free. - -It is worth noting that it is still in beta but accessible to more users. - -### Try Proton Calendar beta - -Proton Calendar is a feature integrated with ProtonMail itself. However, you get a separate mobile app if you want to use it on Android. No signs of an iOS app yet. - -If you are already using the **[beta.protonmail.com][5]** portal when accessing through your web browser, you can navigate your way to Proton Calendar as shown below: - -![][6] - -In either case, you can simply head to [Proton Calendar page][7] (calendar.protonmail.com) and log in to access it. - -They should also add the selector menu to the main ProtonMail version, but unfortunately, it is only available on the beta portal for now. - -As per the announcement, the features available with Proton Calendar right now are: - - * Create, edit, and delete events across devices - * Set reminders - * Send and respond to event invitations (web only for now) - * Set up recurring events annually, monthly, weekly, daily, or on an interval of your choice - * Also available in dark mode - - - -You can also import events from your existing calendar if you are thinking to make a switch. Event invitations should work from both Google and Microsoft Calendars. - -Unlike other calendars, Proton Calendar utilizes end-to-end encryption to protect your events. So, only you know what events you have and the information regarding it. - -If you are curious to know the details behind how they protect your calendar data, you can refer to their [official blog post][8] about it. - -_Have you tried Proton Calendar yet? Is it as useful as Tutanota’s already existing calendar if you’ve tried it?_ - -![][9] - -I'm not interested - -#### _Related_ - - * [Gmail's Privacy Alternative ProtonMail Makes 'Undo Send' Feature Available for All Users][10] - * ![][11] ![ProtonMail undo send option][12] - - - * [Firefox Proton With Major Redesign Change is Coming Soon. Take a Look Before the Final Release][13] - * ![][11] ![][14] - - - * [ProtonVPN Adds 'NetShield' Feature to Block Malware, Scripts & Ads Online][15] - * ![][11] ![NetShield by ProtonVPN][16] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/protoncalendar-beta-free/ - -作者:[Ankush Das][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/ankush/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/recommends/protonmail/ -[2]: https://itsfoss.com/secure-private-email-services/ -[3]: https://tutanota.com/ -[4]: https://protonmail.com/blog/calendar-free-web-android/ -[5]: https://beta.protonmail.co -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1OScgd2lkdGg9JzI4NycgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://calendar.protonmail.com -[8]: https://protonmail.com/blog/protoncalendar-security-model/ -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[10]: https://news.itsfoss.com/protonmail-undo-send/ -[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/protonmail-undo-send.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[13]: https://news.itsfoss.com/firefox-proton-redesign/ -[14]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/firefox-proton-look-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[15]: https://news.itsfoss.com/protonvpn-netshield/ -[16]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/Netshield-by-ProtonVPN.png?fit=1200%2C675&ssl=1&resize=350%2C200 diff --git a/sources/news/20210416 Kate Editor Set to Become KDE-s Answer to Microsoft-s Visual Studio Code.md b/sources/news/20210416 Kate Editor Set to Become KDE-s Answer to Microsoft-s Visual Studio Code.md deleted file mode 100644 index b881262e10..0000000000 --- a/sources/news/20210416 Kate Editor Set to Become KDE-s Answer to Microsoft-s Visual Studio Code.md +++ /dev/null @@ -1,128 +0,0 @@ -[#]: subject: (Kate Editor Set to Become KDE’s Answer to Microsoft’s Visual Studio Code) -[#]: via: (https://news.itsfoss.com/kate/) -[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Kate Editor Set to Become KDE’s Answer to Microsoft’s Visual Studio Code -====== - -KDE has revealed some details on the upcoming 21.04 release of their Kate text editor, or KDE Advanced Text Editor. With this release comes a huge range of new features, such as a new HUD style command palette and improved search in files. - -To the Visual Studio Code users out there, this may seem familiar. Microsoft VS Code has had a similar style command palette for a long time, which Kate users (until now) had to leave out of their workflow. - -Some of the features I will be looking at in this article include: - - * **Integrated Git support** - * HUD style command palette - * Quick open with fuzzy matching - * Improved Search In Files - * Improved Language Server Protocol (LSP) support - - - -### Integrated Git Support – Finally! - -![][1] - -One of the biggest features of this update is the integrated git support. Although it has been possible to load git repositories in Kate for a while now, the new integrated git support allows you to checkout and create branches, stash stuff, stage your files for commit or diff, and do the commit and push afterward, **all without touching the terminal!** - -This is a huge improvement over the old way of using Kate’s built-in terminal to manage your repositories. - -Additionally, it opens up the ability to use git on the Windows version of Kate, which still doesn’t have the ability to access a command line (most likely due to the locked-down nature of it). - -This is a a huge feature, and I suspect that it will be welcomed by developers everywhere. - -### HUD Style Command Palette - -![][2] - -One of the key components of the VS Code workflow is the Command Palette. After waiting for years, this huge feature has finally been added to Kate. - -The Command Palette is possibly one of the most commonly used features in VS Code, and it has been one of the few things that have kept me using the aforementioned text editor. Now with the integration into Kate, I can happily switch, without worrying about a huge disruption to my workflow. - -### Quick Open (With Fuzzy Matching) - -![][3] - -A longtime feature of Kate, Quick Open hasn’t been improved all that much over the past few years. Now with the new 21.04 release, it is receiving a major overhaul, with things such as Fuzzy Matching and a new UI that aims to be more consistent with the Command Palette. - -The new UI is the result of a move to a more consistent design throughout Kate. Although minor, this change definitely is more eye-pleasing and helps improve the layout for those with larger screens. - -The fuzzy matching is also a welcome improvement. The Quick Open dialog used to use a wildcard filter for its top result, with direct matches to the search term being listed beneath it. The 21.04 release uses a new fuzzy matching algorithm, providing the best results at the top, with less likely results located at the bottom. - -The result of this is far more reliable results, which when combined with the new UI, provides a huge improvement to the user experience. - -### Improved Search in Files - -![][3] - -With the new release comes yet another welcome improvement: Better search in files. - -The search plugin got a major overhaul with much better result representation in the proper editor font and colors. It has also been improved in terms of speed, with a very noticeable performance jump. - -One way they achieved this is through parallelizing the search engine, allowing it to attempt to utilize all the available cores on the CPU. No longer does Kate need to hide behind Atom/VS Code! - -### Improved LSP Support - -![][4] - -For those unfamiliar with the term, LSP stands for Language Server Protocol. This is what’s responsible for the detection of code errors and warnings, go to definition/declaration capabilities, and symbol outlines. - -If you happen to be coding in one of the supported languages, it should be enabled out of the box, enabling Kate to be used similarly to a lightweight IDE. - -### Wrapping Up - -With this [upcoming new release][5], you can expect heaps of cool new features, each providing a better experience to the end-user. After a long wait, it seems that Kate is finally catching up with other [modern code editors like VS Code][6] in terms of features, with the added benefit of better integration into KDE Plasma desktop. - -The new release should arrive in within the next two weeks. Keep an eye out for it. - -![][7] - -I'm not interested - -#### _Related_ - - * [KDE Plasma 5.22 To Include New Adaptive Panel Opacity and Other Exciting Improvements][8] - * ![][9] ![][10] - - - * [KDE Plasma 5.21 Brings in a New Application Launcher, Wayland Support, and Other Exciting Additions][11] - * ![][9] ![][12] - - - * [Linux Release Roundup #21.12: 7-Zip, Vivaldi Browser 3.7, Audacity 3.0 and More New Releases][13] - * ![][9] ![Linux Release Roundups][14] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/kate/ - -作者:[Jacob Crume][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/jacob/ -[b]: https://github.com/lujun9972 -[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUwNycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUxMCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzNScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzM3Nycgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[5]: https://kate-editor.org/post/2021/2021-03-29-kate-21.04-feature-preview/ -[6]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/ -[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzI1MCcgd2lkdGg9Jzc1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[8]: https://news.itsfoss.com/kde-plasma-5-22-dev/ -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[10]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/kde-plasma-22-dev-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[11]: https://news.itsfoss.com/kde-plasma-5-21-release/ -[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/02/kde-plasma-5-21-feat.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[13]: https://news.itsfoss.com/linux-release-roundup-2021-12/ -[14]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 diff --git a/sources/news/20210422 Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown.md b/sources/news/20210422 Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown.md deleted file mode 100644 index 0ec6db98bb..0000000000 --- a/sources/news/20210422 Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown.md +++ /dev/null @@ -1,132 +0,0 @@ -[#]: subject: (Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown) -[#]: via: (https://news.itsfoss.com/youtube-dl-repo-fork/) -[#]: author: (Jacob Crume https://news.itsfoss.com/author/jacob/) -[#]: collector: (lujun9972) -[#]: translator: ( ) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Confusion Erupts Around Misleading News Surrounding Youtube-dl Takedown -====== - -In November 2020, [GitHub took down the Youtube-dl repository][1] after a complaint from the [RIAA][2]. This action caused a huge backlash within the open-source community, with many developers boycotting GitHub altogether. - -The RIAA claimed that [Youtube-dl][3] was using copyright-protection avoidance technologies, which resulted in immense criticism from multiple open-source organizations. In a surprise move, GitHub reinstated the repository several weeks later. - -![][4] - -To complement this reinstatement, they created a 1 million dollar takedown defense fund, designed to prevent situations like this in the future. - -### False News Surrounding Youtube-dl’s Forks - -![][5] - -Among the confusion caused by this takedown, some recent reports have surfaced claiming that forks of the Youtube-dl repository are still disabled. **This is not true**. If we look at the [list of forks,][6] we can see a huge list of repositories, with each one working as normal. - -Multiple sources reference [this repository][7], which has been taken down and has still not been reinstated by GitHub. However, it is not actually forked from the [official Youtube-dl repository][8]. Instead, this repository is based on an unofficial version of Youtube-dl and is not actually a Youtube-dl fork. - -This isn’t to say that GitHub is without blame, as they have still ignored this developer’s counternotice. However, this warrants nowhere near the amount of criticism GitHub has received because of this. - -### GitHub Working on Preventing a Situation Like This In The Future - -GitHub reinstated the Youtube-dl repository back then (and its forks), many were pleased to hear that they had also started work on preventing a situation like this in the future. Some of these initiatives include: - - * A 1,000,000 USD fund aimed to help developers fight DMCA notices - * Giving the option to developers to dispute the notice - * Requiring additional proof for part 1201 takedown notices - - - -#### New Fund to Fight DMCA Notices - -As a result of the community backlash GitHub received, they have invested one million USD into a fund designed to help developers fight unfair DMCA notices. According to the official [GitHub post:][9] - -> Developers who want to push back against unwarranted takedowns may face the risk of taking on personal liability and legal defense costs. To help them, GitHub will establish and donate $1M to a developer defense fund to help protect open source developers on GitHub from unwarranted DMCA Section 1201 takedown claims. - -GitHub - -Although providing legal support for open-source developers is not a new idea, GitHub providing this support directly is worth appreciating. - -If you are interested in other ways to get support with legal disputes over open-source software, you may want to look at the [SFLC][10] and [EFF][11]. If possible, it would also be great if you could support them whether that’s through donations of time or money. - -#### New Way For Developers To Dispute DMCA Notices - -Another way GitHub is working to improve its relationship with developers is through a new way to dispute takedown notices. This will improve the transparency between developers and the notice issuers, reducing the likelihood of another situation like this. - -> Every single credible 1201 takedown claim will be reviewed by technical experts, including (when appropriate) independent specialists retained by GitHub, to ensure that the project actually circumvents a technical protection measure as described in the claim. -> -> The claim will also be carefully scrutinized by legal experts to ensure that unwarranted claims or claims that extend beyond the boundaries of the DMCA are rejected. -> -> In the case where the claim is ambiguous, we will err on the side of the developer, and leave up the repository unless there is clear evidence of illegal circumvention. - -Yet again, it seems that GitHub is putting in a lot of effort to improve its policies on DMCA takedown notices. These improvements will definitely help with the number of false claims that are currently being accepted. - -#### More Proof Required for Future Part 1201 Notices - -For those without a background in law, Part 1201 DMCA Takedown Notices are a special kind of takedown notice used in cases where the offending party is using code designed to circumvent technical measures to protect copyrighted content. According to GitHub: - -> Section 1201 dates back to the late 1990s and did not anticipate the various implications it has for software use today. As a result, Section 1201 makes it illegal to use or distribute technology (including source code) that bypasses technical measures that control access or copying of copyrighted works, even if that technology can be used in a way that would not be copyright infringement. - -GitHub has now changed its policies so that anyone issuing a part 1201 notice must include additional evidence. This is beneficial to all involved parties as it means that most of the illegitimate claims will be void anyway. - -### Wrapping Up - -With the huge mess, this situation has created, I believe GitHub handled this as well as they reasonably could have. Additionally, it brought to light many legal issues surrounding part 1201 notices, which are being remedied right now. - -Overall, the outcome of this has actually been positive, with a huge step in the right direction in developer rights. Amidst the rumors and fake news that has been circling lately, I think it is important to recognize the changes that have been made, and what they mean for the future of open-source software. - -_What are your thoughts on the removal of Youtube-dl and then reinstating it? Let me know in the comments below!_ - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [PHP Repository Moves to GitHub After its Git Server Was Hacked][12] - * ![][13] ![][14] - - - * [10 Biggest Linux Stories of the Year 2020 [That Made the Biggest Impact]][15] - * ![][13] ![Biggest Linux Stories][16] - - - * [After Rocky Linux, We Have Another RHEL Fork in Works to Replace CentOS][17] - * ![][13] ![CloudLinux][18] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/youtube-dl-repo-fork/ - -作者:[Jacob Crume][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/jacob/ -[b]: https://github.com/lujun9972 -[1]: https://itsfoss.com/youtube-dl-github-takedown/ -[2]: https://www.riaa.com/ -[3]: https://youtube-dl.org/ -[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQzOCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzM3NScgd2lkdGg9Jzc0MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: https://github.com/ytdl-org/youtube-dl/network/members -[7]: https://github.com/spookyahell/youtube-dl -[8]: https://github.com/ytdl-org/youtube-dl -[9]: https://github.blog/2020-11-16-standing-up-for-developers-youtube-dl-is-back/ -[10]: https://softwarefreedom.org/donate/ -[11]: https://www.eff.org/ -[12]: https://news.itsfoss.com/php-repository-github/ -[13]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[14]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/php-github-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[15]: https://news.itsfoss.com/biggest-linux-stories-2020/ -[16]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/biggest-linux-stories-2020.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 -[17]: https://news.itsfoss.com/rhel-fork-by-cloudlinux/ -[18]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Untitled-design-2.png?fit=800%2C450&ssl=1&resize=350%2C200 diff --git a/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md b/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md deleted file mode 100644 index e43409061e..0000000000 --- a/sources/news/20210427 Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin.md +++ /dev/null @@ -1,118 +0,0 @@ -[#]: subject: (Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin) -[#]: via: (https://news.itsfoss.com/fedora-34-release/) -[#]: author: (Arish V https://news.itsfoss.com/author/arish/) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Fedora 34 Releases with GNOME 40, Linux Kernel 5.11, and a New i3 Spin -====== - -After the release of the [Fedora 34 beta][1] a week ago, Fedora 34 stable release is finally here with exciting changes and improvements. - -As expected this release of Fedora arrives with the latest Linux kernel 5.11 along with significant changes such as [Gnome 40][2], [PipeWire][3], availability of a [Fedora i3 Spin][4], and various other changes. - -Let’s take a look at the important changes coming to Fedora 34. - -### Major Highlights of Fedora 34 Release - -Here is an overview of the major changes in this release of Fedora. - -#### Desktop Environment Updates - -![][5] - -One of the biggest highlights is the arrival of the [GNOME 40][2] desktop. Fedora 34 is one of the few distributions in which you can experience the latest Gnome 40 right now. So, this change is worth noting. - -Taking a look at KDE Plasma, Wayland becomes the default display server for KDE Plasma in Fedora 34. Moreover, KDE Plasma Desktop image is available for AArch64 ARM devices as well. - -Coming to other Desktop Environments, the latest Xfce 4.16 is available with this release of Fedora and LXQT also receives an update to the latest version LXQT 0.16. - -#### PipeWire to Replace PulseAudio - -A noteworthy change happening with this release of Fedora is the replacement of PulseAudio by PipeWire. It replaces PulseAudio and JACK by providing a PulseAudio-compatible server implementation and ABI-compatible libraries for JACK clients. - -![][6] - -Besides, with this release, there’s also a Fedora i3 Spin that provides the popular i3 tiling window manager and offers a complete experience with a minimalist user interface. - -####  Zstd Compression by Default - -BTRSF file system was made default with Fedora 34, with this release zstd algorithm is made default for transparent compression when using BTRSF. The developers hope that this would increase the life span of flash-based media by reducing write amplification. - -#### Other Changes - -Some of the other changes include package the following package updates. - - * Binutils 2.53 - * Golang 1.16 - * Ruby 3.0 - * BIND 9.16 - *  MariaDB 10.5 - * Ruby on Rails 6.1 - * Stratis 2.3.0 - - - -Other changes include replacement of The ntp package with ntpsec. Also, the collection packages xorg-x11 are revoked, and the individual utilities within them will be packaged separately. - -If you want to see the entire list of changes in Fedora 34, please take a look at the [official announcement post][7] and the [changeset][8] for more technical details. - -### Wrapping up - -Most of the above changes in Fedora 34 were expected changes, and fortunately nothing went south after the beta release last week. Above all Fedora 34 in powered by the latest Linux kernel 5.11, and you can experience the latest GNOME desktop as well. - -_So, what do you think about these exciting additions to Fedora 34? Let me know in the comments below._ - -  - -#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You! - -If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software. - -I'm not interested - -#### _Related_ - - * [Fedora 34 Beta Arrives With Awesome GNOME 40 (Unlike Ubuntu 21.04)][1] - * ![][9] ![][10] - - - * [Linux Release Roundup #21.13: GNOME 40, Manjaro 21.0, Fedora 34 and More New Releases][11] - * ![][9] ![Linux Release Roundups][12] - - - * [Manjaro 21.0 Ornara Comes Packed With GNOME 3.38, KDE Plasma 5.21, Xfce 4.16 and Linux Kernel 5.10][13] - * ![][9] ![][14] - - - --------------------------------------------------------------------------------- - -via: https://news.itsfoss.com/fedora-34-release/ - -作者:[Arish V][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://news.itsfoss.com/author/arish/ -[b]: https://github.com/lujun9972 -[1]: https://news.itsfoss.com/fedora-34-beta-release/ -[2]: https://news.itsfoss.com/gnome-40-release/ -[3]: https://pipewire.org/ -[4]: https://spins.fedoraproject.org/i3/ -[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzQ2OCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUzNicgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[7]: https://fedoramagazine.org/announcing-fedora-34/ -[8]: https://fedoraproject.org/wiki/Releases/34/ChangeSet#i3_Spin -[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4= -[10]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/fedora-34-beta-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200 -[11]: https://news.itsfoss.com/linux-release-roundup-2021-13/ -[12]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2020/12/Linux-release-roundups.png?fit=800%2C450&ssl=1&resize=350%2C200 -[13]: https://news.itsfoss.com/manjaro-21-0-ornara-release/ -[14]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/manjaro-21.png?fit=1200%2C675&ssl=1&resize=350%2C200 From 0f18a062a1de89f3cc5cf62b560223ba1afb2f0b Mon Sep 17 00:00:00 2001 From: MjSeven Date: Mon, 10 May 2021 23:20:47 +0800 Subject: [PATCH 160/170] Translating --- sources/tech/20210325 How to use the Linux sed command.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210325 How to use the Linux sed command.md b/sources/tech/20210325 How to use the Linux sed command.md index 71385c5f2e..0f4f79066f 100644 --- a/sources/tech/20210325 How to use the Linux sed command.md +++ b/sources/tech/20210325 How to use the Linux sed command.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/3/sed-cheat-sheet) [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (MjSeven) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 27480f12a6478d7cb2741a4eedce5c998571c30d Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 23:56:57 +0800 Subject: [PATCH 161/170] PRF @DCOLIVERSUN --- ...gure WireGuard VPNs with NetworkManager.md | 56 +++++++++---------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md b/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md index 11f01fb74c..14582810cf 100644 --- a/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md +++ b/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md @@ -3,26 +3,24 @@ [#]: author: (Maurizio Garcia https://fedoramagazine.org/author/malgnuz/) [#]: collector: (lujun9972) [#]: translator: (DCOLIVERSUN) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) 用 NetworkManager 配置 WireGuard 虚拟私有网络 ====== -![wireguard][1] - -照片由[High Treason][3]节选自[Thin Ethernet Ramble (TS 10:38)][2] +![](https://img.linux.net.cn/data/attachment/album/202105/10/235609bmbzbr4bikupbjjr.jpg) 虚拟私有网络Virtual Private Networks应用广泛。如今有各种方案可供使用,用户可通过这些方案访问任意类型的资源,同时保持其机密性与隐私性。 最近,WireGuard 因为其简单性、速度与安全性成为最广泛使用的虚拟私有网络协议之一。WireGuard 最早应用于 Linux 内核,但目前可以用在其他平台,例如 iOS、Android 等。 -WireGuard 使用 UDP 作为其传输协议,基于 Critokey Routing (CKR) 建立对等节点之间的通信。服务器或客户端的每一个对等节点都有一对密钥key(公钥与私钥),公钥与许可 IP 间建立通信连接。有关 WireGuard 更多信息请访问[主页][4]。 +WireGuard 使用 UDP 作为其传输协议,并在 Critokey Routing(CKR)的基础上建立对等节点之间的通信。每个对等节点(无论是服务器或客户端)都有一对密钥key(公钥与私钥),公钥与许可 IP 间建立通信连接。有关 WireGuard 更多信息请访问其 [主页][4]。 -本文描述了如何在两个对等方——PeerA 与 PeerB——间设置 WireGuard。两个节点均运行 Fedora Linux 系统,使用 NetworkManager 为持久性配置。 +本文描述了如何在两个对等节点(PeerA 与 PeerB)间设置 WireGuard。两个节点均运行 Fedora Linux 系统,使用 NetworkManager 进行持久性配置。 -## **WireGuard 设置与网络配置** +### WireGuard 设置与网络配置 在 PeerA 与 PeerB 之间建立持久性虚拟私有网络连接只需三步: @@ -30,36 +28,34 @@ WireGuard 使用 UDP 作为其传输协议,基于 Critokey Routing (CKR) 建 2. 生成密钥对key pair。 3. 配置 WireGuard 接口。 -### **安装** +### 安装 -在两个对等节点(PeerA 与 PeerB)上安装 _wireguard-tools_ 软件包: +在两个对等节点(PeerA 与 PeerB)上安装 `wireguard-tools` 软件包: ``` $ sudo -i # dnf -y install wireguard-tools ``` -这个包可以从 Fedora Linux 更新库中找到。它在 _/etc/wireguard/_ 中创建一个配置目录。在这里你将创建密钥和接口配置文件。 +这个包可以从 Fedora Linux 更新库中找到。它在 `/etc/wireguard/` 中创建一个配置目录。在这里你将创建密钥和接口配置文件。 -### **生成密钥对** +### 生成密钥对 -现在,使用 _wg_ 工具在每个节点上生成公钥与私钥: +现在,使用 `wg` 工具在每个节点上生成公钥与私钥: ``` # cd /etc/wireguard # wg genkey | tee privatekey | wg pubkey > publickey ``` -### **在 PeerA 上配置 WireGuard 接口** +### 在 PeerA 上配置 WireGuard 接口 -WireGuard 接口命名规则为 _wg0_、_wg1_等等。完成下述步骤为 WireGuard 接口创建配置: +WireGuard 接口命名规则为 `wg0`、`wg1` 等等。完成下述步骤为 WireGuard 接口创建配置: - * PeerA 节点上配置想要的 IP 地址与 MASK。 + * PeerA 节点上配置想要的 IP 地址与掩码。 * 该节点监听的 UDP 端口。 * PeerA 的私钥。 - - ``` # cat << EOF > /etc/wireguard/wg0.conf [Interface] @@ -74,7 +70,7 @@ AllowedIPs = 172.16.1.2/32 EOF ``` -节点监听端口的许可 UDP 流量: +允许 UDP 流量通过节点监听的端口: ``` # firewall-cmd --add-port=60001/udp --permanent --zone=public @@ -82,14 +78,14 @@ EOF success ``` -最后,将接口配置文件导入 NetworkManager。因此,WireGuard 接口在重启后将持续存在。 +最后,将接口配置文件导入 NetworkManager。这样,WireGuard 接口在重启后将持续存在。 ``` # nmcli con import type wireguard file /etc/wireguard/wg0.conf Connection 'wg0' (21d939af-9e55-4df2-bacf-a13a4a488377) successfully added. ``` -验证 _wg0_ 的状态: +验证 `wg0`的状态: ``` # wg @@ -128,19 +124,17 @@ IP6.GATEWAY: -- ------------------------------------------------------------------------------- ``` -上述输出显示接口 _wg0_ 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.2 的对等节点通信。 +上述输出显示接口 `wg0` 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.2 的对等节点通信。 ### 在 PeerB 上配置 WireGuard 接口 -现在可以在第二个对等节点上创建 _wg0_ 接口的配置文件了。确保你已经完成以下步骤: +现在可以在第二个对等节点上创建 `wg0` 接口的配置文件了。确保你已经完成以下步骤: - * PeerB 节点上设置 IP 地址与 MASK。 + * PeerB 节点上设置 IP 地址与掩码。 * PeerB 的私钥。 - * PeerA 的公钥 + * PeerA 的公钥。 * PeerA 的 IP 地址或主机名、监听 WireGuard 流量的 UDP 端口。 - - ``` # cat << EOF > /etc/wireguard/wg0.conf [Interface] @@ -162,7 +156,7 @@ EOF Connection 'wg0' (39bdaba7-8d91-4334-bc8f-85fa978777d8) successfully added. ``` -验证 _wg0_ 的状态: +验证 `wg0` 的状态: ``` # wg @@ -201,9 +195,9 @@ IP6.GATEWAY: -- ------------------------------------------------------------------------------- ``` -上述输出显示接口 _wg0_ 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.254 的对等节点通信。 +上述输出显示接口 `wg0` 已连接。现在,它可以和虚拟私有网络 IP 地址为 172.16.1.254 的对等节点通信。 -### **验证节点间通信** +### 验证节点间通信 完成上述步骤后,两个对等节点可以通过虚拟私有网络连接相互通信,以下是 ICMP 测试结果: @@ -222,7 +216,7 @@ PING 172.16.1.254 (172.16.1.254) 56(84) bytes of data. ## 总结 -虚拟私有网络很常见。在用于部署虚拟私有网络的各种协议和工具中,WireGuard 是一种简单、轻巧和安全的选择。它可以基于 CryptoKey Routing 的对等节点间建立安全的点对点通信point-to-point connection>,过程非常简单。此外,NetworkManager 支持 WireGuard 接口,允许重启后进行持久配置。 +虚拟私有网络很常见。在用于部署虚拟私有网络的各种协议和工具中,WireGuard 是一种简单、轻巧和安全的选择。它可以在对等节点之间基于 CryptoKey 路由建立安全的点对点连接,过程非常简单。此外,NetworkManager 支持 WireGuard 接口,允许重启后进行持久配置。 -------------------------------------------------------------------------------- @@ -231,7 +225,7 @@ via: https://fedoramagazine.org/configure-wireguard-vpns-with-networkmanager/ 作者:[Maurizio Garcia][a] 选题:[lujun9972][b] 译者:[DCOLIVERSUN](https://github.com/DCOLIVERSUN) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 76cf732025e00c9d86ae5bbe0d897d566f0a3cf3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 10 May 2021 23:57:50 +0800 Subject: [PATCH 162/170] PUB @DCOLIVERSUN https://linux.cn/article-13379-1.html --- .../20210503 Configure WireGuard VPNs with NetworkManager.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210503 Configure WireGuard VPNs with NetworkManager.md (99%) diff --git a/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md b/published/20210503 Configure WireGuard VPNs with NetworkManager.md similarity index 99% rename from translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md rename to published/20210503 Configure WireGuard VPNs with NetworkManager.md index 14582810cf..2c46177c34 100644 --- a/translated/tech/20210503 Configure WireGuard VPNs with NetworkManager.md +++ b/published/20210503 Configure WireGuard VPNs with NetworkManager.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (DCOLIVERSUN) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13379-1.html) 用 NetworkManager 配置 WireGuard 虚拟私有网络 ====== From 0d6b0ca1f087766b0cb0748f71c159b757143aef Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 11 May 2021 05:14:41 +0800 Subject: [PATCH 163/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210511=20?= =?UTF-8?q?SonoBus:=20An=20Open=20Source=20Peer-to-Peer=20Audio=20Streamin?= =?UTF-8?q?g=20App=20with=20Cross-Platform=20Support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210511 SonoBus- An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support.md --- ...reaming App with Cross-Platform Support.md | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 sources/tech/20210511 SonoBus- An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support.md diff --git a/sources/tech/20210511 SonoBus- An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support.md b/sources/tech/20210511 SonoBus- An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support.md new file mode 100644 index 0000000000..2bada20642 --- /dev/null +++ b/sources/tech/20210511 SonoBus- An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support.md @@ -0,0 +1,104 @@ +[#]: subject: (SonoBus: An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support) +[#]: via: (https://itsfoss.com/sonobus/) +[#]: author: (Ankush Das https://itsfoss.com/author/ankush/) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +SonoBus: An Open Source Peer-to-Peer Audio Streaming App with Cross-Platform Support +====== + +_**Brief: An interesting open-source peer-to-peer audio streaming app which offers a simple user interface with powerful functionalities.**_ + +### SonoBus: Cross-Platform Audio Streaming App + +Audio streaming services are extremely popular nowadays when listening to music. However, a local collection is still a useful way that does not require to be constantly connected to the Internet. + +Even though a streaming music service is convenient, you do not really own the music. So, if there is a licensing issue, the platform might remove your favorite music, and you cannot do anything about it. + +And, with a local music collection, you do not have that problem. But, how do you stream your local music over a network of devices or share with a group? + +![][1] + +SonoBus can be a solution to the problem. Not just limited to music, but just any audio like practicing music with a group of friends remotely or collaborating to make music, why not? + +Let us take a look at what it offers. + +### Features of SonoBus + +![][2] + +SonoBus is relatively simple to use, but the features offered can be overwhelming. So, before proceeding, you might want to know what it lets you do to get a head start: + + * Ability to connect to multiple users + * Create a group with optional password + * Share audio input from your microphone + * Share audio stream from a file + * Mono/Stereo support + * Playback to the group + * Record audio from everyone + * Ability to mute individual users or everyone + * Can be connected via the Internet or the local network + * Metronome support for collaborating to make music or remote practice sessions + * High-quality audio support up to 256 Kbps + * Input mixer + * Pan support + * Useful effects supported (Noise Gate, Compressor, and EQ) + * Works with JACK and ALSA + * Cross-platform support (Windows, macOS, Android, iOS, and Linux) + + + +While I tried to mention all the essential features, you get so much control to adjust the volume, quality, latency, and how the audio sounds with the help of effects. + +![][3] + +The best thing about it is **cross-platform support**, which makes it an interesting choice for any group of users no matter why you want to stream audio. + +### Installing SonoBus in Linux + +You can easily install the [Snap package][4] or [Flatpak package][5] no matter what Linux distribution you use. If you do not want to use them, you can add the official repository manually to get it installed: + +``` +echo "deb http://pkg.sonobus.net/apt stable main" | sudo tee /etc/apt/sources.list.d/sonobus.list + +sudo wget -O /etc/apt/trusted.gpg.d/sonobus.gpg https://pkg.sonobus.net/apt/keyring.gpg + +sudo apt update && sudo apt install sonobus +``` + +You can also download it for your preferred platform through its official website. + +[SonoBus][6] + +### Closing Thoughts + +SonoBus is an impressive audio streaming application with plenty of potential use-cases, but it has its share of issues and may not be the perfect solution for everyone. + +For instance, I noticed that the desktop app takes a significant amount of system resources, so that could be a problem for older systems. + +Also, the Android app on Play Store is still in early access (beta). It works as expected for my quick test session, but I haven’t used it for a long time – so there could be expected hiccups when relying on it for cross-platform sessions. + +In either case, it works quite well with plenty of features for every type of use-case. Do give it a try if you haven’t. + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/sonobus/ + +作者:[Ankush Das][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/ankush/ +[b]: https://github.com/lujun9972 +[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/sonobus-screenshot.png?resize=800%2C605&ssl=1 +[2]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/sonus-screenshot-1.png?resize=800%2C619&ssl=1 +[3]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/sonobus-official.png?resize=800%2C545&ssl=1 +[4]: https://snapcraft.io/sonobus +[5]: https://flathub.org/apps/details/net.sonobus.SonoBus +[6]: https://sonobus.net/ From d76c07a5e30ee1bd57a1f3de5727072755b04fac Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 11 May 2021 05:15:03 +0800 Subject: [PATCH 164/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210510=20?= =?UTF-8?q?Make=20Jenkins=20logs=20pretty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210510 Make Jenkins logs pretty.md --- .../tech/20210510 Make Jenkins logs pretty.md | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 sources/tech/20210510 Make Jenkins logs pretty.md diff --git a/sources/tech/20210510 Make Jenkins logs pretty.md b/sources/tech/20210510 Make Jenkins logs pretty.md new file mode 100644 index 0000000000..18ecacc8c6 --- /dev/null +++ b/sources/tech/20210510 Make Jenkins logs pretty.md @@ -0,0 +1,183 @@ +[#]: subject: (Make Jenkins logs pretty) +[#]: via: (https://opensource.com/article/21/5/jenkins-logs) +[#]: author: (Evan "Hippy" Slatis https://opensource.com/users/hippyod) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Make Jenkins logs pretty +====== +Jenkins' default logs can be hard to read, but they don't have to be. +![Person using a laptop][1] + +Jenkins is a free and open source automation server for building, testing, and deploying code. It's the backbone of continuous integration and continuous delivery (CI/CD) and can save developers hours each day and protect them from having failed code go live. When code does fail, or when a developer needs to see the output of tests, [Jenkins][2] provides log files for review. + +The default Jenkins pipeline logs can be difficult to read. This quick summary of Jenkins logging basics offers some tips (and code) on how to make them more readable. + +### What you get + +Jenkins pipelines are split into [stages][3]. Jenkins automatically logs the beginning of each stage, like this: + + +``` +[Pipeline] // stage +[Pipeline] stage (hide) +[Pipeline] { (Apply all openshift resources) +[Pipeline] dir +``` + +The text is displayed without much contrast, and important things (like the beginning of a stage) aren't highlighted. In a pipeline log several hundred lines long, finding where one stage starts and another ends, especially if you're casually browsing the logs looking for a particular stage, can be daunting. + +Jenkins pipelines are written as a mix of [Groovy][4] and shell scripting. In the Groovy code, logging is sparse; many times, it consists of grayed-out text in the command without details. In the shell scripts, debugging mode (`set -x`) is turned on, so every shell command is fully realized (variables are dereferenced and values printed) and logged in detail, as is the output. + +It can be tedious to read through the logs to get relevant information, given that there can be so much. Since the Groovy logs that proceed and follow a shell script in a pipeline aren't very expressive, many times they lack context: + + +``` +[Pipeline] dir +Running in /home/jenkins/agent/workspace/devop-master/devops-server-pipeline/my-repo-dir/src +[Pipeline] { (hide) +[Pipeline] findFiles +[Pipeline] findFiles +[Pipeline] readYaml +[Pipeline] } +``` + +I can see what directory I am working in, and I know I was searching for file(s) and reading a YAML file using Jenkins' steps. But what was I looking for, and what did I find and read? + +### What can be done? + +I'm glad you asked because there are a few simple practices and some small snippets of code that can help. First, the code: + + +``` +def echoBanner(def ... msgs) { +   echo createBanner(msgs) +} + +def errorBanner(def ... msgs) { +   error(createBanner(msgs)) +} + +def createBanner(def ... msgs) { +   return """ +       =========================================== + +       ${msgFlatten(null, msgs).join("\n        ")} + +       =========================================== +   """ +} + +// flatten function hack included in case Jenkins security +// is set to preclude calling Groovy flatten() static method +// NOTE: works well on all nested collections except a Map +def msgFlatten(def list, def msgs) { +   list = list ?: [] +   if (!(msgs instanceof String) && !(msgs instanceof GString)) { +       msgs.each { msg -> +           list = msgFlatten(list, msg) +       } +   } +   else { +       list += msgs +   } + +   return  list +} +``` + +Add this code to the end of each pipeline or, to be more efficient, [load a Groovy file][5] or make it part of a [Jenkins shared library][6]. + +At the start of each stage (or at particular points within a stage), simply call `echoBanner`: + + +``` +`echoBanner("MY STAGE", ["DOING SOMETHING 1", "DOING SOMETHING 2"])` +``` + +Your logs in Jenkins will display the following: + + +``` +    =========================================== + +    MY STAGE +    DOING SOMETHING 1 +    DOING SOMETHING 2 + +    =========================================== +``` + +The banners are very easy to pick out in the logs. They also help define the pipeline flow when used properly, and they break the logs up nicely for reading. + +I have used this for a while now professionally in a few places. The feedback has been very positive regarding helping make pipeline logs more readable and the flow more understandable. + +The `errorBanner` method above works the same way, but it fails the script immediately. This helps highlight where and what caused the failure. + +### Best practices + + 1. Use `echo` Jenkins steps liberally throughout your Groovy code to inform the user what you're doing. These can also help with documenting your code. + 2. Use empty log statements (an empty echo step in Groovy, `echo ''`, or just `echo` in shell) to break up the output for easier readability. You probably use empty lines in your code for the same purpose. + 3. Avoid the trap of using `set +x` in your scripts, which hides logging executed shell statements. It doesn't so much clean up your logs as it makes your pipelines a black box that hides what your pipeline is doing and any errors that appear. Make sure your pipelines' functionality is as transparent as possible. + 4. If your pipeline creates intermediate artifacts that developers and/or DevOps personnel could use to help debug issues, then log their contents, too. Yes, it makes the logs longer, but it's only text. It will be useful information at some point, and what else is a log (if utilized properly) than a wealth of information about what happened and why? + + + +### Kubernetes Secrets: Where full transparency won't work + +There are some things that you _don't_ want to end up in your logs and be exposed. If you're using Kubernetes and referencing data held in a Kubernetes Secret, then you definitely don't want that data exposed in a log because the data is only obfuscated and not encrypted. + +Imagine you want to take some data held in a Secret and inject it into a templated JSON file. (The full contents of the Secret and the JSON template are irrelevant for this example.) You want to be transparent and log what you're doing since that's best practice, but you don't want to expose your Secret data. + +Change your script's mode from debugging (`set -x`) to command logging (`set -v`). At the end of the sensitive portion of the script, reset the shell to debugging mode: + + +``` +sh """ +   # change script mode from debugging to command logging +   set +x -v + +   # capture data from secret in shell variable +   MY_SECRET=\$(kubectl get secret my-secret --no-headers -o 'custom-column=:.data.my-secret-data') + +   # replace template placeholder inline +   sed s/%TEMPLATE_PARAM%/${MY_SECRET_DATA}/ my-template-file.json + +   # do something with modified template-file.json... + +   # reset the shell to debugging mode +   set -x +v +""" +``` + +This will output this line to the logs: + + +``` +`sed s/%TEMPLATE_PARAM%/${MY_SECRET_DATA}/ my-template-file.json` +``` + +This doesn't realize the shell variable `MY_SECRET_DATA`, unlike in shell debug mode. Obviously, this isn't as helpful as debug mode if a problem occurs at this point in the pipeline and you're trying to figure out what went wrong. But it's the best balance between keeping your pipeline execution transparent for both developers and DevOps while also keeping your Secrets hidden. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/jenkins-logs + +作者:[Evan "Hippy" Slatis][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/hippyod +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/laptop_screen_desk_work_chat_text.png?itok=UXqIDRDD (Person using a laptop) +[2]: https://www.jenkins.io/ +[3]: https://www.jenkins.io/doc/book/pipeline/syntax/#stage +[4]: https://opensource.com/article/20/12/groovy +[5]: https://www.jenkins.io/doc/pipeline/steps/workflow-cps/#load-evaluate-a-groovy-source-file-into-the-pipeline-script +[6]: https://www.jenkins.io/doc/book/pipeline/shared-libraries/ From 26180b100e7fd7a69e4330ff8af286dfc9041fb0 Mon Sep 17 00:00:00 2001 From: DarkSun Date: Tue, 11 May 2021 05:15:19 +0800 Subject: [PATCH 165/170] =?UTF-8?q?=E9=80=89=E9=A2=98[tech]:=2020210510=20?= =?UTF-8?q?Getting=20started=20with=20edge=20development=20on=20Linux=20us?= =?UTF-8?q?ing=20open=20source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sources/tech/20210510 Getting started with edge development on Linux using open source.md --- ... development on Linux using open source.md | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 sources/tech/20210510 Getting started with edge development on Linux using open source.md diff --git a/sources/tech/20210510 Getting started with edge development on Linux using open source.md b/sources/tech/20210510 Getting started with edge development on Linux using open source.md new file mode 100644 index 0000000000..0fc192f7c0 --- /dev/null +++ b/sources/tech/20210510 Getting started with edge development on Linux using open source.md @@ -0,0 +1,158 @@ +[#]: subject: (Getting started with edge development on Linux using open source) +[#]: via: (https://opensource.com/article/21/5/edge-quarkus-linux) +[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh) +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +Getting started with edge development on Linux using open source +====== +Leverage Quarkus to scale IoT application development and deployment +environments. +![Looking at a map][1] + +There are many reasons why Linux is such a popular platform for processing Internet of Things (IoT) edge applications. A major one is transparency. Linux security capabilities are built on open source projects, giving users a transparent view of security risks and threats and enables them to apply fixes quickly with security module patches or kernel-level updates. Another Linux advantage is that developers can choose from various programming languages to develop, test, and run device communications over various networking protocols—other than HTTP(s)—when developing IoT edge applications. It also enables developers to address server programming for controlling data flow from IoT devices to front-end graphical user interface (GUI) applications. + +This article explains how to get started with IoT edge development using [Quarkus][2], a cloud-native Java framework that enables you to integrate a lightweight [message broker][3] for processing data streams from IoT devices in a reactive way. + +For this article, I'm using [CentOS Stream][4], which I feel provides a reliable open source platform to handle the business applications I work on, from traditional enterprise Java to cloud, IoT edge, artificial intelligence (AI), and machine learning (ML) environments. It's a midstream platform operating between [Fedora][5] and [Red Hat Enterprise Linux][6] (RHEL). + +**[Read next: [Deploy Quarkus everywhere with RHEL][7]]** + +![High-level architecture for IoT edge development][8] + +(Daniel Oh, [CC BY-SA 4.0][9]) + +You don't have to use CentOS to use Quarkus, of course. However, if you want to follow along with this article precisely, you can install [CentOS Stream][10] so there will be no difference between what you read here and what you see onscreen. + +You can learn more about Quarkus by reading my article _[Writing Java with Quarkus in VS Code][11]_. + +### Step 1: Send IoT data to the lightweight message broker + +To quickly spin up a lightweight message broker, you can use [Eclipse Mosquitto][12]. It's an open source message broker that implements the MQTT protocol. [MQTT][13] processes messages across IoT devices, such as low-power sensors, mobile phones, embedded computers, and microcontrollers. Mosquitto can be [installed][14] on various devices and operating system platforms, but you can also spin up the broker container image after installing a container engine (e.g., [Docker][15]) and a command-line interface (CLI) tool. + +I use the [Podman][16] tool for running Linux containers. Compared to other container engines, this saves resources (CPU and memory especially) when you install and run an extra container engine in your environment. If you haven't already, [install Podman][17] before continuing. Then run the Mosquitto message broker with this command: + + +``` +$ podman run --name mosquitto \ +\--rm -p "9001:9001" -p "1883:1883" \ +eclipse-mosquitto:1.6.2 +``` + +You see this output: + + +``` +1619384779: mosquitto version 1.6.2 starting +1619384779: Config loaded from /mosquitto/config/mosquitto.conf. +1619384779: Opening ipv4 listen to socket on port 1883. +1619384779: Opening ipv6 listen socket on port 1883. +``` + +### Step 2: Process reactive data streams with Quarkus + +For this example, imagine you have IoT devices connected to a warehouse that continually send temperature and heat data to back-end servers to monitor the building's condition and save power resources. + +Your imaginary setup uses one [ESP8266-01][18] WiFi module that streams temperature and heat data in the JSON data format. The stream's IoT edge data is transmitted to the Mosiquitto message broker server running on your machine. + +Define the ESP8266-01 emulator in a Java application on Quarkus: + + +``` +Device esp8266 = new Device("ESP8266-01"); + +@Outgoing("device-temp") +public Flowable<String> generate() { +  return Flowable.interval(2, TimeUnit.SECONDS) +    .onBackpressureDrop() +    .map(t -> { +      [String][19] data = esp8266.toString(); +      return data; +  }); +} +``` + +Quarkus also enables you to process data streams and event sources with the [SmallRye Reactive Messaging][20] extension, which interacts with various messaging technologies such as [Apache Kafka][21], [AMQP][22], and especially MQTT, the standard for IoT messaging. This code snippet shows how to specify incoming data streams with an `@Incoming()` annotation: + + +``` +@Incoming("devices") +@Outgoing("my-data-stream") +@Broadcast +public String process(byte[] data) { +  String d = new String(data); +  return d; +} +``` + +You can find this solution in my [GitHub repository][23]. + +#### Step 3: Monitor the real-time data channel + +Quarkus uses reactive messaging and channels to receive, process, and showcase messages with a browser-based front-end application. You can run the Quarkus application in development mode for live coding or continue adding code in the inner-loop development workflow. + +Issue the following Maven command to build and start the application: + + +``` +`./mvnw compile quarkus:dev` +``` + +Once your Quarkus application starts, you should see incoming IoT data from the ESP8266-01 device. + +![Incoming IoT data in Quarkus][24] + +(Daniel Oh, [CC BY-SA 4.0][9]) + +You can use the dashboard to monitor how the IoT edge data (e.g., temperature, heat) is processing. Open a new web browser and navigate to [http://localhost:8080][25]. You should start seeing some statistics. + +![IoT data graph][26] + +(Daniel Oh, [CC BY-SA 4.0][9]) + +### Conclusion + +With Quarkus, enterprises can scale application development and deployment environments with minimal cost and without high maintenance or licensing fees. From a DevOps perspective, enterprise developers can still use familiar open source technologies (such as Java) to implement IoT edge applications, while operators can control and monitor production using a Linux-based system (like CentOS Stream) with data gathered from big data, IoT, and artificial intelligence (AI) technologies. + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/edge-quarkus-linux + +作者:[Daniel Oh][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/daniel-oh +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/tips_map_guide_ebook_help_troubleshooting_lightbulb_520.png?itok=L0BQHgjr (Looking at a map) +[2]: https://quarkus.io/ +[3]: https://www.ibm.com/cloud/learn/message-brokers +[4]: https://www.centos.org/centos-stream/ +[5]: https://getfedora.org/ +[6]: https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux +[7]: https://developers.redhat.com/blog/2021/04/07/deploy-quarkus-everywhere-with-red-hat-enterprise-linux-rhel/ +[8]: https://opensource.com/sites/default/files/uploads/iot-edge-architecture.png (High-level architecture for IoT edge development) +[9]: https://creativecommons.org/licenses/by-sa/4.0/ +[10]: https://www.centos.org/download/ +[11]: https://opensource.com/article/20/4/java-quarkus-vs-code +[12]: https://mosquitto.org/ +[13]: https://mqtt.org/ +[14]: https://mosquitto.org/download/ +[15]: https://opensource.com/resources/what-docker +[16]: https://podman.io/ +[17]: https://podman.io/getting-started/installation +[18]: https://www.instructables.com/Getting-Started-With-the-ESP8266-ESP-01/ +[19]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string +[20]: https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/2/index.html +[21]: https://kafka.apache.org/ +[22]: https://www.amqp.org/ +[23]: https://github.com/danieloh30/quarkus-edge-mqtt-demo +[24]: https://opensource.com/sites/default/files/uploads/quarkus_incoming-iot-data.png (Incoming IoT data in Quarkus) +[25]: http://localhost:8080/ +[26]: https://opensource.com/sites/default/files/uploads/iot-graph.png (IoT data graph) From 250819e04ba266d6ee1ee34d975dde15c3a39067 Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 11 May 2021 08:46:27 +0800 Subject: [PATCH 166/170] translated --- ...ernetes commands with a new cheat sheet.md | 138 ------------------ ...ernetes commands with a new cheat sheet.md | 137 +++++++++++++++++ 2 files changed, 137 insertions(+), 138 deletions(-) delete mode 100644 sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md create mode 100644 translated/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md diff --git a/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md b/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md deleted file mode 100644 index f4718097f5..0000000000 --- a/sources/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md +++ /dev/null @@ -1,138 +0,0 @@ -[#]: subject: (Learn essential Kubernetes commands with a new cheat sheet) -[#]: via: (https://opensource.com/article/21/5/kubernetes-cheat-sheet) -[#]: author: (Seth Kenlon https://opensource.com/users/seth) -[#]: collector: (lujun9972) -[#]: translator: (geekpi) -[#]: reviewer: ( ) -[#]: publisher: ( ) -[#]: url: ( ) - -Learn essential Kubernetes commands with a new cheat sheet -====== -Start exploring kubectl, containers, pods, and more, then download our -free cheat sheet so you always have the key commands at your fingertips. -![Cheat Sheet cover image][1] - -The cloud runs largely on Kubernetes, Kubernetes largely runs on Linux, and Linux runs best when it has a skilled sysadmin at the controls. Whether you consider yourself a cloud architect or just a humble sysadmin, the modern internet needs users who understand how applications and services can be created within containers, scaled on demand, and monitored and managed judiciously. - -One of the first steps into the brave world of containers is learning Kubernetes and its quintessential command: `kubectl`. - -### Installing kubectl - -The `kubectl` command allows you to run commands on Kubernetes clusters. You use `kubectl` to deploy applications, view logs, inspect and manage cluster resources, and troubleshoot issues when they arise. The classic "problem" with `kubectl` (and Kubernetes as a whole) is that to run commands against a cluster, you first need a cluster. However, there are easy solutions. - -First, you can create your own Kubernetes cluster for the cost of three Raspberry Pi boards and associated peripherals (power supplies, mostly). Once you've acquired the hardware, read Chris Collins' [_Build a Kubernetes cluster with the Raspberry Pi_][2], and you'll have your very own cluster with `kubectl` installed. - -The other way to acquire a cluster is to use [Minikube][3], a practice environment for Kubernetes. Of all the methods of getting a cluster up and running, this is the easiest. - -There are yet more options; for example, you can take a course on Kubernetes to gain access to a lab running a cluster, or you can buy time on a cloud. It doesn't matter how you gain access to a cluster, as long as you have a Kubernetes environment to practice on. - -Once you have access to a cluster, you can start exploring the `kubectl` command. - -### Understanding pods and containers - -A container is a lightweight, partial Linux system dedicated to running an application or service. A container is constrained by a [kernel namespace][4], which provides it access to vital system components on its host (the computer running the container) while preventing it from sending data out to its host. Containers are kept as container images (or just _images_ for short) and defined by text files called _Containerfiles_ or _Dockerfiles_. - -A pod is a formal collection of containers and an easy way for an administrator to scale, monitor, and maintain any number of containers. - -Together, these are like the "apps" of Kubernetes. Creating or acquiring container images is how you run services on the cloud. - -### Running a pod - -Two reliable registries of container images are Docker Hub and Quay. You can search a registry website for a list of available images. There are usually official images of large projects provided by the project, as well as community images for specialized, customized, or niche projects. One of the simplest and smallest images is a [BusyBox][5] container, which provides a minimal shell environment and some common commands. - -Whether you pull an image from a registry or write your own image definition and pull that into your cluster from a Git repository, the workflow is the same. When you want to start a pod in Kubernetes: - - 1. Find an image you want to use on [Docker Hub][6] or [Quay][7] - 2. Pull the image - 3. Create a pod - 4. Deploy the pod - - - -If you want to use the example BusyBox container, you can do the last three steps in a single command: - - -``` -`$ kubectl create deployment my-busybox --image=busybox` -``` - -Wait for kubectl to complete the process, and in the end, you have a running BusyBox instance. The pod isn't exposed to the rest of the world. It's just quietly running on your cluster in the background. - -To see what pods are running on your cluster: - - -``` -`$ kubectl get pods --all-namespaces` -``` - -You can also get information about the pod deployment: - - -``` -`$ kubectl describe deployment my-busybox` -``` - -### Interacting with a pod - -Containers usually contain configuration files that cause them to be automated. For instance, installing the Nginx httpd server as a container should not require your interaction. You start the container running, and it just works. This is true for the first container you add to a pod and for every container thereafter. - -One of the advantages of the Kubernetes model is that you can scale your services as needed. Should your web service become overwhelmed by unexpected traffic, you can start an identical container in your cloud (using the `scale` or `autoscale` subcommand), doubling your service's ability to handle incoming requests. - -Even so, sometimes it's nice to see some proof that a pod is running as expected or to be able to troubleshoot something that doesn't appear to be functioning correctly. For this, you can run arbitrary commands in a container: - - -``` -`$ kubectl exec my-busybox -- echo "hello cloud"` -``` - -Alternately, you can open a shell in your container, piping your standard input into it and its output to your terminal's stdout: - - -``` -`$ kubectl exec --stdin --tty my-busybox -- /bin/sh` -``` - -### Exposing services - -By default, pods aren't exposed to the outside world upon creation, giving you time to test and verify before going live. Assume you want to install and deploy the Nginx web server as a pod on your cluster and make it accessible. As with any service, you must point your pod to a port on your server. The `kubectl` subcommand `expose` can do this for you: - - -``` -$ kubectl create deployment \ -my-nginx --image=nginx -$ kubectl expose deployment \ -my-nginx --type=LoadBalancer --port=8080 -``` - -As long as your cluster is accessible from the internet, you can test your new web server's accessibility by opening a browser and navigating to your public IP address. - -### More than just pods - -Kubernetes provides a lot more than just stock images of common services. In addition to being a system for [container orchestration][8], it's also a platform for cloud development. You can write and deploy applications, manage and monitor performance and traffic, implement intelligent load balancing strategies, and much more. - -Kubernetes is a powerful system, and it has quickly become the foundation for all kinds of clouds, most significantly the [open hybrid cloud][9]. Start learning Kubernetes today. And as you learn more about Kubernetes, you'll need some quick reminders of its main concepts and general syntax, so [**download our Kubernetes cheat sheet**][10] and keep it nearby. - --------------------------------------------------------------------------------- - -via: https://opensource.com/article/21/5/kubernetes-cheat-sheet - -作者:[Seth Kenlon][a] -选题:[lujun9972][b] -译者:[译者ID](https://github.com/译者ID) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://opensource.com/users/seth -[b]: https://github.com/lujun9972 -[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coverimage_cheat_sheet.png?itok=lYkNKieP (Cheat Sheet cover image) -[2]: https://opensource.com/article/20/6/kubernetes-raspberry-pi -[3]: https://opensource.com/article/18/10/getting-started-minikube -[4]: https://opensource.com/article/19/10/namespaces-and-containers-linux -[5]: https://www.busybox.net/ -[6]: http://hub.docker.com -[7]: http://quay.io -[8]: https://opensource.com/article/20/11/orchestration-vs-automation -[9]: https://opensource.com/article/20/10/keep-cloud-open -[10]: https://opensource.com/downloads/kubernetes-cheat-sheet diff --git a/translated/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md b/translated/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md new file mode 100644 index 0000000000..73b7b38ef0 --- /dev/null +++ b/translated/tech/20210506 Learn essential Kubernetes commands with a new cheat sheet.md @@ -0,0 +1,137 @@ +[#]: subject: (Learn essential Kubernetes commands with a new cheat sheet) +[#]: via: (https://opensource.com/article/21/5/kubernetes-cheat-sheet) +[#]: author: (Seth Kenlon https://opensource.com/users/seth) +[#]: collector: (lujun9972) +[#]: translator: (geekpi) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) + +用新的速查表学习 Kubernetes 的基本命令 +====== +开始探索 kubectl、容器、pod 等,接着下载我们的免费的速查表,这样你就可以随时掌握关键的命令了。 +![Cheat Sheet cover image][1] + +云计算主要是在 Kubernetes 上运行,Kubernetes 主要是在 Linux 上运行,而 Linux 在有熟练的系统管理员控制时运行得最好。无论你认为自己是云计算架构师还是只是一个谦虚的系统管理员,现代互联网都需要了解如何在容器中创建应用和服务,按需扩展,按需扩展以及如何明智地进行监视和管理。 + +进入勇敢的容器世界的第一步是学习 Kubernetes 和它的基本命令:`kubectl`。 + +### 安装 kubectl + +`kubectl` 命令允许你在 Kubernetes 集群上运行命令。你使用 `kubectl` 来部署应用,查看日志,检查和管理集群资源,并在出现问题时进行故障排除。`kubectl`(以及整个 Kubernetes)的典型”问题“是,要对集群运行命令,你首先需要一个集群。然而,有一些简单的解决方案。 + +首先,你可以创建自己的 Kubernetes 集群,只需买三块树莓派板和相关外围设备(主要是电源)。当你获得了硬件,阅读 Chris Collins 的[_使用树莓派构建 Kubernetes 集群_][2],你就会拥有自己的安装有 `kubectl` 的集群。 + +另一种获得集群的方法是使用 [Minikube][3],这是一个 Kubernetes 的实践环境。在所有建立和运行集群的方法中,这是最简单的。 + +还有更多的选择;例如,你可以参加一个关于 Kubernetes 的课程,以获得一个运行集群的实验室,或者你可以在云上购买时间。只要你有一个 Kubernetes 环境来练习,如何获得集群并不重要。 + +当你你能访问一个集群,你就可以开始探索 `kubectl` 命令。 + +### 了解 pod 和容器 + +容器是一个轻量级的、部分的 Linux 系统,专门用于运行一个应用或服务。容器受到[内核命名空间][4]的限制,这使它能够访问其主机(运行容器的计算机)上的重要系统组件,同时防止它向其主机发送数据。容器以容器镜像(或简称_镜像_)的形式保存,并由称为 _Containerfiles_ 或 _Dockerfiles_ 的文本文件定义。 + +一个 pod 是容器的正式集合,也是管理员扩展、监控和维护任何数量的容器的一种简单方法。 + +这些一起就像 Kubernetes 的”应用“。创建或获取容器镜像是你在云上运行服务的方式。 + +### 运行一个 pod + +容器镜像的两个可靠仓库是 Docker Hub 和 Quay。你可以在仓库中搜索可用的镜像列表。通常有由项目提供的大型项目的官方镜像,也有专门的、定制的或特殊项目的社区镜像。最简单和最小的镜像之一是 [BusyBox][5] 容器,它提供了一个最小的 shell 环境和一些常用命令。 + +无论你是从仓库中拉取镜像,还是自己编写镜像定义并从 Git 仓库中拉取到集群中,其工作流程都是一样的。当你想在 Kubernetes 中启动一个 pod 时: + + 1. 在 [Docker Hub][6] 或 [Quay][7] 上找到一个你想使用的镜像 + 2. 拉取镜像 + 3. 创建一个 pod + 4. 部署 pod + + + +如果你想使用 BusyBox 容器的例子,你可以用一条命令完成最后三个步骤: + + +``` +`$ kubectl create deployment my-busybox --image=busybox` +``` + +等待 kubectl 完成这个过程,最后你就有了一个正在运行的 BusyBox 实例。这个 pod 并没有暴露给其他人。它只是在后台安静地在你的集群上运行。 + +要看你的集群上有哪些 pod 在运行: + + +``` +`$ kubectl get pods --all-namespaces` +``` + +你也可以获得关于 pod 部署的信息: + + +``` +`$ kubectl describe deployment my-busybox` +``` + +### 与 pod 互动 + +容器通常包含使其自动化的配置文件。例如,将 Nginx httpd 服务器作为容器安装,应该不需要你的互动。你开始运行容器,它就会工作。对于你添加到 pod 中的第一个容器和之后的每个容器都是如此。 + +Kubernetes 模型的优点之一是,你可以根据需要扩展你的服务。如果你的网络服务被意外的流量淹没,你可以在你的云中启动一个相同的容器(使用 `scale` 或 `autoscale` 子命令),使你的服务处理传入请求的能力增加一倍。 + +即便如此,有时还是很高兴看到一些证明 pod 正在按预期运行的证据,或者能够对似乎无法正常运行的某些问题进行故障排除。为此,你可以在一个容器中运行任意的命令: + + +``` +`$ kubectl exec my-busybox -- echo "hello cloud"` +``` + +另外,你可以在你的容器中打开一个 shell,用管道将你的标准输入输入到其中,并将其输出到终端的标准输出: + + +``` +`$ kubectl exec --stdin --tty my-busybox -- /bin/sh` +``` + +### 暴露服务 + +默认情况下,pod 在创建时不会暴露给外界,这样你就有时间在上线前进行测试和验证。假设你想把 Nginx Web 服务器作为一个 pod 安装和部署在你的集群上,并使其可以访问。与任何服务一样,你必须将你的 pod 指向服务器上的一个端口。`kubectl` 子命令 `expose` 可以为你做到这点: + + +``` +$ kubectl create deployment \ +my-nginx --image=nginx +$ kubectl expose deployment \ +my-nginx --type=LoadBalancer --port=8080 +``` + +只要你的集群可以从互联网上访问,你就可以通过打开浏览器并导航到你的公共 IP 地址来测试你的新 Web 服务器的可访问性。 + +### 不仅仅是 pod + +Kubernetes 提供了很多东西,而不仅仅是存储普通服务的镜像。除了作为一个[容器协调][8]的系统,它还是一个云开发的平台。你可以编写和部署应用,管理和监控性能和流量,实施智能负载平衡策略等。 + +Kubernetes 是一个强大的系统,它已经迅速成为各种云的基础,最主要的是[开放混合云][9]。今天就开始学习 Kubernetes 吧。随着你对 Kubernetes 的进一步了解,你会需要一些关于其主要概念和一般语法的快速提醒,所以[**下载我们的 Kubernetes 速查表**][10]并将它放在身边。 + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/21/5/kubernetes-cheat-sheet + +作者:[Seth Kenlon][a] +选题:[lujun9972][b] +译者:[geekpi](https://github.com/geekpi) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/seth +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/coverimage_cheat_sheet.png?itok=lYkNKieP (Cheat Sheet cover image) +[2]: https://opensource.com/article/20/6/kubernetes-raspberry-pi +[3]: https://opensource.com/article/18/10/getting-started-minikube +[4]: https://opensource.com/article/19/10/namespaces-and-containers-linux +[5]: https://www.busybox.net/ +[6]: http://hub.docker.com +[7]: http://quay.io +[8]: https://opensource.com/article/20/11/orchestration-vs-automation +[9]: https://opensource.com/article/20/10/keep-cloud-open +[10]: https://opensource.com/downloads/kubernetes-cheat-sheet From 3303262ae21b5598f657679c047f2a5089b22b7a Mon Sep 17 00:00:00 2001 From: geekpi Date: Tue, 11 May 2021 08:53:46 +0800 Subject: [PATCH 167/170] translating --- ...0412 Send your scans to a Linux machine over your network.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210412 Send your scans to a Linux machine over your network.md b/sources/tech/20210412 Send your scans to a Linux machine over your network.md index b9479545e4..412f4b1b67 100644 --- a/sources/tech/20210412 Send your scans to a Linux machine over your network.md +++ b/sources/tech/20210412 Send your scans to a Linux machine over your network.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/4/linux-scan-samba) [#]: author: (Marc Skinner https://opensource.com/users/marc-skinner) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (geekpi) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( ) From 605c1719cfe6f8aacf9abe36a5f0f127bf2009d7 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 11 May 2021 12:00:20 +0800 Subject: [PATCH 168/170] PRF @geekpi --- .../tech/20210505 Drop telnet for OpenSSL.md | 79 +++++++++---------- 1 file changed, 36 insertions(+), 43 deletions(-) diff --git a/translated/tech/20210505 Drop telnet for OpenSSL.md b/translated/tech/20210505 Drop telnet for OpenSSL.md index 423cf5c832..b2ed438f9e 100644 --- a/translated/tech/20210505 Drop telnet for OpenSSL.md +++ b/translated/tech/20210505 Drop telnet for OpenSSL.md @@ -3,42 +3,41 @@ [#]: author: (Seth Kenlon https://opensource.com/users/seth) [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) -为 OpenSSL 放弃 telnet +用 OpenSSL 替代 telnet ====== -Telnet 缺乏加密,这使得 OpenSSL 成为连接远程系统的更安全的选择。 -![Lock][1] -[telnet][2] 命令是最受欢迎的网络故障排除工具之一,从系统管理员到网络爱好者都可以使用。在网络计算的早期,telnet 被用来连接到一个远程系统。你可以用 telnet 访问一个远程系统的端口,登录并在该主机上运行命令。 +> Telnet 缺乏加密,这使得 OpenSSL 成为连接远程系统的更安全的选择。 -由于 telnet 缺乏加密功能,它在很大程度上已经被 OpenSSL 取代了这项工作。然而,作为一种智能的 `ping`,telnet 的相关仍然存在(甚至在某些情况下至今仍然存在)。虽然 `ping` 命令是一个探测主机响应的好方法,但这是它能做的_全部_。另一方面,telnet 不仅可以确认一个活动端口,而且还可以与该端口的服务进行交互。即便如此,由于大多数现代网络服务都是加密的,telnet 的作用可能要小得多,这取决于你想实现什么。 +![](https://img.linux.net.cn/data/attachment/album/202105/11/115934cggzmq8rm8suaqlq.png) + +[telnet][2] 命令是最受欢迎的网络故障排除工具之一,从系统管理员到网络爱好者都可以使用。在网络计算的早期,`telnet` 被用来连接到一个远程系统。你可以用 `telnet` 访问一个远程系统的端口,登录并在该主机上运行命令。 + +由于 `telnet` 缺乏加密功能,它在很大程度上已经被 OpenSSL 取代了这项工作。然而,作为一种智能的 `ping`,`telnet` 的作用仍然存在(甚至在某些情况下至今仍然存在)。虽然 `ping` 命令是一个探测主机响应的好方法,但这是它能做的 _全部_。另一方面,`telnet` 不仅可以确认一个活动端口,而且还可以与该端口的服务进行交互。即便如此,由于大多数现代网络服务都是加密的,`telnet` 的作用可能要小得多,这取决于你想实现什么。 ### OpenSSL s_client -对于大多数曾经需要 telnet 的任务,我现在使用 OpenSSL 的 `s_client` 命令。(我在一些任务中使用 [curl][3],但那些情况下我可能无论如何也不会使用 telnet)。大多数人都知道 [OpenSSL][4] 是一个加密的库和框架,但不是所有人都意识到它也是一个命令。`openssl` 命令的 `s_client`组件实现了一个通用的 SSL 或 TLS 客户端,帮助你使用 SSL 或 TLS 连接到远程主机。它是用来测试的,至少在内部使用与库相同的功能。 +对于大多数曾经需要 `telnet` 的任务,我现在使用 OpenSSL 的 `s_client` 命令。(我在一些任务中使用 [curl][3],但那些情况下我可能无论如何也不会使用 `telnet`)。大多数人都知道 [OpenSSL][4] 是一个加密的库和框架,但不是所有人都意识到它也是一个命令。`openssl` 命令的 `s_client` 组件实现了一个通用的 SSL 或 TLS 客户端,帮助你使用 SSL 或 TLS 连接到远程主机。它是用来测试的,至少在内部使用与该库相同的功能。 ### 安装 OpenSSL OpenSSL 可能已经安装在你的 Linux 系统上了。如果没有,你可以用你的发行版的软件包管理器安装它: - ``` -`$ sudo dnf install openssl` +$ sudo dnf install openssl ``` 在 Debian 或类似的系统上: - ``` -`$ sudo apt install openssl` +$ sudo apt install openssl ``` 安装后,验证它的响应是否符合预期: - ``` $ openssl version OpenSSL x.y.z FIPS @@ -46,8 +45,7 @@ OpenSSL x.y.z FIPS ### 验证端口访问 -最基本的 telnet 用法是一个看起来像这样的任务: - +最基本的 `telnet` 用法是一个看起来像这样的任务: ``` $ telnet mail.example.com 25 @@ -56,7 +54,7 @@ Connected to example.com. Escape character is '^]'. ``` -这将与正在端口 25(可能是邮件服务器)监听的任意服务开一个交互式会话(在此示例中)。 只要你获得访问权限,就可以与该服务进行通信。 +在此示例中,这将与正在端口 25(可能是邮件服务器)监听的任意服务打开一个交互式会话。只要你获得访问权限,就可以与该服务进行通信。 如果端口 25 无法访问,连接就会被拒绝。 @@ -83,14 +81,13 @@ Early data was not sent Verify return code: 0 (ok) ``` -但是,这仅是目标性 ping。从输出中可以看出,没有交换 SSL 证书,所以连接立即终止。为了充分利用 `openssl s_client`,你必须针对加密的端口。 +但是,这仅是目标性 `ping`。从输出中可以看出,没有交换 SSL 证书,所以连接立即终止。为了充分利用 `openssl s_client`,你必须连接加密的端口。 ### 交互式 OpenSSL -Web 浏览器和 Web 服务器进行交互,使指向 80 端口的流量实际上被转发到 443,这是保留给加密 HTTP 流量的端口。知道了这一点,你就可以用 `openssl` 命令连接到加密的端口,并与在其上运行的任何网络服务进行交互。 - -首先,使用 SSL 连接到一个端口。使用 `-showcerts` 选项会使 SSL 证书打印到你的终端上,使最初的输出比 telnet 要冗长得多: +Web 浏览器和 Web 服务器进行交互,可以使指向 80 端口的流量实际上被转发到 443,这是保留给加密 HTTP 流量的端口。知道了这一点,你就可以用 `openssl` 命令连接到加密的端口,并与在其上运行的任何网络服务进行交互。 +首先,使用 SSL 连接到一个端口。使用 `-showcerts` 选项会使 SSL 证书打印到你的终端上,一开始的输出要比 telnet 要冗长得多: ``` $ openssl s_client -connect example.com:443 -showcerts @@ -111,7 +108,6 @@ read R BLOCK 你被留在一个交互式会话中。最终,这个会话将关闭,但如果你及时行动,你可以向服务器发送 HTTP 信号: - ``` [...] GET / HTTP/1.1 @@ -120,27 +116,25 @@ HOST: example.com 按**回车键**两次,你会收到 `example.com/index.html` 的数据: - ``` [...] -<body> -<div> -    <h1>Example Domain</h1> -    <p>This domain is for use in illustrative examples in documents. You may use this -    domain in literature without prior coordination or asking for permission.</p> -    <p><a href="[https://www.iana.org/domains/example"\>More][5] information...</a></p> -</div> -</body> -</html> + +
+

Example Domain

+

This domain is for use in illustrative examples in documents. You may use this + domain in literature without prior coordination or asking for permission.

+

More information...

+
+ + ``` #### Email 服务器 -你也可以使用 OpenSSL 的 `s_client` 来测试一个加密的 email 服务器。要做到这点,你必须把你的测试用户的用户名和密码用 Base64 编码。 +你也可以使用 OpenSSL 的 `s_client` 来测试一个加密的 Email 服务器。要做到这点,你必须把你的测试用户的用户名和密码用 Base64 编码。 这里有一个简单的方法来做到: - ``` $ perl -MMIME::Base64 -e 'print encode_base64("username");' $ perl -MMIME::Base64 -e 'print encode_base64("password");' @@ -148,29 +142,28 @@ $ perl -MMIME::Base64 -e 'print encode_base64("password");' 当你记录了这些值,你就可以通过 SSL 连接到邮件服务器,它通常在 587 端口: - ``` $ openssl s_client -starttls smtp \ -connect email.example.com:587 -> ehlo example.com -> auth login +> ehlo example.com +> auth login ##paste your user base64 string here## ##paste your password base64 string here## -> mail from: [noreply@example.com][6] -> rcpt to: [admin@example.com][7] -> data -> Subject: Test 001 +> mail from: noreply@example.com +> rcpt to: admin@example.com +> data +> Subject: Test 001 This is a test email. . -> quit +> quit ``` 检查你的邮件(在这个示例代码中,是 `admin@example.com`),查看来自 `noreply@example.com` 的测试邮件。 -### OpenSSL 还是 telnet? +### OpenSSL 还是 Telnet? -telnet 仍然有用途,但它已经不是以前那种不可缺少的工具了。该命令在许多发行版上被归入 ”legacy“ 网络包,但还没有 `telnet-ng`或一些明显的继任者,管理员有时会对它被排除在默认安装之外感到疑惑。答案是,它不再是必不可少的,它的作用越来越小,这是_很好_的。网络安全很重要,所以要适应与加密接口互动的工具,这样你就不必在排除故障时禁用你的保护措施。 +`telnet` 仍然有用途,但它已经不是以前那种不可缺少的工具了。该命令在许多发行版上被归入 “遗留” 网络软件包,而且还没有 `telnet-ng` 之类的明显的继任者,管理员有时会对它被排除在默认安装之外感到疑惑。答案是,它不再是必不可少的,它的作用越来越小,这 _很好_。网络安全很重要,所以要适应与加密接口互动的工具,这样你就不必在排除故障时禁用你的保护措施。 -------------------------------------------------------------------------------- @@ -179,7 +172,7 @@ via: https://opensource.com/article/21/5/drop-telnet-openssl 作者:[Seth Kenlon][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 6792bd5b843b14b8e847583c07cd89ed892170d1 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 11 May 2021 12:01:00 +0800 Subject: [PATCH 169/170] PUB @geekpi https://linux.cn/article-13381-1.html --- .../tech => published}/20210505 Drop telnet for OpenSSL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20210505 Drop telnet for OpenSSL.md (99%) diff --git a/translated/tech/20210505 Drop telnet for OpenSSL.md b/published/20210505 Drop telnet for OpenSSL.md similarity index 99% rename from translated/tech/20210505 Drop telnet for OpenSSL.md rename to published/20210505 Drop telnet for OpenSSL.md index b2ed438f9e..5258c011e0 100644 --- a/translated/tech/20210505 Drop telnet for OpenSSL.md +++ b/published/20210505 Drop telnet for OpenSSL.md @@ -4,8 +4,8 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) [#]: reviewer: (wxy) -[#]: publisher: ( ) -[#]: url: ( ) +[#]: publisher: (wxy) +[#]: url: (https://linux.cn/article-13381-1.html) 用 OpenSSL 替代 telnet ====== From 4fc848e2cf9eb631b09288a295e1cab6b5aefa95 Mon Sep 17 00:00:00 2001 From: "Qian.Sun" Date: Tue, 11 May 2021 16:00:13 +0800 Subject: [PATCH 170/170] translating "Make Jenkins logs pretty" is translated by DCOLIVERSUN --- sources/tech/20210510 Make Jenkins logs pretty.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/tech/20210510 Make Jenkins logs pretty.md b/sources/tech/20210510 Make Jenkins logs pretty.md index 18ecacc8c6..cd4b7429cd 100644 --- a/sources/tech/20210510 Make Jenkins logs pretty.md +++ b/sources/tech/20210510 Make Jenkins logs pretty.md @@ -2,7 +2,7 @@ [#]: via: (https://opensource.com/article/21/5/jenkins-logs) [#]: author: (Evan "Hippy" Slatis https://opensource.com/users/hippyod) [#]: collector: (lujun9972) -[#]: translator: ( ) +[#]: translator: (DCOLIVERSUN) [#]: reviewer: ( ) [#]: publisher: ( ) [#]: url: ( )