Merge pull request #1 from LCTT/master

Sync
This commit is contained in:
Peaksol 2022-04-30 11:46:59 +08:00 committed by GitHub
commit a63c97a76e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 563 additions and 2134 deletions

View File

@ -1,110 +0,0 @@
[#]: subject: "Kubuntu 22.04 LTS Arrives with KDE Plasma 5.24"
[#]: via: "https://news.itsfoss.com/kubuntu-22-04-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Kubuntu 22.04 LTS Arrives with KDE Plasma 5.24
======
Ubuntu 22.04 LTS has finally been released. So, you can expect all of its official flavors to offer the latest and greatest soon after that.
And, the KDE flavour, i.e., Kubuntu 22.04 LTS is now also available to download!
You should expect all the [feature additions of Ubuntu 22.04 LTS][1] and specially tailored improvements for the Kubuntu 22.04 release.
Let me briefly emphasize the key changes.
### Kubuntu 22.04 LTS: Whats New?
The primary highlight of the release is KDE Plasma 5.24 LTS.
In addition to that, you should also notice updates to KDE apps and other pre-installed applications. Lets take a look:
#### KDE Plasma 5.24
![][2]
KDE Plasma 5.24 features an updated breeze theme, and several visual improvements. It is a long-term supported version that should get updates until Plasma 6 releases.
You had the option to use KDE Neon or Arch Linux, or a few other distros to experience KDE Plasma 5.24. Finally, Kubuntu is here as a mainstream distro featuring the latest and greatest from KDE.
You can learn more about [KDE Plasma 5.24][3] changes in our previous coverage.
If you are moving away from GNOME-based Ubuntu, you may want to check out our article on [KDE Plasma vs GNOME][4] to get some insights before making the switch.
#### Default Browser as Firefox Snap
Firefox 99 snap is the default browser. In case youre curious, Mozilla is working with Canonical to quickly push updates and conveniently maintain the browser using the snap package.
So, it only makes sense to keep it as the default. But, you can always install the deb package if you do not prefer using Snap.
#### GNOME-like Overview
With KDE Plasma 5.24, you get the ability to use a feature similar to GNOMEs Activities overview.
You can browse through your virtual desktops and windows at a glance with its help.
To access it, you can press the Super key + W, and heres how it should look:
![][5]
#### Improvements to Discover
![][6]
The software center for KDE i.e. Discover has received some upgrades. One of the neat additions includes the ability to prevent removing anything that is critical to the systems operation.
You should notice a warning when you try to remove something that could break the system.
If you prefer Flatpak, you can now open locally downloaded Flatpak packages and install it using the Flatpak repository URI.
#### Fingerprint Support
KDE Plasma 5.24 finally adds the support for fingerprint authentication. You can conveniently add up to 10 fingerprints and use them to unlock or authenticate something.
#### Other Improvements
![][7]
In addition to the major upgrades, you should expect subtle changes across the platform along with app updates that include:
* LibreOffice 7.3
* KDE Gear 21.12
* Dolphin
To explore more about the changes, you can refer to the [official release notes][8].
### Download Kubuntu 22.04 LTS
You can head to the official download page to get the latest ISO or choose to wait to receive the upgrade prompt.
[Kubuntu 20.04 LTS][9]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/kubuntu-22-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://itsfoss.com/ubuntu-22-04-release-features/
[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3NSIgd2lkdGg9IjEyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[3]: https://news.itsfoss.com/kde-plasma-5-24-lts-release/
[4]: https://itsfoss.com/kde-vs-gnome/
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3OSIgd2lkdGg9IjEyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU5MSIgd2lkdGg9IjgzOSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ1NyIgd2lkdGg9IjgxMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[8]: https://wiki.ubuntu.com/JammyJellyfish/ReleaseNotes/Kubuntu
[9]: https://cdimage.ubuntu.com/kubuntu/releases/22.04/release/

View File

@ -1,130 +0,0 @@
[#]: subject: "Ubuntu Budgie 22.04 LTS Released: Fast, Elegant, And More Feature-Filled Than Ever"
[#]: via: "https://news.itsfoss.com/ubuntu-budgie-22-04-release/"
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu Budgie 22.04 LTS Released: Fast, Elegant, And More Feature-Filled Than Ever
======
Since its initial release in 2016, Ive been an admirer of Ubuntu Budgie. With its sleek visuals, fluid animations, and solid Ubuntu base, it covers all my needs.
Although it is relatively new compared to other Ubuntu flavors, it has already managed to gain a significant following.
Now, with Ubuntu Budgie 22.04 LTS, this level of polish has been brought to a whole new level.
### Whats New?
![][1]
As to be expected, there are vast numbers of improvements compared to the previous 20.04 LTS release. Some changes include:
* The newly released [Budgie 10.6][2]
* budgie-applications-menu-applet improvements
* New hot corners “delay” and “pressure” options
* Panel spacing improvements
* RISCV64 support
* Theme updates from upstream
* New Chrome OS-like layout
You can expect updates for Ubuntu Budgie 22.04 up until 2025.
#### Budgie 10.6 Desktop
![][3]
Ubuntu Budgie 22.04 now ships with Budgie 10.6. As I highlighted in [our coverage][2] of the release, it is the first one under its new organization. In short, Joshua Strobl left the Solus distribution but still wanted to work on Budgie.
![][4]
To facilitate this, he forked the Budgie repository and formed the **Buddies of Budgie** organization, which now maintains and develops budgie.
Due to all of these changes, Budgie 10.6 wasnt a massive release, although it did bring a new notification system, alongside some minor code reformatting. As a result, other Budgie components can now use the notification system, opening up some interesting future options.
![][5]
Of course, Ubuntu Budgie 22.04 inherits these changes, and it will be interesting to see what they do with them in future releases.
#### App Menu Improvements
![][6]
Ubuntu Budgie 22.04 also has a few improvements to the application menu. One of my favorite features of the app menu is its fast search, which has now been improved. This comes in the form of the availability of the app context menu in the search results.
Additionally, the menu now also supports the non-default GPU flag from .desktop files. This is particularly useful for laptop users, as it allows simpler apps to use significantly less power. This is extended with a new context menu option, which allows users to easily change this option in the GUI.
Finally, the categories should now be more inclusive, meaning, fewer apps end up in the “**Other**” category.
As a laptop user, I have really been enjoying the extra battery life these changes have afforded me, and Im sure many of you will appreciate these changes too.
#### RISC-V Support
This improvement is extremely exciting. For those of you that are unaware, RISC-V is a fully open-source CPU architecture (think x86 and ARM) that is slowly becoming quite popular. As such, it is only a matter of time before we find these CPUs making their way into desktops and laptops (like what we have seen with ARM chips).
For this, Ubuntu Budgie now has support for this exciting architecture, although there is no pre-built disk image available. Instead, Ubuntu Server must be installed first, with the user than installing the `ubuntu-budgie-desktop` package.
Although the installation process is not for new users, this addition paves the way for support for the next generation of CPUs.
#### Theme Updates
![][7]
Another major highlight in Ubuntu Budgie 22.04 is the numerous theme updates. Firstly, the beautiful Arc theme has been updated with GTK 4 support, ready for apps transitioning from GTK 3. Of course, this doesnt affect Libadwaita apps, which you can read about why in our [in-depth coverage][8].
![][9]
The WhiteSur GTK and icon themes have been updated for macOS fans, with support for more apps and more accurate visuals.
Finally, the default Pocillo theme has been updated with more app icons.
You can learn more about the technical changes in the [official release notes][10].
### Getting Ubuntu Budgie 22.04
For the first time, you might want to try Ubuntu Budgie 22.04 on a virtual machine to see how it goes.
If you already have Ubuntu Budgie installed, upgrading is extremely simple. Simply copy the following command into the terminal, and follow the on-screen prompts. You may have to wait for a few days if the upgrade isnt available yet.
```
sudo do-release-upgrade -d -f DistUpgradeViewGtk3
```
For new users, just download the ISO file from the button below.
[Get Ubuntu Budgie 22.04 LTS][11]
Overall, Ubuntu Budgie is a great upgrade to an already awesome distro. Between the updated budgie version, RISC V support, and theme updates, Ubuntu Budgie continues to be a competitive alternative to other Ubuntu flavors.
_What are your thoughts on this release? Feel free to share them in the comments section below._
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/ubuntu-budgie-22-04-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,PHN2ZyBoZWlnaHQ9IjY4MSIgd2lkdGg9IjEzNDciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[2]: https://news.itsfoss.com/budgie-10-6-release/
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3NSIgd2lkdGg9IjEyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI3NyIgd2lkdGg9IjQ5OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxNiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY4MSIgd2lkdGg9IjEzNTUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxMiIgd2lkdGg9IjgwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[8]: https://news.itsfoss.com/gnome-libadwaita-library/
[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxNyIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[10]: https://ubuntubudgie.org/2022/03/ubuntu-budgie-22-04-lts-release-notes/
[11]: https://ubuntubudgie.org/downloads/

View File

@ -1,158 +0,0 @@
[#]: subject: "Ubuntu MATE 22.04 LTS Brings in a New Yaru Theme, MATE Desktop 1.26.1, and More Improvements"
[#]: via: "https://news.itsfoss.com/ubuntu-mate-22-04-release/"
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Ubuntu MATE 22.04 LTS Brings in a New Yaru Theme, MATE Desktop 1.26.1, and More Improvements
======
Ubuntu 22.04 LTS is an exciting release already.
While other Ubuntu-based distros should be getting ready to offer their latest versions based on Ubuntu 22.04 LTS, Ubuntus official flavors LTS releases have also landed.
Here, we focus on **Ubuntu MATE 22.04 LTS**, featuring the latest MATE Desktop 1.26.1.
Usually, Ubuntu MATE 22.04 LTS puts great effort on top of the improvements from the upstream.
This time, it has received significant updates, especially to the look/feel.
### Ubuntu Mate 22.04: Whats New?
Ubuntu Mate 22.04 brings quite a number of changes to the appearance apart from necessary packages updates and bug fixes.
Lets take a look at the major highlights.
#### 1\. Improved Yaru Theme Support
Ubuntus popular and community-backed default theme takes the center stage in this release. MATEs compatibility with the theme has been significantly improved since it was first included in Ubuntu MATE 21.04.
Now, all the Yaru color accents have been shipped, along with a new MATE-focused “Chelsea Cucumber” theme. The stock and the legacy Ambiant/Radiant themes have been removed.
![Source: Ubuntu MATE][1]
When upgrading to the new version, an automatic settings migration takes care of selecting a relevant Yaru MATE theme if your old theme is no longer supported.
MATEs default Windows Manager Metacity or Marco has also been updated to provide a uniform look and feel. This applies to third-party compositors too.
#### 2\. Improved Panels
Expanding on the Yaru compatibility, the Appearance Control Center now accurately switches the color scheme for apps. The panel now comes in both light and dark mode, along with a host of panel icons to Yaru.
The theming brings support to Plank and Pluma too.
![][2]
![][3]
Source: Ubuntu MATE
#### 3\. Updated Ayatana Indicators
Ubuntu MATE 20.10 users must be familiar with Ayatana Indicators. For those unaware, they are basically a fork of Ubuntu indicators and created to be used across many distros and desktop environments.
![Source: Ubuntu MATE][4]
Ayatana Indicators 22.2.0 has been included in this new release. This means theres less RAM and CPU usage, leading to improved battery performance and backward compatibility with Ubuntu Indicators.
#### 4\. MATE Tweak
One of the most popular features of Ubuntu MATE is the presence of MATE Tweak which allows users to select their preferred desktop layout ranging from Cupertino (macOS) to Redmond (Windows 10).
Users should now expect an improved layout switching and restoring for custom layouts.
![Source: Ubuntu MATE][5]
Also, those who make use of third-party compositors should expect better support. Do note that support for Compton has been dropped (since its not maintained anymore) and support for picom has been added instead.
Lastly, the mate-netbook layout has been removed due to conflicting issues with client-side decorated windows.
#### 5\. MATE HUD
MATE HUD is a custom HUD that makes use of rofi to run menu commands.
It has been updated to support the latest version of rofi, as a new theme engine has been introduced. Also, the window now sports rounded corners, depending on the current GTK theme.
Users can also add their own rofi themes by pasting them in:
 `~/.local/share/rofi/themes`.
#### 6\. New Apps and Packages
Users will be pleased to know that support for PPA, Snap, AppImage, and Flatpak has been enabled by default.
The snap-desktop-integration has also been included to improve the users session and automatically install snapped themes.
GNOME users will particularly be pleased to see three new GNOME apps—Maps, Clocks, and Weather.
![Source: Ubuntu MATE][6]
Not to forget, you should also expect the latest [Firefox 99.0][7], Celluloid 0.20, Evolution 3.44, LibreOffice 7.3.2.1, and Blueman 2.2.4, among other package updates.
#### 7\. Linux Kernel 5.15 LTS and Mate Desktop 1.26.1
You can expect the latest Linux Kernel 5.15 LTS release with Ubuntu MATE 22.04.
And, the desktop environment is now the latest MATE 1.26.1, which mostly includes performance and bug fixes on top of improvements to Mate Desktop 1.26.0.
#### 8\. Lighter ISO Size
Ubuntu MATEs ISO size has been reduced to a decent 2.7 GB. So, whats the take away?
Considering, that all of the legacy themes and icons have been removed. So, its safe to say, Ubuntu MATEs theming system has completely transitioned to upstream Yaru. Furthermore, three snap-based applications have also been discarded.
Moreover, the proprietary NVIDIA graphics drivers can no longer be found in the default install.
Fret not, as a checkbox can be marked during the installation process to install third-party drivers to include NVIDIA drivers, just like some other Ubuntu-based distros. Theres even a minimal installation checkbox as well.
#### Other Changes
There have been several bug fixes and other additions as well.
* Bugs related to Plank, Brisk Menu, and a screen reader for visually-impaired users have been fixed.
* Addition of 3 beautiful AI-generated wallpapers.
* An updated Welcome screen with newer software.
* Support for indicators for battery-powered gaming peripherals.
* A new image for the Raspberry Pi.
You can have a look at the [official release notes][8] for detailed technical information.
### Download Ubuntu MATE 22.04
Ubuntu MATE 22.04 LTS is now available to download. You can grab the ISO using the button below.
[Ubuntu MATE 22.04 LTS][9]
### Closing Thoughts
Ubuntu MATE 22.04 is a feature-rich release with the main focus on visuals. Looks like community-driven Ubuntu MATE is now a more compelling alternative to Canonicals Ubuntu, especially after noticing the inclusion of Yaru-only themes.
What do you think about Ubuntu MATE 22.04? Let me know your thoughts in the comments below.
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/ubuntu-mate-22-04-release/
作者:[Rishabh Moharir][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/rishabh/
[b]: https://github.com/lujun9972
[1]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjYxNCIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI3IiB3aWR0aD0iNTMzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg==
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI4IiB3aWR0aD0iNTM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIvPg==
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUzNSIgd2lkdGg9IjgxNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjczMiIgd2lkdGg9IjgyMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[7]: https://news.itsfoss.com/firefox-99-release/
[8]: https://ubuntu-mate.org/blog/ubuntu-mate-jammy-jellyfish-release-notes/
[9]: https://ubuntu-mate.org/download/amd64/

View File

@ -1,109 +0,0 @@
[#]: subject: "Xubuntu 22.04 LTS Releases with Updated Theme, Whisker Menu 2.7.1, and Other Upgrades"
[#]: via: "https://news.itsfoss.com/xubuntu-22-04-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Xubuntu 22.04 LTS Releases with Updated Theme, Whisker Menu 2.7.1, and Other Upgrades
======
Xubuntu is one of the most loved Ubuntu flavours featuring the Xfce desktop environment.
If you were looking to install the latest [Long-Term release][1] Ubuntu-based distro that is light on system resources, Xubuntu 22.04 should be a good pick.
Xubuntu 22.04 LTS includes a visual refresh and some package updates. Here, I shall highlight the key changes with this release.
### Xubuntu 22.04 LTS: Whats New?
Xubuntu 22.04 comes packed with new wallpapers, app upgrades, and more.
Some of the significant refinements include:
#### Theme Updates
![][2]
Greybird, the default theme for Xubuntu has introduced initial support for GTK 4 to blend in well with modern GTK applications.
It also brings back the Accessibility and Compact window manager themes.
![][3]
The elementary-xfce theme adds new icons and improves on the existing ones for a cleaner Xubuntu desktop experience.
#### New Wallpapers
Xubuntu features new default wallpapers along with six new additions from the community wallpaper contest.
![][4]
The new collection looks absolutely lovely.
#### Application Stack Updates
You should notice newer GNOME 42 applications, GTK 3.24.33, and other subsystem updates like NetworkManager 1.36, Mesa 22, PulseAudio 16, etc.
#### Xfce App Updates
![][5]
A range of Xfce applications have been updated with Xubuntu 22.04, some of the major ones include:
* **Mousepad 0.5.8**: A text editor with more features with support for session backup/restore, plugin support, and new plugins.
* **Ristretto 0.12.2**: An image viewer with improved thumbnail support and performance improvements
* **Whisker Menu Plugin 2.7.1**: More customization options
#### Firefox Snap
Just like Ubuntu 22.04, Xubuntu 22.04 includes Firefox as a snap package.
The snap package can be a secure experience with sandboxing and will get quicker updates by Mozilla.
### Other Improvements
You should expect numerous bug fixes and performance improvements along with the essential enhancements.
There are more package updates that include:
* Thunderbird 91
* LibreOffice 7.3.2
* Blueman 2.2.4
* GNOME Disk Usage Analyzer 41.0
* MATE Calculator 1.26.0
* Thunar plugins
You can learn more about the changes in its [official announcement post][6].
### Download Xubuntu 22.04
You can head to the link in the button below to get the latest ISO available. For an upgrade, you may want to wait for a few days.
[Xubuntu 22.04 LTS][7]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/xubuntu-22-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://itsfoss.com/long-term-support-lts/
[2]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU2MSIgd2lkdGg9IjEzNDciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjYzNiIgd2lkdGg9Ijc4OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU4NCIgd2lkdGg9Ijc4MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://wiki.xubuntu.org/releases/22.04/release-notes#major_updates
[7]: https://cdimage.ubuntu.com/xubuntu/releases/22.04/release/

View File

@ -1,135 +0,0 @@
[#]: subject: "Lubuntu 22.04 LTS Releases with Calamares Installer, LXQt 0.17.0, & Featherpad 1.0.1"
[#]: via: "https://news.itsfoss.com/lubuntu-22-04-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Lubuntu 22.04 LTS Releases with Calamares Installer, LXQt 0.17.0, & Featherpad 1.0.1
======
Looking for a lightweight Ubuntu distro for your computer as an alternative to GNOME-powered Ubuntu 22.04 LTS?
Lubuntu 22.04 LTS is here as a replacement. In fact, you can also take a look at [Xubuntu 22.04 LTS][1], if you are exploring lightweight options.
Here, we focus on the most exciting changes with Lubuntu 22.04 LTS.
### Lubuntu 22.04 LTS: Whats New?
Lubuntu 22.04 LTS comes packed with LXQt 0.17.0, updated applications, and some improvements.
It is a [Long-Term Release][2] version. So, you can expect updates for Lubuntu 22.04 LTS until 2025, i.e., **three-year support**, which is usual for [official Ubuntu flavours][3].
Some of the significant changes include:
#### New Wallpaper
Everyone loves a new wallpaper. With various Ubuntu flavours like [MATE][4], [Kubuntu][5], and [Budgie][6] releases, you have got plenty of new wallpapers.
With Lubuntu 22.04, there is an interesting wallpaper that you can find on [Unsplash][7]:
![][8]
#### LXQt 0.17.0 (Can Upgrade to LXQt 1.1.0)
While LXQt 0.17.0 includes essential improvements, it would have been more exciting to see the recent [LXQt 1.1.0][9]. Considering it was released last week, it did not make the cut in this release.
However, they could have gone with LXQt 1.0.0 at least.
![][10]
LXQt 0.17.0 includes improvements to the session behavior for non-LXQt apps, power manager updates, an auto-hide feature added to the LXQt panel, and further adjustments.
For details on LXQt 0.17.0, you can refer to its [official release notes][11].
The LXQt project team on Twitter [mentioned][12] that it is possible to easily install LXQt 1.1.0 on Lubuntu. I tried it on a virtual machine, so you can give it a try if you like.
![][13]
All you have to do is add the following repository and then upgrade the system:
```
sudo add-apt-repository ppa:severusseptimius/lxqt
sudo apt update
sudo apt upgrade
```
I did not have any issues with it. However, I am uncertain if Lubuntu recommends it yet (or they may push an update soon).
#### Firefox as Snap
Unfortunately, every Ubuntu flavour does include Firefox as a snap package, considering Mozilla will be focusing on the Snap for faster updates and maintenance.
In a good way, you should experience enhanced security with its sandboxing.
The release notes mention that the browser can be slower to start for the first time after boot, especially in the live environment. But you shouldnt have trouble with subsequent runs.
#### Package Updates
With Lubuntu 22.04 LTS, you get upgrades to various applications that include:
* VLC 3.0.16
* Featherpad 1.0.1
* LibreOffice 7.3.2
Along with the applications, you also get an update to the Discover Software Center for a smoother experience with managing/installing software.
#### Calamares Installer
Lubuntu 22.04 LTS utilizes the Calamares installer in place of Ubiquity, as favored by most of the other Ubuntu flavours.
You get the swapfile size set to 512 MB by default. But, you can opt for no swap, if you like.
#### Dropping Trojita/k3b/fcitx
Some of the popular packages like Trojita (mail client), k3b, and fcitx are no longer present in Lubuntu 22.04 LTS.
So, if you are upgrading, you can manually install it using their [official guide][14].
To explore more about the changes in Lubuntu 22.04 LTS, you can refer to the [official release notes][15].
### Download Lubuntu 22.04 LTS
_If you are upgrading from Lubuntu 20.04 LTS that has LXQt, this new version uses a different Openbox settings configuration file._
_If you have customized, `~/.config/openbox/lxqt-rc.xml` you will want to copy that file to `~/.config/openbox/rc.xml`. This change does not impact new installations and upgrades from 21.10._
To perform a fresh installation, you can get the latest ISO from the official website (direct link/torrent available).
[Lubuntu 22.04 LTS][16]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/lubuntu-22-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/xubuntu-22-04-release/
[2]: https://itsfoss.com/long-term-support-lts/
[3]: https://itsfoss.com/which-ubuntu-install/
[4]: https://news.itsfoss.com/ubuntu-mate-22-04-release/
[5]: https://news.itsfoss.com/kubuntu-22-04-release/
[6]: https://news.itsfoss.com/ubuntu-budgie-22-04-release/
[7]: https://unsplash.com/photos/bviex5lwf3s
[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU3NiIgd2lkdGg9IjEwMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[9]: https://news.itsfoss.com/lxqt-1-1-0-release/
[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3NSIgd2lkdGg9IjEyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[11]: https://lxqt-project.org/release/2021/04/16/lxqt-0-17-0/
[12]: https://twitter.com/lxqt_project/status/1517432593020563458?s=20&t=WVsqRk8b83pSE5_TfZ3n4Q
[13]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUwOSIgd2lkdGg9IjcxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[14]: https://discourse.lubuntu.me/t/dropping-trojita-k3b-fcitx-from-lubuntu-jammy-22-04-seed/3044
[15]: https://discourse.lubuntu.me/t/lubuntu-22-04-lts-jammy-jellyfish-release-notes/3179
[16]: https://lubuntu.me/downloads/

View File

@ -1,151 +0,0 @@
[#]: subject: "Pop!_OS 22.04 LTS Arrives with Automatic Updates, GNOME 42, and PipeWire"
[#]: via: "https://news.itsfoss.com/pop-os-22-04-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Pop!_OS 22.04 LTS Arrives with Automatic Updates, GNOME 42, and PipeWire
======
The next LTS upgrade for Pop!_OS is finally here.
Pop!_OS 22.04 is based on Ubuntu 22.04 LTS with [Linux Kernel 5.16.19][1] at the time of launch.
Let us take a brief look at what it has to offer.
### Pop!_OS 22.04 LTS: Whats New?
Visually, it does not feature any massive changes. However, it does feature **GNOME 42** as its base for its COSMIC Desktop.
So, you should expect to see some [GNOME 42 features][2] available with Pop!_OS 22.04.
In addition to the desktop environment, there are a few new feature additions. I shall mention the key highlights as you read on.
#### Automatic Updates
With Pop!_OS 22.04 LTS, you can easily update/upgrade the system from the OS Upgrade & Recovery panel via the System settings.
![][3]
You can also schedule the day/time to process the upgrade. The scheduled automatic updates include support for Debian, Flatpak, and Nix packages as well. Surely, this should help save time by eliminating the need for checking updates every other day.
By default, you will be notified of the available updates on a weekly basis. But, you can tweak the settings to get notified every day or each month. The notifications will be turned off if you have automatic updates enabled.
![][4]
And, yes, the automatic updates are disabled by default. You will have to set it up if you require it.
#### New Support Panel
![][5]
Unlike other distributions, Pop!_OS tries to take a mainstream approach to provide technical support for users running the operating system.
To give clarity, they have added a new support panel in the settings where you can quickly access the documentation, join the community support, and create log files. These options should make the support options accessible, and encourage users to refer the recommended sources for quick support.
#### New Screenshot Tool
![][6]
Thanks to GNOME 42, you get the brand new screenshot UI with the ability to record the screen as well.
With Pop!_OS 22.04 LTS, I found the positioning of the UI a bit weird. And, it looks like they tweaked it a bit for a transparent look with slightly different icons.
#### Dark vs Light Backgrounds
![][7]
Unlike other distributions, you wont find a new wallpaper collection to cater to the light/dark variants.
However, when you choose the light/dark theme, the wallpaper will change to the default light/dark variants available.
Do note that the light/dark mode can have independent backgrounds (you can change them) and isnt locked to the default.
#### Improvements to the Pop!_Shop
The Pop!_Shop has received some significant performance upgrades along with subtle changes to offer a good user experience even with small window sizes.
![][8]
You will also find a new “**Recently Updated**” section to highlight the latest updated applications.
This should come in handy to find applications that have been recently updated with new features/fixes.
#### Improvements to the Launcher
![][9]
With Pop!_OS, you do not need a launcher like [Ulauncher][10] to quickly access the settings/apps.
This is because you already get a built-in launcher that works pretty well.
With Pop!_OS 22.04 LTS, the launcher has also received some upgrades where you can also access settings for desktop options, background, appearance, dock, and workspaces.
#### PipeWire for Audio
With Pop!_OS 22.04 LTS, the default for audio processing will use PipeWire instead of PulseAudio.
This should not pose a problem for hardware compatible with PulseAudio, and potentially opens up for better quality audio, and more customizations.
#### Linux Kernel
![][11]
It is a no-brainer that Pop!_OS regularly updates the Linux Kernel offered. However, you will find [Linux Kernel 5.16.19][1] with all the hardware improvements out-of-the-box.
#### Other Improvements
![][12]
There are some additional essential improvements that can be useful for a variety of users. Some of them include:
* Better Multi-Monitor support
* Fixed layout on HiDPI displays
* Improved performance
* Pop!_OS Upgrade will only activate when you are checking or performing upgrades.
* When updating Debian packages, you get the ability to resume it if interrupted.
* Added support for laptop privacy screens.
* RDP by default for remote desktop use.
* New default profile icon.
* Workspace improvements.
* Icons are now SVG-based instead of PNG-based.
### Download Pop!_OS 22.04 LTS
If you are already running Pop!_OS, you should be easily able to upgrade it to Pop!_OS 22.04 in some time.
In either case, you can download the latest Nvidia/Intel/AMD ISO from the [official site][13].
[Pop!_OS 22.04 LTS][13]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/pop-os-22-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/linux-kernel-5-16/
[2]: https://news.itsfoss.com/gnome-42-features/
[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjYxNCIgd2lkdGg9IjkyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI2MSIgd2lkdGg9IjUyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY1NyIgd2lkdGg9IjEwMjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ1NyIgd2lkdGg9IjYxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[7]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUyNyIgd2lkdGg9Ijg5OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[8]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjY3NyIgd2lkdGg9Ijk4MiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[9]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU1NCIgd2lkdGg9Ijc5OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[10]: https://itsfoss.com/ulauncher/
[11]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjU4MSIgd2lkdGg9Ijg2OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[12]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjMzOCIgd2lkdGg9IjEyMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIi8+
[13]: https://pop.system76.com/

View File

@ -1,114 +0,0 @@
[#]: subject: "Everything You Need to Know About Mozilla and Meta (Facebook) Working Together"
[#]: via: "https://news.itsfoss.com/mozilla-meta-facebook/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
[#]: translator: "sthwhl"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Everything You Need to Know About Mozilla and Meta (Facebook) Working Together
======
Im sure it is easy to make several assumptions about the story going by the headlines.
_Why?_
Well, it is **Facebook**, after all.
Even if it is “**Meta**” now, it does not change the fact that they were involved in some of the worst privacy practices ever.
If you think twice, Facebook isnt an ideal privacy-focused social media platform (even though I still use it for certain use-cases).
_With so much more to complain about, how come a privacy-focused company “Mozilla” end up working with Meta (Facebook)?_
Surprisingly, Mozilla made several remarks about Facebooks bad privacy practices in the past.
Not to forget, Mozilla Firefox was one of the first web browsers to prevent companies like Facebook from tracking users thanks to [total cookie protection][1] and some other technologies.
Furthermore, they recently started a study collaborating with **The Markup** to analyze the type of information Facebook collects.
So, why are they working with Facebook now?
### Privacy-Preserving Attribution Using IPA
Mozilla revealed in a [blog post][2] that it has been working with a team from Meta on a new proposal about a privacy-respecting attribution.
Attribution in advertising lets the advertisers/marketers know if their ad campaigns are performing as expected.
And, Mozilla plans to introduce **Interoperable Private Attribution** (or IPA) to give advertisers the ability to check insights while making the advertising privacy-friendly.
### How Does IPA Aim to Make Advertising Privacy-Friendly?
Mozilla is utilizing its expertise with its existing privacy-preserving telemetry technology, [Prio][3].
While that sounds promising, how does IPA work?
As described in the blog post, Mozilla says that IPA offers two privacy-preserving features:
* It uses Multi-party Computation (MPC) to prevent a single entity (browser, advertisers, or websites) to learn about user behavior.
* Instead of individual results linking to a track/profile users, IPA is an aggregated system that does not link back anything to individual users.
Technically, they plan to use “match keys” that are different from cookies but can be used across different browsers/devices to be able to generate useful reports.
These match keys will help produce summary statistics about the ad interaction events (whether it is clicked, seen, and if it made a conversion).
As per the proposal, the match keys would be writable but not readable, making it a critical component of the privacy properties in IPA.
### Is This Useful?
Taking a good look at its [proposal][4], it is safe to say that it sounds promising.
Considering ad revenue is still the major fuel for most businesses, it only makes sense to make it privacy-friendly and less intrusive.
The result could simply bring back the good old days when users werent worried about advertising but curious about what they see in them.
Unlike [Googles FLoC][5], this can create a win-win scenario for both advertisers and the users as well.
### How Does Meta Fit in the Picture?
![][6]
I am really not sure about this.
I have no intention of making ill-informed remarks about the technology proposed by Mozilla, collaborating with Meta.
On the other hand, I cant be confident about it, considering they chose “Meta” to collaborate on something that is important to improve the advertising industry without harming user privacy.
### Mozilla, What Are You Hiding?
Im not stirring up controversy (or a wild theory).
But, a transparent, and privacy-respecting company just decided to collaborate with a company that isnt really known for privacy?
Isnt it too obvious that the team at Mozilla already knows this?
And, they still decided to go ahead with it, without any transparent public communication on their social media channels as well.
Yes, they did publish the blog post, but it wasnt promoted, considering it is an important proposal affecting almost every industry on the web.
_Is it safe to assume that Mozilla no longer cares about its userbase with this move?_
_Its totally up for discussion in the comments down below!_
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/mozilla-meta-facebook/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[sthwhl](https://github.com/sthwhl)
校对:[校对者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/firefox-86-release/
[2]: https://blog.mozilla.org/en/mozilla/privacy-preserving-attribution-for-advertising/
[3]: https://crypto.stanford.edu/prio/
[4]: https://docs.google.com/document/d/1KpdSKD8-Rn0bWPTu4UtK54ks0yv2j22pA5SrAD9av4s/edit
[5]: https://techcrunch.com/2022/01/25/google-kills-off-floc-replaces-it-with-topics/
[6]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=

View File

@ -1,117 +0,0 @@
[#]: subject: "How I grew my product management career with open source"
[#]: via: "https://opensource.com/article/22/4/product-management-open-source"
[#]: author: "Shebuel Inyang https://opensource.com/users/shebuel"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How I grew my product management career with open source
======
Gaining experience in open source helped me create a successful career path in product management.
![How to make release notes count][1]
(Image by: Opensource.com)
I'm a curious person, and I like to explore many fields in the technology industry, from visual design, programming, and product management. I am also drawn to open source ideas. So I'm excited to share with you how I, as a product manager (PM), have used open source to build my career. I believe my experiences can help others who are interested in product management.
### What is open source software?
In simple terms, open source software is software with source code that anyone can inspect, modify, enhance, and share. [Opensource.com][2] has documented a detailed and [comprehensive article][3] to help you understand what open source is.
My discovery of open source started in the early phase of my career as a visual designer. I was curious to know what it meant and how to be a part of it and that led me to reach out to a few experienced open source contributors and advocates. Though I didn't contribute at the time, I acquired knowledge of the community which helped me when I made the decision to start contributing.
### How to break into product management
It might seem that breaking into product management is difficult, that you must put your boxing gloves on, come out fighting and force your way in. And yet, I've heard from other product managers that it was actually easier to break into compared to writing or debugging blocks of code, or pushing pixels to generate complex wireframes for product design.
Our journeys and approaches are different, so it's safe to say that the road to becoming a product manager can often be long and unpredictable. With the increasing level of competition in the job market, getting a role as an entry-level product manager can be difficult. Recruiters often require 2 to 3 years of experience to join a product team. You might ask, "How am I expected to get the experience?"
Here's a quick look at the four strategies for directing your career toward product management:
1. Internal transition at a large organization that might require your manager to advocate for you as a good fit to transition within the company. You must have proof that you have transferable skills. This is generally considered the quickest route to product management experience.
2. Junior PM roles at large organizations. It's common to go through an organization to get an internship, or to join an associate product management program that employs a junior PM.
3. You can also try to get into product management by joining a startup.
4. You can start a side project of your own to break into product management.
Without hands-on experience, it's difficult to become a product manager. As open source product manager [David Ryan][4] stated, "Few people are taking advantage of what is possibly the most under-utilized path to practical product management experience."
What is this path?
### Open source is the answer
An open source project needs more than just code to be successful. This ranges from a strategy for the project, user research, and linking the strategy to daily work. These are all activities that a product manager should be actively involved in. But how much of the product management discipline is the responsibility of a first-time product manager?
[Susana Videira Lopes][5] stated in one of her articles that the "essence of getting an entry-level product role is to introduce you to the product management discipline in a way that builds up your confidence, while at the same time delivering value for the organization as early as possible."
How can an entry-level product manager get involved with an open source project, and deliver value?
**Simple answer: Ask Questions**
Here are some questions you can ask:
* What problem or opportunity is being explored?
* How is the solution being framed to tackle this problem?
* What metrics are used to determine whether the project is successful?
* Who are the people this solution serves?
* How are they being informed about it?
* How does the solution fit with both the immediate and wider ecosystem?
* Where is the documentation being maintained on the project?
* Do project maintainers understand accessibility requirements? Are they being met?
You've acquired skills as a product manager. Use them to help you express these thoughtful questions, and invite the team to consider them. The team can select the ones that resonate for the developers and the community, and prioritize what's most important.
These questions help you build user personas, a customer journey map, lean canvas, and more. This kind of experience goes a long way towards developing career potential.
### My experience at OpenUnited
[OpenUnited][6] is a platform that connects digital talent and work in a unique way. We work with contributors to help them prove specific skills by working on high quality open source products. Once their work is verified, these talented contributors are eligible to work for companies on paid tasks.
OpenUnited is an open source platform that onboards contributors of all kinds—product managers, developers, designers, business analysts, and others. It helps them improve their skills and provides them with a long term source of high-quality paying work.
Farbod Saraf, a senior product manager at Miro, onboarded me on a platform he created with a partner. I joined the project and learned about contributing to OpenUnited. I also learned about other projects that could help me grow in my product management career, and made my first contribution. It was a good experience because I got to start working quickly on bits of the product, to improve the experience of other users on the platform. My mentor Farbod made it easier by making himself available to provide any needed help while I contributed to the project.
Everything you contribute to an open source project becomes a powerful public record of your development as a product manager. I strongly recommend the OpenUnited platform to anyone who wants to break into product management with open source.
### How do you find open source projects?
Many people believe that contributing to open source is best left to developers because they find it difficult to search for and get open source projects they can comfortably contribute to.
As a first-time product manager, there are several ways to find open source projects to contribute to. Here's a list of some:
* Speak up in product manager communities such as Mind The Product and Product School.
* Go to local meetups and open source conferences like Open Source Community Africa Festival to connect with open source project creators and maintainers.
* Engage with product managers working at larger open source companies such as GitLab or Mozilla. They may be able to refer you to open source projects where your skills and contribution could be beneficial.
* Investigate open source advocates and DevRel teams at open source companies to get recommendations of open projects an entry-level product manager can contribute to.
* Look to open source companies on AngelList or popular open source products on Product Hunt. These are great places to consider in your search for open products to contribute to.
### What next?
[Ruth Ikegah][7], a great source of inspiration for me, wrote an [article for beginners in open source][8]. In her article, she gave some tips to consider as you embark on contributing to open source.
Before joining and contributing, do some research on the project, community, or organization, and ask questions. When you finally decide to join the community, try to be active by introducing yourself and stating areas where you can help the project.
Of course, open source isn't just a stepping stone for your career. It's a platform in itself, and it needs great product managers. Get involved, contribute to the community, and help it help you hone your skills.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/4/product-management-open-source
作者:[Shebuel Inyang][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/shebuel
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/rh_003784_02_os.comcareers_resume_rh1x.png
[2]: http://Opensource.com
[3]: https://opensource.com/resources/what-open-source
[4]: https://twitter.com/hellodavidryan
[5]: https://twitter.com/susanavlopes
[6]: https://openunited.com
[7]: https://stars.github.com/profiles/ruth-ikegah/
[8]: https://ruthikegah.xyz/a-beginners-guide-to-open-source

View File

@ -1,137 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Open source live streaming with Open Broadcaster Software)
[#]: via: (https://opensource.com/article/20/4/open-source-live-stream)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
Open source live streaming with Open Broadcaster Software
======
If you have something to say, a skill to teach, or just something fun to
share, broadcast it to the world with OBS.
![An old-fashioned video camera][1]
If you have a talent you want to share with the world, whether it's making your favorite sourdough bread or speedrunning through a level of your favorite video game, live streaming is the modern show-and-tell. It's a powerful way to tell the world about your hobby through a medium once reserved for exclusive and expensive TV studios. Not only is the medium available to anyone with a relatively good internet connection, but the most popular software to make it happen is open source.
[OBS][2] (Open Broadcaster Software) is a cross-platform application that serves as a control center for your live stream. A _stream_, strictly speaking, means _progressive and coherent data_. The data in a stream can be audio, video, graphics, text, or anything else you can represent as digital data. OBS is programmed to accept data as input, combine streams together (technically referred to as _mixing_) into one product, and then broadcast it.
![OBS flowchart][3]
A _broadcast_ is data that can be received by some target. If you're live streaming, your primary target is a streaming service that can host your stream, so other people can find it in a web browser or media player. A live stream is a live event, so people have to "tune in" to your stream when it's happening, or else they miss it. However, you can also target your own hard drive so you can record a presentation and then post it on the internet later for people to watch at their leisure.
### Installing OBS
To install OBS on Windows or macOS, download an installer package from [OBS's website][2].
To install OBS on Linux, either install it with your package manager (such as **dnf**, **zypper**, or **apt**) or [install it as a Flatpak][4].
### Join a streaming service
In order to live stream, you must have a stream broker. That is, you need a central location on the internet for your stream to be delivered, so your viewers can get to what you're broadcasting. There are a few popular streaming services online, like YouTube and Twitch. You can also [set up your own video streaming server][5] using open source software.
Regardless of which option you choose, before you begin streaming, you must have a destination for your stream. If you do use a streaming service, you must obtain a _streaming key_. A streaming key is a hash value (it usually looks something like **2ae2fad4e33c3a89c21**) that is private and unique to you. You use this key to authenticate yourself through your streaming software. Without it, the streaming service can't know you are who you say you are and won't let you broadcast over your user account.
* * *
* * *
* * *
**![Streaming key][6]**
* In Twitch, your **Primary Stream Key** is available in the **Channel** panel of your **Creator Dashboard**.
* On YouTube, you must enable live streaming by verifying your account. Once you've done that, your **Stream Key** is in the **Other Features** menu option of your **Channel Dashboard**.
* If you're using your own server, there's no maze-like GUI to navigate. You just [create your own streaming key][7].
### Enter your streaming key
Once you have a streaming key, launch OBS and go to the **File** > **Settings** menu.
In the **Settings** window, click on the **Stream** category in the left column. Set the **Service** to your stream service (Custom, Twitch, YouTube, etc.), and enter your stream key. Click the **OK** button in the bottom right to save your changes.
### Create sources
In OBS, _sources_ represent any input signal you want to stream. By default, sources are listed at the bottom of the OBS window.
![OBS sources][8]
This might be a webcam, a microphone, an audio stream (such as the sound of a video game you're playing), a screen capture of your computer (a "screencast"), a slideshow you want to present, an image, and so on. Before you start streaming, you should define all the sources you plan on using for your stream. This means you have to do a little pre-production and consider what you anticipate for your show. Any camera you have set up must be defined as a source in OBS. Any extra media you plan on cutting to during your show must be defined as a source. Any sound effects or background music must be defined as a source.
Not all sources "happen" at once. By adding media to your **Sources** panel in OBS, you're just assembling the raw components for your stream. Once you make devices and data available to OBS, you can create your **Scenes**.
#### Setting up audio
Computers have seemingly dozens of ways to route audio. Here's the workflow to follow when setting up sound for your stream:
1. Check your cables: verify that your microphone is plugged in.
2. Go to your computer's sound control panel and set the input to whatever microphone you want OBS to treat as the main microphone. This might be a gaming headset or a boom mic or a desktop podcasting mic or a Bluetooth device or a fancy audio interface with XLR ports. Whatever it is, make sure your computer "hears" your main sound input.
3. In OBS, create a source for your main microphone and name it something obvious (e.g., boom mic, master sound, or mic).
4. Do a test. Make sure OBS "hears" your microphone by referring to the audio-level monitors at the bottom of the OBS window. If it's not responding to the input you believe you've set as input, check your cables, check your computer sound control panel, and check OBS.
I've seen more people panic over audio sources than any other issue when streaming, and we've _all_ made the same dumb mistakes (several times each, probably!) when attempting to set a microphone for a live stream or videoconference call. Breathe deep, check your cables, check your inputs and outputs, and [get comfortable with audio][9]. It'll pay off in the end.
### Create scenes
A **Scene** in OBS is a screen layout and consists of one or more sources.
![Scenes in OBS][10]
For instance, you might create a scene called **Master shot** that shows you sitting at your desk in front of your computer or at the kitchen counter ready to mix ingredients together. The source could be a webcam mounted on a tripod a meter or two in front of you. Because you want to cut to a detail shot, you might create a second scene called **Close-up**, which uses the computer screen and audio as one input source and your microphone as another source, so you can narrate as you demonstrate what you're doing. If you're doing a baking show, you might want to mount a second webcam above the counter, so you can cut to an overhead shot of ingredients being mixed. Here, your source is a different webcam but probably the same microphone (to avoid making changes in the audio).
A _scene_, in other words, is a lot like a _shot_ in traditional production vernacular, but it can be the combination of many shots. The fun thing about OBS is that you can mix and match a lot of different sources together, so when you're adding a **Scene**, you can resize and position different sources to achieve picture-in-picture, or split-screen, or any other effect you might want. It's common in video game "let's play" streams to have the video game in full-screen, with the player inset in the lower right or left. Or, if you're recording a panel or a multi-player game like D&D you might have several cameras covering several players in a _Brady Bunch_ grid.
The possibilities are endless. During streaming, you can cut from one scene to another as needed. This is intended to be a dynamic system, so you can change scenes depending on what the viewer needs to see at any given moment.
Generally, you want to have some preset scenes before you start to stream. Even if you have a friend willing to do video mixing as you stream, you always want a safe scene to fall back to, so take time beforehand to set up at least a master shot that shows you doing whatever it is you're doing. If all else fails, at least you'll have your main shot you can safely and reliably cut to.
### Transitions
When switching from one scene to another, OBS uses a transition. Once you have more than one scene, you can configure what kind of transition it uses in the **Transitions** panel. Simple transitions are usually best. By default, OBS uses a subtle crossfade, but you can experiment with others as you see fit.
### Go live
To start streaming, do your vocal exercises, find your motivation, and press the **Start Streaming** button.
![Start streaming in OBS][11]
As long as you've set up your streaming service correctly, you're on the air (or on the wires, anyway).
If you're the talent (the person in front of the camera), it might be easiest to have someone control OBS during streaming. But if that's not possible, you can control it yourself as long as you've practiced a little in advance. If you're screencasting, it helps to have a two-monitor setup so you can control OBS without it being on screen.
### Streaming for success
Many of us take streaming for granted now that the internet exists and can broadcast media created by _anyone_. It's a hugely powerful means of communication, and we're all responsible for making the most of it.
If you have something positive to say, a skill to teach, words of encouragement, or just something fun that you want to share, and you feel like you want to broadcast to the world, then take the time to learn OBS. You might not get a million viewers, but independent media is a vital part of [free culture][12]. The world can always use empowering and positive open source voices, and yours may be one of the most important of all.
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/4/open-source-live-stream
作者:[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/LIFE_film.png?itok=aElrLLrw (An old-fashioned video camera)
[2]: http://obsproject.com
[3]: https://opensource.com/sites/default/files/obs-flowchart.jpg (OBS flowchart)
[4]: https://flatpak.org/setup
[5]: https://opensource.com/article/19/1/basic-live-video-streaming-server
[6]: https://opensource.com/sites/default/files/twitch-key.jpg (Streaming key)
[7]: https://opensource.com/article/19/1/basic-live-video-streaming-server#obs
[8]: https://opensource.com/sites/default/files/uploads/obs-sources.jpg (OBS sources)
[9]: https://opensource.com/article/17/1/linux-plays-sound
[10]: https://opensource.com/sites/default/files/uploads/obs-scenes.jpg (Scenes in OBS)
[11]: https://opensource.com/sites/default/files/uploads/obs-stream-start.jpg (Start streaming in OBS)
[12]: https://opensource.com/article/18/1/creative-commons-real-world

View File

@ -1,618 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Using the systemctl command to manage systemd units)
[#]: via: (https://opensource.com/article/20/5/systemd-units)
[#]: author: (David Both https://opensource.com/users/dboth)
Using the systemctl command to manage systemd units
======
Units are the basis of everything in systemd.
![woman on laptop sitting at the window][1]
In the first two articles in this series, I explored the Linux systemd startup sequence. In the [first article][2], I looked at systemd's functions and architecture and the controversy around its role as a replacement for the old SystemV init program and startup scripts. And in the [second article][3], I examined two important systemd tools, systemctl and journalctl, and explained how to switch from one target to another and to change the default target.
In this third article, I'll look at systemd units in more detail and how to use the systemctl command to explore and manage units. I'll also explain how to stop and disable units and how to create a new systemd mount unit to mount a new filesystem and enable it to initiate during startup.
### Preparation
All of the experiments in this article should be done as the root user (unless otherwise specified). Some of the commands that simply list various systemd units can be performed by non-root users, but the commands that make changes cannot. Make sure to do all of these experiments only on non-production hosts or virtual machines (VMs).
One of these experiments requires the sysstat package, so install it before you move on. For Fedora and other Red Hat-based distributions you can install sysstat with:
```
`dnf -y install sysstat`
```
The sysstat RPM installs several statistical tools that can be used for problem determination. One is [System Activity Report][4] (SAR), which records many system performance data points at regular intervals (every 10 minutes by default). Rather than run as a daemon in the background, the sysstat package installs two systemd timers. One timer runs every 10 minutes to collect data, and the other runs once a day to aggregate the daily data. In this article, I will look briefly at these timers but wait to explain how to create a timer in a future article.
### systemd suite
The fact is, systemd is more than just one program. It is a large suite of programs all designed to work together to manage nearly every aspect of a running Linux system. A full exposition of systemd would take a book on its own. Most of us do not need to understand all of the details about how all of systemd's components fit together, so I will focus on the programs and components that enable you to manage various Linux services and deal with log files and journals.
### Practical structure
The structure of systemd—outside of its executable files—is contained in its many configuration files. Although these files have different names and identifier extensions, they are all called "unit" files. Units are the basis of everything systemd.
Unit files are ASCII plain-text files that are accessible to and can be created or modified by a sysadmin. There are a number of unit file types, and each has its own man page. Figure 1 lists some of these unit file types by their filename extensions and a short description of each.
systemd unit | Description
---|---
.automount | The **.automount** units are used to implement on-demand (i.e., plug and play) and mounting of filesystem units in parallel during startup.
.device | The **.device** unit files define hardware and virtual devices that are exposed to the sysadmin in the **/dev/directory**. Not all devices have unit files; typically, block devices such as hard drives, network devices, and some others have unit files.
.mount | The **.mount** unit defines a mount point on the Linux filesystem directory structure.
.scope | The **.scope** unit defines and manages a set of system processes. This unit is not configured using unit files, rather it is created programmatically. Per the **systemd.scope** man page, “The main purpose of scope units is grouping worker processes of a system service for organization and for managing resources.”
.service | The **.service** unit files define processes that are managed by systemd. These include services such as crond cups (Common Unix Printing System), iptables, multiple logical volume management (LVM) services, NetworkManager, and more.
.slice | The **.slice** unit defines a “slice,” which is a conceptual division of system resources that are related to a group of processes. You can think of all system resources as a pie and this subset of resources as a “slice” out of that pie.
.socket | The **.socket** units define interprocess communication sockets, such as network sockets.
.swap | The **.swap** units define swap devices or files.
.target | The **.target** units define groups of unit files that define startup synchronization points, runlevels, and services. Target units define the services and other units that must be active in order to start successfully.
.timer | The **.timer** unit defines timers that can initiate program execution at specified times.
### systemctl
I looked at systemd's startup functions in the [second article][3], and here I'll explore its service management functions a bit further. systemd provides the **systemctl** command that is used to start and stop services, configure them to launch (or not) at system startup, and monitor the current status of running services.
In a terminal session as the root user, ensure that root's home directory ( **~** ) is the [PWD][5]. To begin looking at units in various ways, list all of the loaded and active systemd units. systemctl automatically pipes its [stdout][6] data stream through the **less** pager, so you don't have to:
```
[root@testvm1 ~]# systemctl
UNIT                                       LOAD   ACTIVE SUB       DESCRIPTION              
proc-sys-fs-binfmt_misc.automount          loaded active running   Arbitrary Executable File>
sys-devices-pci0000:00-0000:00:01.1-ata7-host6-target6:0:0-6:0:0:0-block-sr0.device loaded a>
sys-devices-pci0000:00-0000:00:03.0-net-enp0s3.device loaded active plugged   82540EM Gigabi>
sys-devices-pci0000:00-0000:00:05.0-sound-card0.device loaded active plugged   82801AA AC'97>
sys-devices-pci0000:00-0000:00:08.0-net-enp0s8.device loaded active plugged   82540EM Gigabi>
sys-devices-pci0000:00-0000:00:0d.0-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda1.device loa>
sys-devices-pci0000:00-0000:00:0d.0-ata1-host0-target0:0:0-0:0:0:0-block-sda-sda2.device loa>
<snip removed lots of lines of data from here>
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
206 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
```
As you scroll through the data in your terminal session, look for some specific things. The first section lists devices such as hard drives, sound cards, network interface cards, and TTY devices. Another section shows the filesystem mount points. Other sections include various services and a list of all loaded and active targets.
The sysstat timers at the bottom of the output are used to collect and generate daily system activity summaries for SAR. SAR is a very useful problem-solving tool. (You can learn more about it in Chapter 13 of my book [_Using and Administering Linux: Volume 1, Zero to SysAdmin: Getting Started_][7].)
Near the very bottom, three lines describe the meanings of the statuses (loaded, active, and sub). Press **q** to exit the pager.
Use the following command (as suggested in the last line of the output above) to see all the units that are installed, whether or not they are loaded. I won't reproduce the output here, because you can scroll through it on your own. The systemctl program has an excellent tab-completion facility that makes it easy to enter complex commands without needing to memorize all the options:
```
`[root@testvm1 ~]# systemctl list-unit-files`
```
You can see that some units are disabled. Table 1 in the man page for systemctl lists and provides short descriptions of the entries you might see in this listing. Use the **-t** (type) option to view just the timer units:
```
[root@testvm1 ~]# systemctl list-unit-files -t timer
UNIT FILE                    STATE  
[chrony-dnssrv@.timer][8]         disabled
dnf-makecache.timer          enabled
fstrim.timer                 disabled
logrotate.timer              disabled
logwatch.timer               disabled
[mdadm-last-resort@.timer][9]     static  
mlocate-updatedb.timer       enabled
sysstat-collect.timer        enabled
sysstat-summary.timer        enabled
systemd-tmpfiles-clean.timer static  
unbound-anchor.timer         enabled
```
You could do the same thing with this alternative, which provides considerably more detail:
```
[root@testvm1 ~]# systemctl list-timers
Thu 2020-04-16 09:06:20 EDT  3min 59s left n/a                          n/a           systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Thu 2020-04-16 10:02:01 EDT  59min left    Thu 2020-04-16 09:01:32 EDT  49s ago       dnf-makecache.timer          dnf-makecache.service
Thu 2020-04-16 13:00:00 EDT  3h 57min left n/a                          n/a           sysstat-collect.timer        sysstat-collect.service
Fri 2020-04-17 00:00:00 EDT  14h left      Thu 2020-04-16 12:51:37 EDT  3h 49min left mlocate-updatedb.timer       mlocate-updatedb.service
Fri 2020-04-17 00:00:00 EDT  14h left      Thu 2020-04-16 12:51:37 EDT  3h 49min left unbound-anchor.timer         unbound-anchor.service
Fri 2020-04-17 00:07:00 EDT  15h left      n/a                          n/a           sysstat-summary.timer        sysstat-summary.service
6 timers listed.
Pass --all to see loaded but inactive timers, too.
[root@testvm1 ~]#
```
Although there is no option to do systemctl list-mounts, you can list the mount point unit files:
```
[root@testvm1 ~]# systemctl list-unit-files -t mount
UNIT FILE                     STATE    
-.mount                       generated
boot.mount                    generated
dev-hugepages.mount           static  
dev-mqueue.mount              static  
home.mount                    generated
proc-fs-nfsd.mount            static  
proc-sys-fs-binfmt_misc.mount disabled
run-vmblock\x2dfuse.mount     disabled
sys-fs-fuse-connections.mount static  
sys-kernel-config.mount       static  
sys-kernel-debug.mount        static  
tmp.mount                     generated
usr.mount                     generated
var-lib-nfs-rpc_pipefs.mount  static  
var.mount                     generated
15 unit files listed.
[root@testvm1 ~]#
```
The STATE column in this data stream is interesting and requires a bit of explanation. The "generated" states indicate that the mount unit was generated on the fly during startup using the information in **/etc/fstab**. The program that generates these mount units is **/lib/systemd/system-generators/systemd-fstab-generator,** along with other tools that generate a number of other unit types. The "static" mount units are for filesystems like **/proc** and **/sys**, and the files for these are located in the **/usr/lib/systemd/system** directory.
Now, look at the service units. This command will show all services installed on the host, whether or not they are active:
```
`[root@testvm1 ~]# systemctl --all -t service`
```
The bottom of this listing of service units displays 166 as the total number of loaded units on my host. Your number will probably differ.
Unit files do not have a filename extension (such as **.unit**) to help identify them, so you can generalize that most configuration files that belong to systemd are unit files of one type or another. The few remaining files are mostly **.conf** files located in **/etc/systemd**.
Unit files are stored in the **/usr/lib/systemd** directory and its subdirectories, while the **/etc/systemd/** directory and its subdirectories contain symbolic links to the unit files necessary to the local configuration of this host.
To explore this, make **/etc/systemd** the PWD and list its contents. Then make **/etc/systemd/system** the PWD and list its contents, and list the contents of at least a couple of the current PWD's subdirectories.
Take a look at the **default.target** file, which determines which runlevel target the system will boot to. In the second article in this series, I explained how to change the default target from the GUI (**graphical.target**) to the command-line only (**multi-user.target**) target. The **default.target** file on my test VM is simply a symlink to **/usr/lib/systemd/system/graphical.target**.
Take a few minutes to examine the contents of the **/etc/systemd/system/default.target** file:
```
[root@testvm1 system]# cat default.target
#  SPDX-License-Identifier: LGPL-2.1+
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
[Unit]
Description=Graphical Interface
Documentation=man:systemd.special(7)
Requires=multi-user.target
Wants=display-manager.service
Conflicts=rescue.service rescue.target
After=multi-user.target rescue.service rescue.target display-manager.service
AllowIsolate=yes
```
Note that this requires the **multi-user.target**; the **graphical.target** cannot start if the **multi-user.target** is not already up and running. It also says it "wants" the **display-manager.service** unit. A "want" does not need to be fulfilled in order for the unit to start successfully. If the "want" cannot be fulfilled, it will be ignored by systemd, and the rest of the target will start regardless.
The subdirectories in **/etc/systemd/system** are lists of wants for various targets. Take a few minutes to explore the files and their contents in the **/etc/systemd/system/graphical.target.wants** directory.
The **systemd.unit** man page contains a lot of good information about unit files, their structure, the sections they can be divided into, and the options that can be used. It also lists many of the unit types, all of which have their own man pages. If you want to interpret a unit file, this would be a good place to start.
### Service units
A Fedora installation usually installs and enables services that particular hosts do not need for normal operation. Conversely, sometimes it doesn't include services that need to be installed, enabled, and started. Services that are not needed for the Linux host to function as desired, but which are installed and possibly running, represent a security risk and should—at minimum—be stopped and disabled and—at best—should be uninstalled.
The systemctl command is used to manage systemd units, including services, targets, mounts, and more. Take a closer look at the list of services to identify services that will never be used:
```
[root@testvm1 ~]# systemctl --all -t service
UNIT                           LOAD      ACTIVE SUB        DESCRIPTION                            
<snip>
chronyd.service                loaded    active running    NTP client/server                      
crond.service                  loaded    active running    Command Scheduler                      
cups.service                   loaded    active running    CUPS Scheduler                          
dbus-daemon.service            loaded    active running    D-Bus System Message Bus                
<snip>
● ip6tables.service           not-found inactive dead     ip6tables.service                  
● ipset.service               not-found inactive dead     ipset.service                      
● iptables.service            not-found inactive dead     iptables.service                    
<snip>
firewalld.service              loaded    active   running  firewalld - dynamic firewall daemon
<snip>
● ntpd.service                not-found inactive dead     ntpd.service                        
● ntpdate.service             not-found inactive dead     ntpdate.service                    
pcscd.service                  loaded    active   running  PC/SC Smart Card Daemon
```
I have pruned out most of the output from the command to save space. The services that show "loaded active running" are obvious. The "not-found" services are ones that systemd is aware of but are not installed on the Linux host. If you want to run those services, you must install the packages that contain them.
Note the **pcscd.service** unit. This is the PC/SC smart-card daemon. Its function is to communicate with smart-card readers. Many Linux hosts—including VMs—have no need for this reader nor the service that is loaded and taking up memory and CPU resources. You can stop this service and disable it, so it will not restart on the next boot. First, check its status:
```
[root@testvm1 ~]# systemctl status pcscd.service
● pcscd.service - PC/SC Smart Card Daemon
   Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
   Active: active (running) since Fri 2019-05-10 11:28:42 EDT; 3 days ago
     Docs: man:pcscd(8)
 Main PID: 24706 (pcscd)
    Tasks: 6 (limit: 4694)
   Memory: 1.6M
   CGroup: /system.slice/pcscd.service
           └─24706 /usr/sbin/pcscd --foreground --auto-exit
May 10 11:28:42 testvm1 systemd[1]: Started PC/SC Smart Card Daemon.
```
This data illustrates the additional information systemd provides versus SystemV, which only reports whether or not the service is running. Note that specifying the **.service** unit type is optional. Now stop and disable the service, then re-check its status:
```
[root@testvm1 ~]# systemctl stop pcscd ; systemctl disable pcscd
Warning: Stopping pcscd.service, but it can still be activated by:
  pcscd.socket
Removed /etc/systemd/system/sockets.target.wants/pcscd.socket.
[root@testvm1 ~]# systemctl status pcscd
● pcscd.service - PC/SC Smart Card Daemon
   Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2019-05-13 15:23:15 EDT; 48s ago
     Docs: man:pcscd(8)
 Main PID: 24706 (code=exited, status=1/FAILURE)
May 10 11:28:42 testvm1 systemd[1]: Started PC/SC Smart Card Daemon.
May 13 15:23:15 testvm1 systemd[1]: Stopping PC/SC Smart Card Daemon...
May 13 15:23:15 testvm1 systemd[1]: pcscd.service: Main process exited, code=exited, status=1/FAIL>
May 13 15:23:15 testvm1 systemd[1]: pcscd.service: Failed with result 'exit-code'.
May 13 15:23:15 testvm1 systemd[1]: Stopped PC/SC Smart Card Daemon.
```
The short log entry display for most services prevents having to search through various log files to locate this type of information. Check the status of the system runlevel targets—specifying the "target" unit type is required:
```
[root@testvm1 ~]# systemctl status multi-user.target
● multi-user.target - Multi-User System
   Loaded: loaded (/usr/lib/systemd/system/multi-user.target; static; vendor preset: disabled)
   Active: active since Thu 2019-05-09 13:27:22 EDT; 4 days ago
     Docs: man:systemd.special(7)
May 09 13:27:22 testvm1 systemd[1]: Reached target Multi-User System.
[root@testvm1 ~]# systemctl status graphical.target
● graphical.target - Graphical Interface
   Loaded: loaded (/usr/lib/systemd/system/graphical.target; indirect; vendor preset: disabled)
   Active: active since Thu 2019-05-09 13:27:22 EDT; 4 days ago
     Docs: man:systemd.special(7)
May 09 13:27:22 testvm1 systemd[1]: Reached target Graphical Interface.
[root@testvm1 ~]# systemctl status default.target
● graphical.target - Graphical Interface
   Loaded: loaded (/usr/lib/systemd/system/graphical.target; indirect; vendor preset: disabled)
   Active: active since Thu 2019-05-09 13:27:22 EDT; 4 days ago
     Docs: man:systemd.special(7)
May 09 13:27:22 testvm1 systemd[1]: Reached target Graphical Interface.
```
The default target is the graphical target. The status of any unit can be checked in this way.
### Mounts the old way
A mount unit defines all of the parameters required to mount a filesystem on a designated mount point. systemd can manage mount units with more flexibility than those using the **/etc/fstab** filesystem configuration file. Despite this, systemd still uses the **/etc/fstab** file for filesystem configuration and mounting purposes. systemd uses the **systemd-fstab-generator** tool to create transient mount units from the data in the **fstab** file.
I will create a new filesystem and a systemd mount unit to mount it. If you have some available disk space on your test system, you can do it along with me.
_Note that the volume group and logical volume names may be different on your test system. Be sure to use the names that are pertinent to your system._
You will need to create a partition or logical volume, then make an EXT4 filesystem on it. Add a label to the filesystem, **TestFS**, and create a directory for a mount point **/TestFS**.
To try this on your own, first, verify that you have free space on the volume group. Here is what that looks like on my VM where I have some space available on the volume group to create a new logical volume:
```
[root@testvm1 ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0  120G  0 disk
├─sda1          8:1    0    4G  0 part /boot
└─sda2          8:2    0  116G  0 part
  ├─VG01-root 253:0    0    5G  0 lvm  /
  ├─VG01-swap 253:1    0    8G  0 lvm  [SWAP]
  ├─VG01-usr  253:2    0   30G  0 lvm  /usr
  ├─VG01-home 253:3    0   20G  0 lvm  /home
  ├─VG01-var  253:4    0   20G  0 lvm  /var
  └─VG01-tmp  253:5    0   10G  0 lvm  /tmp
sr0            11:0    1 1024M  0 rom  
[root@testvm1 ~]# vgs
  VG   #PV #LV #SN Attr   VSize    VFree  
  VG01   1   6   0 wz--n- <116.00g <23.00g
```
Then create a new volume on **VG01** named **TestFS**. It does not need to be large; 1GB is fine. Then create a filesystem, add the filesystem label, and create the mount point:
```
[root@testvm1 ~]# lvcreate -L 1G -n TestFS VG01
  Logical volume "TestFS" created.
[root@testvm1 ~]# mkfs -t ext4 /dev/mapper/VG01-TestFS
mke2fs 1.45.3 (14-Jul-2019)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 8718fba9-419f-4915-ab2d-8edf811b5d23
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@testvm1 ~]# e2label /dev/mapper/VG01-TestFS TestFS
[root@testvm1 ~]# mkdir /TestFS
```
Now, mount the new filesystem:
```
[root@testvm1 ~]# mount /TestFS/
mount: /TestFS/: can't find in /etc/fstab.
```
This will not work because you do not have an entry in **/etc/fstab**. You can mount the new filesystem even without the entry in **/etc/fstab** using both the device name (as it appears in **/dev**) and the mount point. Mounting in this manner is simpler than it used to be—it used to require the filesystem type as an argument. The mount command is now smart enough to detect the filesystem type and mount it accordingly.
Try it again:
```
[root@testvm1 ~]# mount /dev/mapper/VG01-TestFS /TestFS/
[root@testvm1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  120G  0 disk
├─sda1            8:1    0    4G  0 part /boot
└─sda2            8:2    0  116G  0 part
  ├─VG01-root   253:0    0    5G  0 lvm  /
  ├─VG01-swap   253:1    0    8G  0 lvm  [SWAP]
  ├─VG01-usr    253:2    0   30G  0 lvm  /usr
  ├─VG01-home   253:3    0   20G  0 lvm  /home
  ├─VG01-var    253:4    0   20G  0 lvm  /var
  ├─VG01-tmp    253:5    0   10G  0 lvm  /tmp
  └─VG01-TestFS 253:6    0    1G  0 lvm  /TestFS
sr0              11:0    1 1024M  0 rom  
[root@testvm1 ~]#
```
Now the new filesystem is mounted in the proper location. List the mount unit files:
```
`[root@testvm1 ~]# systemctl list-unit-files -t mount`
```
This command does not show a file for the **/TestFS** filesystem because no file exists for it. The command **systemctl status TestFS.mount** does not display any information about the new filesystem either. You can try it using wildcards with the **systemctl status** command:
```
[root@testvm1 ~]# systemctl status *mount
● usr.mount - /usr
   Loaded: loaded (/etc/fstab; generated)
   Active: active (mounted)
    Where: /usr
     What: /dev/mapper/VG01-usr
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
<SNIP>
● TestFS.mount - /TestFS
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since Fri 2020-04-17 16:02:26 EDT; 1min 18s ago
    Where: /TestFS
     What: /dev/mapper/VG01-TestFS
● run-user-0.mount - /run/user/0
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since Thu 2020-04-16 08:52:29 EDT; 1 day 5h ago
    Where: /run/user/0
     What: tmpfs
● var.mount - /var
   Loaded: loaded (/etc/fstab; generated)
   Active: active (mounted) since Thu 2020-04-16 12:51:34 EDT; 1 day 1h ago
    Where: /var
     What: /dev/mapper/VG01-var
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
    Tasks: 0 (limit: 19166)
   Memory: 212.0K
      CPU: 5ms
   CGroup: /system.slice/var.mount
```
This command provides some very interesting information about your system's mounts, and your new filesystem shows up. The **/var** and **/usr** filesystems are identified as being generated from **/etc/fstab**, while your new filesystem simply shows that it is loaded and provides the location of the info file in the **/proc/self/mountinfo** file.
Next, automate this mount. First, do it the old-fashioned way by adding an entry in **/etc/fstab**. Later, I'll show you how to do it the new way, which will teach you about creating units and integrating them into the startup sequence.
Unmount **/TestFS** and add the following line to the **/etc/fstab** file:
```
`/dev/mapper/VG01-TestFS  /TestFS       ext4    defaults        1 2`
```
Now, mount the filesystem with the simpler **mount** command and list the mount units again:
```
[root@testvm1 ~]# mount /TestFS
[root@testvm1 ~]# systemctl status *mount
<SNIP>
● TestFS.mount - /TestFS
   Loaded: loaded (/proc/self/mountinfo)
   Active: active (mounted) since Fri 2020-04-17 16:26:44 EDT; 1min 14s ago
    Where: /TestFS
     What: /dev/mapper/VG01-TestFS
<SNIP>
```
This did not change the information for this mount because the filesystem was manually mounted. Reboot and run the command again, and this time specify **TestFS.mount** rather than using the wildcard. The results for this mount are now consistent with it being mounted at startup:
```
[root@testvm1 ~]# systemctl status TestFS.mount
● TestFS.mount - /TestFS
   Loaded: loaded (/etc/fstab; generated)
   Active: active (mounted) since Fri 2020-04-17 16:30:21 EDT; 1min 38s ago
    Where: /TestFS
     What: /dev/mapper/VG01-TestFS
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)
    Tasks: 0 (limit: 19166)
   Memory: 72.0K
      CPU: 6ms
   CGroup: /system.slice/TestFS.mount
Apr 17 16:30:21 testvm1 systemd[1]: Mounting /TestFS...
Apr 17 16:30:21 testvm1 systemd[1]: Mounted /TestFS.
```
### Creating a mount unit
Mount units may be configured either with the traditional **/etc/fstab** file or with systemd units. Fedora uses the **fstab** file as it is created during the installation. However, systemd uses the **systemd-fstab-generator** program to translate the **fstab** file into systemd units for each entry in the **fstab** file. Now that you know you can use systemd **.mount** unit files for filesystem mounting, try it out by creating a mount unit for this filesystem.
First, unmount **/TestFS**. Edit the **/etc/fstab** file and delete or comment out the **TestFS** line. Now, create a new file with the name **TestFS.mount** in the **/etc/systemd/system** directory. Edit it to contain the configuration data below. The unit file name and the name of the mount point _must_ be identical, or the mount will fail:
```
# This mount unit is for the TestFS filesystem
# By David Both
# Licensed under GPL V2
# This file should be located in the /etc/systemd/system directory
[Unit]
Description=TestFS Mount
[Mount]
What=/dev/mapper/VG01-TestFS
Where=/TestFS
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
```
The **Description** line in the **[Unit]** section is for us humans, and it provides the name that's shown when you list mount units with **systemctl -t mount**. The data in the **[Mount]** section of this file contains essentially the same data that would be found in the **fstab** file.
Now enable the mount unit:
```
[root@testvm1 etc]# systemctl enable TestFS.mount
Created symlink /etc/systemd/system/multi-user.target.wants/TestFS.mount → /etc/systemd/system/TestFS.mount.
```
This creates the symlink in the **/etc/systemd/system** directory, which will cause this mount unit to be mounted on all subsequent boots. The filesystem has not yet been mounted, so you must "start" it:
```
`[root@testvm1 ~]# systemctl start TestFS.mount`
```
Verify that the filesystem has been mounted:
```
[root@testvm1 ~]# systemctl status TestFS.mount
● TestFS.mount - TestFS Mount
   Loaded: loaded (/etc/systemd/system/TestFS.mount; enabled; vendor preset: disabled)
   Active: active (mounted) since Sat 2020-04-18 09:59:53 EDT; 14s ago
    Where: /TestFS
     What: /dev/mapper/VG01-TestFS
    Tasks: 0 (limit: 19166)
   Memory: 76.0K
      CPU: 3ms
   CGroup: /system.slice/TestFS.mount
Apr 18 09:59:53 testvm1 systemd[1]: Mounting TestFS Mount...
Apr 18 09:59:53 testvm1 systemd[1]: Mounted TestFS Mount.
```
This experiment has been specifically about creating a unit file for a mount, but it can be applied to other types of unit files as well. The details will be different, but the concepts are the same. Yes, I know it is still easier to add a line to the **/etc/fstab** file than it is to create a mount unit. But this is a good example of how to create a unit file because systemd does not have generators for every type of unit.
### In summary
This article looked at systemd units in more detail and how to use the systemctl command to explore and manage units. It also showed how to stop and disable units and create a new systemd mount unit to mount a new filesystem and enable it to initiate during startup.
In the next article in this series, I will take you through a recent problem I had during startup and show you how I circumvented it using systemd.
### 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 webpages offer more detailed and reliable information about systemd startup.
* The Fedora Project has a good, practical [guide][10] [to systemd][10]. It has pretty much everything you need to know in order to configure, manage, and maintain a Fedora computer using systemd.
* The Fedora Project also has a good [cheat sheet][11] that cross-references the old SystemV commands to comparable systemd ones.
* For detailed technical information about systemd and the reasons for creating it, check out [Freedesktop.org][12]'s [description of systemd][13].
* [Linux.com][14]'s "More systemd fun" offers more advanced systemd [information and tips][15].
There is also a series of deeply technical articles for Linux sysadmins by Lennart Poettering, the designer and primary developer of systemd. These articles were written between April 2010 and September 2011, but they are just as relevant now as they were then. Much of everything else good that has been written about systemd and its ecosystem is based on these papers.
* [Rethinking PID 1][16]
* [systemd for Administrators, Part I][17]
* [systemd for Administrators, Part II][18]
* [systemd for Administrators, Part III][19]
* [systemd for Administrators, Part IV][20]
* [systemd for Administrators, Part V][21]
* [systemd for Administrators, Part VI][22]
* [systemd for Administrators, Part VII][23]
* [systemd for Administrators, Part VIII][24]
* [systemd for Administrators, Part IX][25]
* [systemd for Administrators, Part X][26]
* [systemd for Administrators, Part XI][27]
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/5/systemd-units
作者:[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/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
[2]: https://opensource.com/article/20/4/systemd
[3]: https://opensource.com/article/20/4/systemd-startup
[4]: https://en.wikipedia.org/wiki/Sar_%28Unix%29
[5]: https://en.wikipedia.org/wiki/Pwd
[6]: https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)
[7]: http://www.both.org/?page_id=1183
[8]: mailto:chrony-dnssrv@.timer
[9]: mailto:mdadm-last-resort@.timer
[10]: https://docs.fedoraproject.org/en-US/quick-docs/understanding-and-administering-systemd/index.html
[11]: https://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet
[12]: http://Freedesktop.org
[13]: http://www.freedesktop.org/wiki/Software/systemd
[14]: http://Linux.com
[15]: https://www.linux.com/training-tutorials/more-systemd-fun-blame-game-and-stopping-services-prejudice/
[16]: http://0pointer.de/blog/projects/systemd.html
[17]: http://0pointer.de/blog/projects/systemd-for-admins-1.html
[18]: http://0pointer.de/blog/projects/systemd-for-admins-2.html
[19]: http://0pointer.de/blog/projects/systemd-for-admins-3.html
[20]: http://0pointer.de/blog/projects/systemd-for-admins-4.html
[21]: http://0pointer.de/blog/projects/three-levels-of-off.html
[22]: http://0pointer.de/blog/projects/changing-roots
[23]: http://0pointer.de/blog/projects/blame-game.html
[24]: http://0pointer.de/blog/projects/the-new-configuration-files.html
[25]: http://0pointer.de/blog/projects/on-etc-sysinit.html
[26]: http://0pointer.de/blog/projects/instances.html
[27]: http://0pointer.de/blog/projects/inetd.html

View File

@ -1,193 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (A guide to setting up your Open Source Program Office (OSPO) for success)
[#]: via: (https://opensource.com/article/20/5/open-source-program-office)
[#]: author: (J. Manrique Lopez de la Fuente https://opensource.com/users/jsmanrique)
A guide to setting up your Open Source Program Office (OSPO) for success
======
Learn how to best grow and maintain your open source communities and
allies.
![community team brainstorming ideas][1]
Companies create Open Source Program Offices (OSPO) to manage their relationship with the open source ecosystems they depend on. By understanding the company's open source ecosystem, an OSPO is able to maximize the company's return on investment and reduce the risks of consuming, contributing to, and releasing open source software. Additionally, since the company depends on its open source ecosystem, ensuring its health and sustainability shall ensure the company's health, sustainable growth, and evolution.
### How has OSPO become vital to companies and their open source ecosystem?
Marc Andreessen has said that "software is eating the world," and more recently, it could be said that open source is eating the software world. But how is that process happening?
Companies get involved with open source projects in several ways. These projects comprise the company's open source ecosystem, and their relationships and interactions can be seen through Open Source Software's (OSS) inbound and outbound processes.
From the OSS inbound point of view, companies use it to build their own solutions and their own infrastructure. OSS gets introduced because it's part of the code their technology providers use, or because their own developers add open source components to the company's information technology (IT) infrastructure.
From the OSS outbound point of view, some companies contribute to OSS projects. That contribution could be part of the company's requirements for their solutions that need certain fixes in upstream projects. For example, Samsung contributes to certain graphics-related projects to ensure its hardware has software support once it gets into the market. In some other cases, contributing to OSS is a mechanism to retain talent by allowing the people to contribute to projects different from their daily work.
Some companies release their own open source projects as an outbound OSS process. For companies like Red Hat or GitLab, it would be expected. But, there are increasingly more non-software companies releasing a lot of OSS, like Lyft.
![OSS inbound and outbound processes][2]
OSS inbound and outbound processes
Ultimately, all of these projects involved in the inbound and outbound OSS flow are the company's OSS ecosystem. And like any living being, the company's health and sustainability depend on the ecosystem that surrounds it.
### OSPO responsibilities
Following the species and their ecosystem, people working in the OSPO team could be seen as the rangers in the organization's OSS ecosystem. They take care of the ecosystem and its relationship with the company, to keep everything healthy and sustainable.
When the company consumes open source software projects, they need to be aware of licenses and compliance, to check the project's health, to ensure there are no security flaws, and, in some cases, to identify talented community members for potential hiring processes.
When the company contributes to open source software projects, they need to be sure there are no Intellectual Property (IP) issues, to ensure the company contributions' footprint and its leadership in the projects, and sometimes, also to help talented people stay engaged with the company through their contributions.
And when the company releases and maintains open source projects, they are responsible for ensuring community engagement and growth, for checking there are no IP issues, that the company maintains its footprint and leadership, and perhaps, to attract new talent to the company.
Have you realized the whole set of skills required in an OSPO team? When I've asked people working in OSPO about the size of their teams, the number is around 1 to 5 people per 1,000 developers in the company. That's a small team to monitor a lot of people and their potential OSS related activity.
### How to manage an OSPO
With all these activities in OSPO people's minds and all the resources they need to worry about, how are they able to manage all of this?
There are at least a couple of open source communities with valuable knowledge and resources available for them:
* The [TODO Group][3] is "an open group of companies who want to collaborate on practices, tools, and other ways to run successful and effective open source projects and programs." For example, they have a complete set of [guides][4] with best practices for and from companies running OSPOS.
* The [CHAOSS (Community Health Analytics for Open Source Software)][5] community develops metrics, methodologies, and software for managing open source project health and sustainability. (See more on CHAOSS' active communities and working groups below).
OSPO managers need to report a lot of information to the rest of the company to answer many questions related to their OSS inbound and outbound processes, i.e., Which projects are we using in our organization? What's the health of those projects? Who are the key people in those projects? Which projects are we contributing to? Which projects are we releasing? How are we dealing with community contributions? Who are the key contributors?
### Data-driven OSPO
As William Edwards Deming said, "Without data, you are just a person with an opinion."
Having opinions is not a bad thing, but having opinions based on data certainly makes it easier to understand, discuss, and determine the processes best suited to your company and its goals. CHAOSS is the recommended community to look to for guidance about metrics strategies and tools.
Recently, the CHAOSS community has released [a new set of metric definitions][6]. These metrics are only subsets of all the ones being discussed in the focus areas of each working group (WG):
* [Common WG][7]: Defines the metrics that are used by both working groups or are important for community health, but that do not cleanly fit into one of the other existing working groups. Areas of interest include organizational affiliation, responsiveness, and geographic coverage.
* [Diversity and Inclusion WG][8]: Gathers experiences regarding diversity and inclusion in open source projects with the goal of understanding, from a qualitative and quantitative point of view, how diversity and inclusion can be measured.
* [Evolution WG][9]: Refines the metrics that inform evolution and works with software implementations.
* [Risk WG][10]: Refines the metrics that inform risk and works with software implementations.
* [Value WG][11]: Focuses on industry-standard metrics for economic value in open source. Their main goal is to publish trusted industry-standard value metrics—a kind of S&P for software development and an authoritative source for metrics significance and industry norms.
On the tooling side, projects like [Augur][12], [Cregit][13], and [GrimoireLab][14] are the reference tools that report these metrics, but also many others related to OSPO activities. They are also the seed for new tools and solutions provided by the OSS community like [Cauldron.io][15], a SaaS open source solution to ease OSS ecosystem analysis.
![CHAOSS Metrics for 15 years of Unity OSS activity. Source: cauldron.io][16]
CHAOSS Metrics for 15 years of Unity OSS activity. Source: cauldron.io
All these metrics and data are useless without a metrics strategy. Usually, the first approach is to try to measure as much as possible, producing overwhelming reports and dashboards full of charts and data. What is the value of that?
Experience has shown that a very valid approach is the [Goal, Questions, Metrics (GQM)][17] strategy. But how do we put that in practice in an OSPO?
First of all, we need to understand the company's goals when using, consuming, contributing to, or releasing and maintaining OSS projects. The usual goals are related to market positioning, required upstream features development, and talent attraction or retention. Based on these goals, we should write down related questions that can be answered with numbers, like the following:
#### Who/how many are the core maintainers of my OSS ecosystem projects?
![Uber OSS code core, regular, and casual contributors evolution. Source: uber.biterg.io][18]
Uber OSS code core, regular, and casual contributors evolution. Source: uber.biterg.io
People contribute through different mechanisms or tools (code, issues, comments, tests, etc.). Measuring the core contributors (those that have done 80% of the contributions), the regular ones (those that have done 15% of the contributions), and the casual ones (those have made 5% of the contributions) can answer questions related to participation over time, but also how people move between the different buckets. Adding affiliation information helps to identify external core contributors.
#### Where are the contributions happening?
![Uber OSS activity based on location. Source: uber.biterg.io][19]
Uber OSS activity based on location. Source: uber.biterg.io
The growth of OSS ecosystems is also related to OSS projects spread across the world. Understanding that spread helps OSPO, and the company, to manage actions that improve support for people from different countries and regions.
#### What is the company's OSS network?
![Uber OSS network. Source: uber.biterg.io][20]
Uber OSS network. Source: uber.biterg.io
The company's OSS ecosystem includes those projects that the company's people contribute to. Understanding which projects they contribute to offers insight into which technologies or OSS components are interesting to people, and which companies or organizations the company collaborates with.
#### How is the company dealing with contributions?
![Github Pull Requests backlog management index and time to close analysis. Source: uber.biterg.io][21]
Github Pull Requests backlog management index and time to close analysis. Source: uber.biterg.io
One of the goals when releasing OSS projects is to grow the community around them. Measuring how the company handles contributions to its projects from outside its boundaries helps to understand how "welcoming" it is and identifies mentors (or bottlenecks) and opportunities to lower the barrier to contribute.
#### Consumers vs. maintainers
Over the last months, we have been hearing that corporations are taking OSS for free without contributing back. The typical arguments are that these corporations are making millions of dollars thanks to free work, plus the issue of OSS project maintainer burnout due to users' complaints and requests for free support.
The system is unbalanced; usually, the number of users exceeds the number of maintainers. Is that good or bad? Having users for our software is (or should be) good. But we need to manage expectations on both sides.
From the corporation's point of view, consuming OSS without care is very, very risky.
OSPO can play an important role in educating the company about the risks they are facing, and how to reduce them by contributing back to their OSS ecosystem. Remember, a company's overall sustainability could rely heavily on its ecosystem sustainability.
A good strategy is to start shifting your company from being pure OSS consumers to becoming contributors to their OSS inbound projects. From just submitting issues and asking questions to help solve issues, answering questions, and even sending patches, contributing helps grow and maintain the project while giving back to the community. It doesn't happen immediately, but over time, the company will be perceived as an OSS ecosystem citizen. Eventually, some people from the company could end up helping to maintain those projects too.
And what about money? There are plenty of ways to support the OSS ecosystem financially. Some examples:
* Business initiatives like [Tidelift][22], or [OpenCollective][23]
* Foundations and their supporting mechanisms, like [Software Freedom Conservancy][24], or [CommunityBridge][25] from the Linux Foundation
* Self-funding programs (like [Indeed][26] and [Salesforce][27] have done)
* Emerging gig development approaches like [Github Sponsors][28] or [Patreon][29]
Last but not least, companies need to avoid the "not invented here" syndrome. For some OSS projects, there might be companies providing consulting, customization, maintenance, and/or support services. Instead of taking OSS and spending time and people to self-host, self-customize, or try to bring those kinds of services in-house, it might be smarter and more efficient to hire some of those companies to do the thought work.
As a final remark, I would like to emphasize the importance of an OSPO for a company to succeed and grow in the current market. As shepherds of the company's OSS ecosystem, they are the best people in the organization to understand how the ecosystem works and flows, and they should be empowered to manage, monitor, and make recommendations and decisions to ensure sustainability and growth.
Does your organization have an OSPO yet?
Six common traits of successful open source programs, and a look back at how the open source...
Why would a company not in the business of software development create an open source program...
--------------------------------------------------------------------------------
via: https://opensource.com/article/20/5/open-source-program-office
作者:[J. Manrique Lopez de la Fuente][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/jsmanrique
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/meeting_discussion_brainstorm.png?itok=7_m4CC8S (community team brainstorming ideas)
[2]: https://opensource.com/sites/default/files/uploads/ospo_1.png (OSS inbound and outbound processes)
[3]: https://todogroup.org/
[4]: https://todogroup.org/guides/
[5]: https://chaoss.community/
[6]: https://chaoss.community/metrics/
[7]: https://github.com/chaoss/wg-common
[8]: https://github.com/chaoss/wg-diversity-inclusion
[9]: https://github.com/chaoss/wg-evolution
[10]: https://github.com/chaoss/wg-risk
[11]: https://github.com/chaoss/wg-value
[12]: https://github.com/chaoss/augur
[13]: https://github.com/cregit
[14]: https://chaoss.github.io/grimoirelab/
[15]: https://cauldron.io/
[16]: https://opensource.com/sites/default/files/uploads/ospo_2.png (CHAOSS Metrics for 15 years of Unity OSS activity. Source: cauldron.io)
[17]: https://en.wikipedia.org/wiki/GQM
[18]: https://opensource.com/sites/default/files/uploads/ospo_3.png (Uber OSS code core, regular, and casual contributors evolution. Source: uber.biterg.io)
[19]: https://opensource.com/sites/default/files/uploads/ospo_4.png (Uber OSS activity based on location. Source: uber.biterg.io)
[20]: https://opensource.com/sites/default/files/uploads/ospo_5_0.png (Uber OSS network. Source: uber.biterg.io)
[21]: https://opensource.com/sites/default/files/uploads/ospo_6.png (Github Pull Requests backlog management index and time to close analysis. Source: uber.biterg.io)
[22]: https://tidelift.com/
[23]: https://opencollective.com/
[24]: https://sfconservancy.org/
[25]: https://funding.communitybridge.org/
[26]: https://engineering.indeedblog.com/blog/2019/02/sponsoring-osi/
[27]: https://sustain.codefund.fm/23
[28]: https://help.github.com/en/github/supporting-the-open-source-community-with-github-sponsors
[29]: https://www.patreon.com/

View File

@ -1,162 +0,0 @@
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (systemd-resolved: introduction to split DNS)
[#]: via: (https://fedoramagazine.org/systemd-resolved-introduction-to-split-dns/)
[#]: author: (zbyszek https://fedoramagazine.org/author/zbyszek/)
systemd-resolved: introduction to split DNS
======
![][1]
Photo by [Ruvim Noga][2] on [Unsplash][3]
Fedora 33 switches the default DNS resolver to [systemd-resolved][4]. In simple terms, this means that systemd-resolved will run as a daemon. All programs wanting to translate domain names to network addresses will talk to it. This replaces the current default lookup mechanism where each program individually talks to remote servers and there is no shared cache.
If necessary, systemd-resolved will contact remote DNS servers. systemd-resolved is a “stub resolver”—it doesnt resolve all names itself (by starting at the root of the DNS hierarchy and going down label by label), but forwards the queries to a remote server.
A single daemon handling name lookups provides significant benefits. The daemon caches answers, which speeds answers for frequently used names. The daemon remembers which servers are non-responsive, while previously each program would have to figure this out on its own after a timeout. Individual programs only talk to the daemon over a local transport and are more isolated from the network. The daemon supports fancy rules which specify which name servers should be used for which domain names—in fact, the rest of this article is about those rules.
### Split DNS
Consider the scenario of a machine that is connected to two semi-trusted networks (wifi and ethernet), and also has a VPN connection to your employer. Each of those three connections has its own network interface in the kernel. And there are multiple name servers: one from a DHCP lease from the wifi hotspot, two specified by the VPN and controlled by your employer, plus some additional manually-configured name servers. _Routing_ is the process of deciding which servers to ask for a given domain name. Do not mistake this with the process of deciding where to send network packets, which is called routing too.
The network interface is king in systemd-resolved. systemd-resolved first picks one or more interfaces which are appropriate for a given name, and then queries one of the name servers attached to that interface. This is known as “split DNS”.
There are two flavors of domains attached to a network interface: _routing domains_ and _search domains_. They both specify that the given domain and any subdomains are appropriate for that interface. Search domains have the additional function that single-label names are suffixed with that search domain before being resolved. For example, a lookup for “server” is treated as a lookup for “server.example.com” if the search domain is “example.com.” In systemd-resolved config files, routing domains are prefixed with the tilde (~) character.
#### Specific example
Now consider a specific example: your VPN interface _tun0_ has a search domain _private.company.com_ and a routing domain _~company.com_. If you ask for _mail.private.company.com_, it is matched by both domains, so this name would be routed to _tun0_.
A request for _[www.company.com][5]_ is matched by the second domain and would also go to _tun0_. If you ask for _www_, (in other words, if you specify a single-label name without any dots), the difference between routing and search domains comes into play. systemd-resolved attempts to combine the single-label name with the search domain and tries to resolve _[www.private.company.com][6]_ on _tun0_.
If you have multiple interfaces with search domains, single-label names are suffixed with all search domains and resolved in parallel. For multi-label names, no suffixing is done; search and routing domains are are used to route the name to the appropriate interface. The longest match wins. When there are multiple matches of the same length on different interfaces, they are resolved in parallel.
A special case is when an interface has a routing domain _~._ (a tilde for a routing domain and a dot for the root DNS label). Such an interface always matches any names, but with the shortest possible length. Any interface with a matching search or routing domain has higher priority, but the interface with _~._ is used for all other names. Finally, if no routing or search domains matched, the name is routed to all interfaces that have at least one name server attached.
### Lookup routing in systemd-resolved
#### Domain routing
This seems fairly complex, partially because of the historic names which are confusing. In actual practice its not as complicated as it seems.
To introspect a running system, use the _resolvectl domain_ command. For example:
```
$ resolvectl domain
Global:
Link 4 (wlp4s0): ~.
Link 18 (hub0):
Link 26 (tun0): redhat.com
```
You can see that _www_ would resolve as _[www.redhat.com][7]_. over _tun0_. Anything ending with _redhat.com_ resolves over _tun0_. Everything else would resolve over _wlp4s0_ (the wireless interface). In particular, a multi-label name like _[www.foobar][8]_ would resolve over _wlp4s0_, and most likely fail because there is no _foobar_ top-level domain (yet).
#### Server routing
Now that you know which _interface_ or interfaces should be queried, the _server_ or servers to query are easy to determine. Each interface has one or more name servers configured. systemd-resolved will send queries to the first of those. If the server is offline and the request times out or if the server sends a syntactically-invalid answer (which shouldnt happen with “normal” queries, but often becomes an issue when DNSSEC is enabled), systemd-resolved switches to the next server on the list. It will use that second server as long as it keeps responding. All servers are used in a round-robin rotation.
To introspect a running system, use the _resolvectl dns_ command:
```
$ resolvectl dns
Global:
Link 4 (wlp4s0): 192.168.1.1 8.8.4.4 8.8.8.8
Link 18 (hub0):
Link 26 (tun0): 10.45.248.15 10.38.5.26
```
When combined with the previous listing, you know that for _[www.redhat.com][7]_, systemd-resolved will query 10.45.248.15, and—if it doesnt respond—10.38.5.26. For _[www.google.com][9]_, systemd-resolved will query 192.168.1.1 or the two Google servers 8.8.4.4 and 8.8.8.8.
### Differences from nss-dns
Before going further detail, you may ask how this differs from the previous default implementation (nss-dns). With nss-dns there is just one global list of up to three name servers and a global list of search domains (specified as _nameserver_ and _search_ in _/etc/resolv.conf_).
Each name to query is sent to the first name server. If it doesnt respond, the same query is sent to the second name server, and so on. systemd-resolved implements split-DNS and remembers which servers are currently considered active.
For single-label names, the query is performed with each of the the search domains suffixed. This is the same with systemd-resolved. For multi-label names, a query for the unsuffixed name is performed first, and if that fails, a query for the name suffixed by each of the search domains in turn is performed. systemd-resolved doesnt do that last step; it only suffixes single-label names.
A second difference is that with _nss-dns_, this module is loaded into each process. The process itself communicates with remote servers and implements the full DNS stack internally. With systemd-resolved, the _nss-resolve_ module is loaded into the process, but it only forwards the query to systemd-resolved over a local transport (D-Bus) and doesnt do any work itself. The systemd-resolved process is heavily sandboxed using systemd service features.
The third difference is that with systemd-resolved all state is dynamic and can be queried and updated using D-Bus calls. This allows very strong integration with other daemons or graphical interfaces.
### Configuring systemd-resolved
So far, this article talked about servers and the routing of domains without explaining how to configure them. systemd-resolved has a configuration file (_/etc/systemd/resolv.conf_) where you specify name servers with _DNS=_ and routing or search domains with _Domains=_ (routing domains with _~_, search domains without). This corresponds to the _Global:_ lists in the two listings above.
In this articles examples, both lists are empty. Most of the time configuration is attached to specific interfaces, and “global” configuration is not very useful. Interfaces come and go and it isnt terribly smart to contact servers on an interface which is down. As soon as you create a VPN connection, you want to use the servers configured for that connection to resolve names, and as soon as the connection goes down, you want to stop.
How does then systemd-resolved acquire the configuration for each interface? This happens dynamically, with the network management service pushing this configuration over D-Bus into systemd-resolved. The default in Fedora is NetworkManager and it has very good integration with systemd-resolved. Alternatives like systemds own systemd-networkd implement similar functionality. But the [interface is open][10] and other programs can do the appropriate D-Bus calls.
Alternatively, _resolvectl_ can be used for this (it is just a wrapper around the D-Bus API). Finally, _resolvconf_ provides similar functionality in a form compatible with a tool in Debian with the same name.
#### Scenario: Local connection more trusted than VPN
The important thing is that in the common scenario, systemd-resolved follows the configuration specified by other tools, in particular NetworkManager. So to understand how systemd-resolved names, you need to see what NetworkManager tells it to do. Normally NM will tell systemd-resolved to use the name servers and search domains received in a DHCP lease on some interface. For example, look at the source of configuration for the two listings shown above:
![][11]![][12]
There are two connections: “Parkinson” wifi and “Brno (BRQ)” VPN. In the first panel _DNS:Automatic_ is enabled, which means that the DNS server received as part of the DHCP lease (192.168.1.1) is passed to systemd-resolved. Additionally. 8.8.4.4 and 8.8.8.8 are listed as alternative name servers. This configuration is useful if you want to resolve the names of other machines in the local network, which 192.168.1.1 provides. Unfortunately the hotspot DNS server occasionally gets stuck, and the other two servers provide backup when that happens.
The second panel is similar, but doesnt provide any special configuration. NetworkManager combines routing domains for a given connection from DHCP, SLAAC RDNSS, and VPN, and finally manual configuration and forward this to systemd-resolved. This is the source of the search domain _redhat.com_ in the listing above.
There is an important difference between the two interfaces though: in the second panel, “Use this connection only for resources on its network” is **checked**. This tells NetworkManager to tell systemd-resolved to only use this interface for names under the search domain received as part of the lease (_Link 26 (tun0): redhat.com_ in the first listing above). In the first panel, this checkbox is **unchecked**, and NetworkManager tells systemd-resolved to use this interface for all other names (_Link 4 (wlp4s0): ~._). This effectively means that the wireless connection is more trusted.
#### Scenario: VPN more trusted than local network
In a different scenario, a VPN would be more trusted than the local network and the domain routing configuration reversed. If a VPN without “Use this connection only for resources on its network” is active, NetworkManager tells systemd-resolved to attach the default routing domain to this interface. After unchecking the checkbox and restarting the VPN connection:
```
$ resolvectl domain
Global:
Link 4 (wlp4s0):
Link 18 (hub0):
Link 28 (tun0): ~. redhat.com
$ resolvectl dns
Global:
Link 4 (wlp4s0):
Link 18 (hub0):
Link 28 (tun0): 10.45.248.15 10.38.5.26
```
Now all domain names are routed to the VPN. The network management daemon controls systemd-resolved and the user controls the network management daemon.
### Additional systemd-resolved functionality
As mentioned before, systemd-resolved provides a common name lookup mechanism for all programs running on the machine. Right now the effect is limited: shared resolver and cache and split DNS (the lookup routing logic described above). systemd-resolved provides additional resolution mechanisms beyond the traditional unicast DNS. These are the local resolution protocols MulticastDNS and LLMNR, and an additional remote transport DNS-over-TLS.
Fedora 33 does not enable MulticastDNS and DNS-over-TLS in systemd-resolved. MulticastDNS is implemented by _nss-mdns4_minimal_ and Avahi. Future Fedora releases may enable these as the upstream project improves support.
Implementing this all in a single daemon which has runtime state allows smart behaviour: DNS-over-TLS may be enabled in opportunistic mode, with automatic fallback to classic DNS if the remote server does not support it. Without the daemon which can contain complex logic and runtime state this would be much harder. When enabled, those additional features will apply to all programs on the system.
There is more to systemd-resolved: in particular LLMNR and DNSSEC, which only received brief mention here. A future article will explore those subjects.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/systemd-resolved-introduction-to-split-dns/
作者:[zbyszek][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/zbyszek/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2020/10/systemd-resolved2-816x345.jpg
[2]: https://unsplash.com/@ruvimnogaphoto?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/colors?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html
[5]: http://www.company.com
[6]: http://www.private.company.com
[7]: http://www.redhat.com
[8]: http://www.foobar
[9]: http://www.google.com
[10]: https://www.freedesktop.org/software/systemd/man/org.freedesktop.resolve1.html
[11]: https://fedoramagazine.org/wp-content/uploads/2020/10/nm-default-network-with-additional-servers.png
[12]: https://fedoramagazine.org/wp-content/uploads/2020/10/nm-vpn-brno.png

View File

@ -0,0 +1,92 @@
[#]: subject: "Detect a Phishing URL Using Machine Learning in Python"
[#]: via: "https://www.opensourceforu.com/2022/04/detect-a-phishing-url-using-machine-learning-in-python/"
[#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Detect a Phishing URL Using Machine Learning in Python
======
In a phishing attack, a user is sent a mail or a message that has a misleading URL, using which the attacker can collect important data like the passwords of the banks your money is in. This article gives a short tutorial on how to detect such phishing attempts.
![phishing attack][1]
Through phishing attacks, attackers acquire important credentials that can be used for getting access to your bank or other financial accounts. The URLs sent by the attacker look exactly the same as the original applications we use on a daily basis. That is why people often believe these and enter their personal details. A phishing URL can open a Web page that looks similar to the original login page of your bank. Detecting such URLs has become very important of late as such phishing attacks are becoming pretty common. So lets see how we can check whether a URL is a misleading one or a genuine one using machine learning in Python, as it can help us see the code as well as the outputs. We will be using Jupyter Notebook. You can use Google Colab or Amazon Sagemaker too, if you are more comfortable with those.
### Download the data sets
To start, we will need the data set to work upon. You can download the data sets from the links given below.
*Genuine URLs: https://github.com/jishnusaurav/Phishing-attack-PCAP-analysis-using-scapy/blob/master/Phishing-Website-Detection/datasets/legitimate-urls.csv*
*Phishing URLs: https://github.com/jishnusaurav/Phishing-attack-PCAP-analysis-using-scapy/blob/master/Phishing-Website-Detection/datasets/phishing-urls.csv*
### Training the machine to predict
Once we have the data sets, we need to import the required libraries using the following lines of code:
```python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
```
If you do not have the libraries, you can use* pip* to install the libraries, as shown in Figure 1.
![First few lines of the data set][2]
Once this is done, you can import the data sets and convert them into pandas dataframe for further processing using the following lines of code:
```python
legitimate_urls = pd.read_csv(“/home/jishnusaurav/jupyter/Phishing-Website-Detection/datasets/legitimate-urls.csv”)
phishing_urls = pd.read_csv(“/home/jishnusaurav/jupyter/Phishing-Website-Detection/datasets/phishing-urls.csv”)
```
After successful import, we need to merge both the dataframes — the legitimate and the phishing ones, in order to make one data set. The first few lines of the merged data set are shown in Figure 2.
![Installing libraries][3]
We then drop the columns like path, protocol, etc, that we do not need for the purpose of prediction:
```python
urls = urls.drop(urls.columns[[0,3,5]],axis=1)
```
After this, we need to split the data set into testing and training parts using the following code:
```python
data_train, data_test, labels_train, labels_test = train_test_split(urls_without_labels, labels, test_size=0.30, random_state=110)
```
We now make a model using the random forest classifier from sklearn, and then use the fit function to train the model:
```python
random_forest_classifier = RandomForestClassifier()
random_forest_classifier.fit(data_train,labels_train)
```
Once this is done, we can use the predict function to finally predict which URLs are phishing. The following line can be used for the prediction:
```python
prediction_label = random_forest_classifier.predict(test_data)
```
That is it! You have built a machine learning model that predicts if a URL is a phishing one. Do try it out. I am sure you will have fun.
--------------------------------------------------------------------------------
via: https://www.opensourceforu.com/2022/04/detect-a-phishing-url-using-machine-learning-in-python/
作者:[Jishnu Saurav Mittapalli][a]
选题:[lkxed][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/
[b]: https://github.com/lkxed
[1]: https://www.opensourceforu.com/wp-content/uploads/2022/03/phishing-attack-696x477.jpg
[2]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-1-First-few-lines-of-the-data-set.jpg
[3]: https://www.opensourceforu.com/wp-content/uploads/2022/03/Figure-2-Installing-libraries.jpg

View File

@ -0,0 +1,186 @@
[#]: subject: "From ifcfg to keyfiles: modernizing NetworkManager configuration in Fedora Linux 36"
[#]: via: "https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/"
[#]: author: "Lubomir Rintel https://fedoramagazine.org/author/lkundrak/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
From ifcfg to keyfiles: modernizing NetworkManager configuration in Fedora Linux 36
======
![][1]
Photo by [Compare Fibre][2] on [Unsplash][3]
One of the changes in Fedora Linux 36 is that new installations will [no longer support the ifcfg files to configure networking][4]. What are those and what replaces them?
### A bit of history
In the good old days, connecting a Linux box to a network was easy. For each of the interface cards connected to a network, the system administrator would drop a configuration file into the _/etc_ directory. That configuration file would describe the addressing configuration for a particular network. On Fedora Linux, the configuration file would actually be a shell script snippet like this:
```
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=dhcp
```
A shell script executed on startup would read the file and apply the configuration. Simple.
Towards the end of 2004, however, a change was in the air. Quite literally — the Wi-Fi has become ubiquitous. The portable computers of the day could rapidly connect to new networks and the USB bus allowed even the wired network adapters to come and go while the system was up and running. The network configuration became more dynamic than ever before, rendering the existing network configuration tooling impractical. To the rescue came [NetworkManager][5]. On a Fedora Linux system, NetworkManager uses configuration like this:
```
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
DEVICE=eth0
BOOTPROTO=dhcp
```
Looks familiar? It should. From the beginning, NetworkManager was intended to work with the existing configuration formats. In fact, it ended up with plugins which would seamlessly convert between NetworkManagers internal configuration model and the distributions native format. On Fedora, it would be the aforementioned _ifcfg_ files.
Lets take a closer look at them.
### Ifcfg files
The legacy network service, now part of the _network-scripts_ package, originally defined the _ifcfg_ file format. Along with the package comes a file called [sysconfig.txt][6] that, quite helpfully, documents the format.
As NetworkManager gained traction it often found itself in need of expressing a configuration that was not supported by the old fashioned network service. Given the nature of configuring things with shell scripts, adding new settings is no big deal. The unknown ones are generally just silently ignored. The NetworkManagers idea of what ifcfg files should look like is described in the [nm-settings-ifcfg-rh(5)][7] manual.
In general, NetworkManager tries hard to write _ifcfg_ files that work well with the legacy network service. Nevertheless, sometimes it is just not possible. These days, the number of network connection types that NetworkManager supports vastly outnumber what the legacy network service can configure. . A new format is now used to express what the legacy format can not. This includes VPN connections, broadband modems and more.
### Keyfiles
The new format closely resembled the NetworkManagers native configuration model:
```
$ cat /etc/NetworkManager/system-connections/VPN.ovpn
[connection]
id=My VPN
uuid=c85a7cdb-973b-491f-998d-b09a590af10e
type=vpn
[vpn]
ca=/etc/pki/tls/certs/vpn-ca.pem
connection-type=password
remote=vpn.example.com
username=lkundrak
service-type=org.freedesktop.NetworkManager.openvpn
[ipv6]
method=auto
never-default=true
```
The actual format should be instantly familiar to everyone familiar with Linux systems. Its the “ini file” or “keyfile” — a bunch of plain text key-value pairs, much like the ifcfg files use, grouped into sections. The [nm-settings-ifcfg-keyfile(5)][8] manual documents the format thoroughly.
The main advantage of using this format is that it closely resembles NetworkManagers idea of how to express network configuration, used both internally and on the D-Bus API. Its easier to extend without taking into consideration the quirks of the mechanism that was designed in without the benefit of foresight back when the world was young. This means less code, less surprises and less bugs.
In fact theres nothing the _keyfile_ format cant express that _ifcfg_ files can. It can express the simple wired connections just as well as the VPNs or modems.
### Migrating to keyfiles
The legacy network service served us well for many years, but its days are now long over. Fedora Linux dropped it many releases ago and without it there is seemingly little reason to use the ifcfg files. That is, for new configurations. While Fedora Linux still supports the _ifcfg_ files, it has defaulted to writing _keyfiles_ for quite some time.
Starting with Fedora Linux 36, the ifcfg support will no longer be present in new installations. If youre still using _ifcfg_ files, do not worry — the existing systems will keep it on upgrades. Nevertheless, you can still decide to uninstall it and carry your configuration over to _keyfiles_. Keep on reading to learn how.
If youre like me, you installed your system years ago and you have a mixture of _keyfiles_ and _ifcfg_ files. Heres how can you check:
```
$ nmcli -f TYPE,FILENAME,NAME conn
TYPE FILENAME NAME
ethernet /etc/sysconfig/network-scripts/ifcfg-eth0 eth0
wifi /etc/sysconfig/network-scripts/ifcfg-Guest Guest
wifi /etc/NetworkManager/system-connections/Base48 Base48
vpn /etc/NetworkManager/system-connections/VPN.ovpn My VPN
```
This example shows a VPN connection that must have always used a keyfile and a Wi-Fi connection presumably created after Fedora Linux switched to writing _keyfiles_ by default. Theres also an Ethernet connection and Wi-Fi one from back in the day that use the _ifcfg_ plugin. Lets see how we can convert those to keyfiles.
The NetworkManagers command line utility, [nmcli(1)][9], acquired a new _connection migrate_ command, that can change the configuration backend used by a connection profile.
Its a good idea to make a backup of _/etc/sysconfig/network-scripts/ifcfg-*_ files, in case anything goes wrong. Once you have the backup you can try migrating a single connection to a different configuration backend (_keyfile_ by default):
```
$ nmcli connection migrate eth0
Connection 'eth0' (336aba93-1cd7-4cf4-8e90-e2009db3d4d0) successfully migrated.
```
Did it work?
```
$ nmcli -f TYPE,FILENAME,NAME conn
TYPE FILENAME NAME
ethernet /etc/NetworkManager/system-connections/eth0.nmc eth0
wifi /etc/sysconfig/network-scripts/ifcfg-Guest Guest
wifi /etc/NetworkManager/system-connections/Base48 Base48
vpn /etc/NetworkManager/system-connections/VPN.ovpn My VPN
```
Cool. Can I migrate it back, for no good reason?
```
$ nmcli conn migrate --plugin ifcfg-rh eth0
Connection 'eth0' (336aba93-1cd7-4cf4-8e90-e2009db3d4d0) successfully migrated.
```
Excellent. Without specifying more options, the “connection migrate” command ensures all connections use the keyfile backend:
```
$ nmcli conn migrate
Connection '336aba93-1cd7-4cf4-8e90-e2009db3d4d0' (eth0) successfully migrated.
Connection '3802a9bc-6ca5-4a17-9d0b-346f7212f2d3' (Red Hat Guest) successfully migrated.
Connection 'a082d5a0-5e29-4c67-8b6b-09af1b8d55a0' (Base48) successfully migrated.
Connection 'c85a7cdb-973b-491f-998d-b09a590af10e' (Oh My VPN) successfully migrated.
```
And thats all. Now that your system has no _ifcfg_ files, the configuration backend that supports them is of no use and you can remove it:
```
# dnf remove NetworkManager-initscripts-ifcfg-rh
```
Your system now works the same as it did before, but you can rejoice, for it is now modern.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/
作者:[Lubomir Rintel][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/lkundrak/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2022/04/ifcfg_to_keyfiles-816x345.jpg
[2]: https://unsplash.com/@comparefibre?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/network-cable?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: https://fedoraproject.org/wiki/Releases/36/ChangeSet#No_ifcfg_by_default
[5]: https://networkmanager.dev/
[6]: https://github.com/fedora-sysv/initscripts/blob/master/doc/sysconfig.txt#L416
[7]: https://networkmanager.dev/docs/api/latest/nm-settings-ifcfg-rh.html
[8]: https://networkmanager.dev/docs/api/latest/nm-settings-ifcfg-keyfile.html
[9]: https://networkmanager.dev/docs/api/latest/nmcli.html

View File

@ -0,0 +1,168 @@
[#]: subject: "How to Install h.264 decoder on Ubuntu Linux"
[#]: via: "https://itsfoss.com/install-h-264-decoder-ubuntu/"
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Install h.264 decoder on Ubuntu Linux
======
When you start using a [fresh installed Ubuntu system][1] and try to open an MP4 file to play videos, it may show you an error that reads:
_**H.264 (High Profile) decoder is required to play the file, but is not installed.**_
![Ubuntus default video player shows error while playing certain media files][2]
You can perhaps guess whats going on here. Your system doesnt have the required media codecs installed and hence the video player cannot play that video file.
So, whats the solution here? You install the required codec. But how?
Ill discuss three ways about fixing this issue:
1. Install just the required codec: It could work for the given file but some other video files will still complain about missing codecs.
2. Install a wide variety of multimedia codecs at once: It installs codecs as well as some other packages that you might not need like Microsoft Fonts.
3. Install a different video player: Applications like VLC and MPV have better support for codecs by default. You dont need to install them separately for most common video files.
If you take my advice, I suggest going for the second as well as the third method. Why? Youll see in a moment.
### Getting h264 decoder in Ubuntu Linux
I am using Ubuntu Linux here. The first and the third methods should work for other distributions but not the second one as the package mentioned is (usually) exclusive to Ubuntu.
#### Method 1: Install only the required codec (not recommended)
When you see the error, it gives you the option to “Find in Ubuntu Software”. Clicking on that option opens the Software Center and it may (or may not) show some packages that will install the h264 decoder on your system.
![Packages that may offer h264 decoder in Ubuntu software center][3]
The package names may sound similar but you need the GStreamer Multimedia Codecs from the “bad” set. Check the description of the packages.
Alternatively, you can install the package in the terminal using this command:
```
sudo apt install gstreamer1.0-plugins-bad
```
If you are new to the terminal, please note that it will ask for your account password. **Nothing is displayed on the screen while you type the password**. Thats the Linux way. You type the password blindly and press enter.
Once this package is installed, open the file again and see if it works now.
It may work for you but the story doesnt end here. You may have other video files that require some other h264 decoder or some other decoder.
![You may still have trouble with other video decoders][4]
You can try and install more decoders like this:
```
sudo apt install libavcodec-extra gstreamer1.0-plugins-ugly gstreamer1.0-libav
```
However, there is a much more [convenient way of installing media codecs in Ubuntu][5] and Ill show it to you in the next section.
#### Method 2: Install all multimedia codecs (recommended)
Ubuntu provides a meta-package named ubuntu-restricted-extras that consists of most of the common audio and video codecs along with some other packages like the Microsoft fonts.
Install this package and you wont have to worry about the media codecs anymore.
Open the terminal in Ubuntu and type the following command:
```
sudo apt install ubuntu-restricted-extras
```
Since this meta-package contains software from Microsoft, youll have to accept the End User License Agreement (EULA).
![Press tab and hit enter to accept EULA][6]
The next screen may look like the one below. Just press tab and it will highlight the options. When the correct options are highlighted, press enter to confirm your selection.
![Press tab and when it highlights the correct option, press enter to confirm][7]
With the multimedia codecs installed, you should be able to play (almost) all kinds of media files. Your music player can play MP3 files and your video player should be able to play MP4, MKV, and whatnot.
However, this too is not the end of the story, at least for some people.
Why do I say that? Because I have noticed that the default video player in Ubuntu, Totem, often struggles while playing certain kinds of video files. Youll notice that suddenly your system heats up, the fans start blowing and your mouse cursor stop functioning smoothly.
Why? Because Totem is struggling in decoding the video and taking too much processing power.
You can test it by running the top command while playing the video. Look for the process named totem (thats the name of the default video player).
![Ubuntus default video player, Totem, may consume more than necessary CPU power][8]
What can you do now? Your trouble seems to be never ending. Fret not. There are [better video players in Linux][9] and they will help you solve the issue.
#### Method 3: Install a better video player (recommended)
There are many good video players in Linux. I find them better than the default Totem video player.
Personally, I prefer two of the lot: [VLC][10] and [MPV][11].
VLC is a versatile and hugely popular video player. Chances are that you have already used VLC.
MPV Media Player is not that popular but this lightweight application is quite good for playing video files.
Both VLC and MPV players are good at handling media codecs. You dont even need to install media codecs separately with them. Just [install VLC][12] or MPV and you should be able to play various kinds of video files.
Either look for it in the software center:
![MPV player is available in Ubuntu software center][13]
Or [install MPV on Ubuntu][14] using the command line:
```
sudo apt install mpv
```
Now that you have another video player, you should right click on the video files and choose to open with the new video player.
Alternatively, you can [make it the default application][15] for playing video files and use double clicks.
### Did it work for you?
I hope I didnt go into too much detail here. I wanted to explain the various methods and the pros and cons associated with each of them.
Did you manage to get rid of the h264 decoder problem in Ubuntu? Which method did you go for?
--------------------------------------------------------------------------------
via: https://itsfoss.com/install-h-264-decoder-ubuntu/
作者:[Abhishek Prakash][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://itsfoss.com/author/abhishek/
[b]: https://github.com/lujun9972
[1]: https://itsfoss.com/install-ubuntu/
[2]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-error-ubuntu-800x241.png
[3]: https://itsfoss.com/wp-content/uploads/2022/04/h264-decoder-ubuntu-software-center-800x532.png
[4]: https://itsfoss.com/wp-content/uploads/2022/04/ac3-decoder-missing-ubuntu-800x251.png
[5]: https://itsfoss.com/install-media-codecs-ubuntu/
[6]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras.jpg
[7]: https://itsfoss.com/wp-content/uploads/2020/02/installing_ubuntu_restricted_extras_1.jpg
[8]: https://itsfoss.com/wp-content/uploads/2022/04/totem-consuming-more-cpu-ubuntu-800x454.webp
[9]: https://itsfoss.com/video-players-linux/
[10]: https://www.videolan.org/vlc/
[11]: https://mpv.io/
[12]: https://itsfoss.com/install-latest-vlc/
[13]: https://itsfoss.com/wp-content/uploads/2022/04/mpv-player-ubuntu-software-center-800x346.png
[14]: https://itsfoss.com/mpv-video-player/
[15]: https://itsfoss.com/change-default-applications-ubuntu/

View File

@ -0,0 +1,117 @@
[#]: subject: "How I grew my product management career with open source"
[#]: via: "https://opensource.com/article/22/4/product-management-open-source"
[#]: author: "Shebuel Inyang https://opensource.com/users/shebuel"
[#]: collector: "lkxed"
[#]: translator: "lkxed"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
我如何通过开源来发展我的产品经理职业
======
毫不夸张地说,在开源方面获得的经验,帮助我在产品管理领域创造了一条成功的职业道路。
![如何做好发布说明][1]
图源Opensource.com
我是一个充满好奇心的人我喜欢探索科技行业的许多领域从视觉设计、编程到产品管理。我也被开放源码的理念所吸引。因此我很高兴与大家分享我作为一个产品经理PM是如何利用开源来建立我的职业生涯的。我相信我的经验可以帮助其他对产品管理感兴趣的人。
### 什么是开源软件
简单地说,开源软件是开放源代码的软件,这意味着任何人都可以检查、修改、增强和分享它的源代码。[Opensource.com][2] 上发表过一篇详细、[全面的文章][3] 来帮助你了解什么是开源。
我最早知道开源是很久以前了,那时,我还是一名刚入行不久的视觉设计师。我很想知道开源是什么,也很想知道如何成为它的一部分。在这种好奇心的驱使下,我接触到了一些有经验的开源贡献者和倡导者。虽然我当时没有做出贡献,但是他们让我知道了什么是社区,这对我下定决心开始贡献有很大帮助。
### 如何上手产品管理
产品管理工作貌似是一件很难上手的事情,感觉必须要戴上拳击手套,经过一番搏斗,才能强行进入这一行。然而,我从其他产品经理那里听说,与编写/调试代码块,或使用像素点生成复杂的产品设计线框相比,产品管理工作其实是更好上手的。
虽然我们的经历和经验各不相同,但是有一点可以确定:成为产品经理的道路往往是漫长而不可预知的。随着就业竞争的不断加剧,获得一个初级产品经理的职位可能会很困难。应聘者通常被要求有 2 到 3 年的经验才能加入产品团队。这时你可能会问:“我应该如何获得这些经验呢?”
来看看下面这四个策略吧,它们或许能够将你的职业生涯转向到产品管理:
1. 在一个大型组织的内部转岗。这可能需要你的经理为你说一些好话,比如,说你很适合在公司内部转岗等。你必须有证据表明你掌握了该岗位的技能。这通常被认为是获得产品管理经验的最快
2. 担任大型组织的初级产品经理角色。通过它获得实习机会,或者加入一个需要初级产品经理的关副产品管理项目,这些都很常见。
3. 你也可以尝试通过加入创业公司来上手产品管理工作。
4. 你还可以启动一个自己的副业项目来上手产品管理工作。
缺乏实践经验,就很难成为产品经理。正如开源产品经理 [David Ryan][4] 所说,“有一条获得实际的产品管理经验的途径,它既未被人充分利用,也很少有人意识到并利用它们”。
这条途径是什么?
### 答案就是开源
一个开放源码项目要想成功,需要的不仅仅是代码。它还包括项目战略、用户研究,以及将战略与日常工作联系起来。这些都是产品经理应该积极参加的活动。但是,在产品管理这一行里,有多少职责会分配给一个新手产品经理呢?
[Susana Videira Lopes][5] 在她的一篇文章中指出,“获得一个入门级的产品角色,本质就是以一种建立你的信心的方式,让你加入到至产品管理这一行,同时尽早为组织提供价值”。
一个入门级的产品经理该如何参与开源项目,并为它提供价值呢?
**答案很简单:多问问题**
这里有一些你可以问的问题:
* 正在探索的是什么问题/机会?
* 如何制定解决方案来解决这个问题?
* 用什么标准来确定项目是否成功?
* 这个解决方案的服务对象是谁?
* 他们是如何被告知这个解决方案的?
* 该解决方案如何与当前和更广泛的生态系统相适应?
* 项目的文件是在哪里维护的?
* 项目维护者是否了解<ruby>无障碍<rt>accessibility</rt></ruby>>要求?它们是否被满足?
既然你已经获得了产品经理的所需技能,为何不应用它们呢?结合所学,表达出你深思熟虑的问题,并邀请你的团队来评估吧!你的团队可以选择那些能引起开发者和社区共鸣的问题,并优先考虑其中最重要的。
这些问题可以帮助你建立用户角色、用户旅程图、精益画布,以及更多。这种经验对发展职业潜力有很大的帮助。
### 我在 OpenUnited 的经历
[OpenUnited][6] 是一个以独特方式连接数字人才和工作的平台。我们与贡献者合作,帮助他们投入到高质量的开源产品,从而证明自身的特定技能。一旦他们的工作得到验证,这些有才华的贡献者就有资格在公司里从事有偿工作。
OpenUnited 是一个开源平台,为各类贡献者(包括产品经理、开发人员、设计师、商业分析师和其他人)提供服务。它致力于帮助贡献者提高技能,并为他们提供长期的高质量付费工作来源。
Miro 公司的高级产品经理 Farbod Saraf 让我加入了他与合作伙伴创建的一个平台。我加入了这个项目,并了解了如何对 OpenUnited 做出贡献。我还了解了其他可以帮助我在产品管理生涯中成长的项目,并做出了我的第一次贡献。这是一次很好的经历,因为我可以迅速地开始投入到产品的某些部分,以改善平台上其他用户的体验。在我为项目做贡献的时候,我的导师 Farbod 随时为我提供任何需要的帮助,使我的工作更加轻松。
你对开源项目所做的一切贡献,都会成为你成长为产品经理过程中的有力的公共记录。对于任何想通过开源上手产品管理的人,我都强烈推荐 OpenUnited 平台。
### 如何找到开源项目
许多人认为,贡献开源只适合于开发人员,因为他们觉得找到一个可以舒适地贡献的开源项目是很难的。
即使作为一个初出茅庐的产品经理,也有好几种方法可以找到适合贡献的开源项目。这里列出了一些:
* 在产品经理社区中发言,如 Mind The Product 和 Product School。
* 参加当地的聚会和开源会议,如非洲开源社区节,以此来与开源项目的创建者和维护者保持联系。
* 与在大型开源公司工作的产品经理接触,如 GitLab 或 Mozilla。他们可能会把你推荐到需要你的技能和贡献的开源项目中。
* 访问开源公司的开源倡导者和开发者关系团队,让他们推荐一些入门级产品经理适合贡献的开源项目。
* 寻找 AngelList 上的开源公司或 Product Hunt 上的流行开源产品。这些都是你可以找到适合贡献的开源产品的好地方。
### 下一步
[Ruth Ikegah][7] 是我的一个重要灵感来源,她写了一篇 [关于开源新手的文章][8]。她的文章给出了一些提示,在你开始为开源做贡献时,可能需要考虑一下它们。
在加入和贡献项目、社区或组织之前,对它们做一些研究,并提出自己的问题。当你最终决定加入社区时,试着积极地介绍自己,并说明你可以在哪些方面提供帮助。
当然,开源不仅仅是你职业生涯的一个垫脚石。它本身就是一个平台,而且它需要优秀的产品经理。参与进来吧!一方面,你能为社区做出贡献;另一方面,它也能帮助你磨练自己的技能。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/4/product-management-open-source
作者:[Shebuel Inyang][a]
选题:[lkxed][b]
译者:[lkxed](https://github.com/lkxed)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/shebuel
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/rh_003784_02_os.comcareers_resume_rh1x.png
[2]: http://Opensource.com
[3]: https://opensource.com/resources/what-open-source
[4]: https://twitter.com/hellodavidryan
[5]: https://twitter.com/susanavlopes
[6]: https://openunited.com
[7]: https://stars.github.com/profiles/ruth-ikegah/
[8]: https://ruthikegah.xyz/a-beginners-guide-to-open-source