mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-03 23:40:14 +08:00
超期回收
@sthwhl
This commit is contained in:
parent
f01dcfe8f3
commit
1d96ef5b6f
@ -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: What’s 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. Let’s 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 you’re 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 GNOME’s 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 here’s 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 system’s 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/
|
@ -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, I’ve 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.
|
||||
|
||||
### What’s 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 wasn’t 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 I’m 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 doesn’t 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 isn’t 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/
|
@ -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, Ubuntu’s 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: What’s New?
|
||||
|
||||
Ubuntu Mate 22.04 brings quite a number of changes to the appearance apart from necessary packages updates and bug fixes.
|
||||
|
||||
Let’s take a look at the major highlights.
|
||||
|
||||
#### 1\. Improved Yaru Theme Support
|
||||
|
||||
Ubuntu’s popular and community-backed default theme takes the center stage in this release. MATE’s 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.
|
||||
|
||||
MATE’s 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 there’s 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 it’s 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 user’s 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 MATE’s ISO size has been reduced to a decent 2.7 GB. So, what’s the take away?
|
||||
|
||||
Considering, that all of the legacy themes and icons have been removed. So, it’s safe to say, Ubuntu MATE’s 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. There’s 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 Canonical’s 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/
|
@ -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: What’s 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/
|
@ -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: What’s 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 shouldn’t 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/
|
@ -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: What’s 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 won’t 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 isn’t 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/
|
@ -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
|
||||
======
|
||||
|
||||
I’m 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 isn’t 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 Facebook’s 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 weren’t worried about advertising but curious about what they see in them.
|
||||
|
||||
Unlike [Google’s 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 can’t 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?
|
||||
|
||||
I’m not stirring up controversy (or a wild theory).
|
||||
|
||||
But, a transparent, and privacy-respecting company just decided to collaborate with a company that isn’t really known for privacy?
|
||||
|
||||
Isn’t 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 wasn’t 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?_
|
||||
|
||||
_It’s 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=
|
@ -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
|
@ -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
|
@ -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/
|
@ -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 doesn’t 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 it’s 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 shouldn’t 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 doesn’t 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 doesn’t 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 doesn’t 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 doesn’t 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 article’s 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 isn’t 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 systemd’s 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 doesn’t 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
|
Loading…
Reference in New Issue
Block a user