Merge pull request #28 from LCTT/master

update 0928
This commit is contained in:
SamMa 2021-09-28 09:22:08 +08:00 committed by GitHub
commit 4a73abe557
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 989 additions and 441 deletions

View File

@ -0,0 +1,123 @@
[#]: subject: (Can We Recommend Linux for Gaming in 2021?)
[#]: via: (https://news.itsfoss.com/linux-for-gaming-opinion/)
[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
[#]: translator: (perfiffer)
[#]: reviewer: (wxy)
[#]: publisher: (wxy)
[#]: url: (https://linux.cn/article-13826-1.html)
2021 年了,我们能推荐使用 Linux 来玩游戏吗?
======
> 每天Linux 都在进行不断进步,以支持具有适当图形支持的现代游戏。但是,我们能推荐 Linux 用于游戏吗?
![](https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/Gaming-On-Linux.jpg?w=1200&ssl=1)
你经常会听到 Linux 爱好者称赞 Linux 上改进的游戏功能。是的,考虑到在 Linux 桌面上支持现代游戏所取得的进步Linux 已经在游戏方面获得了很大的提升。
甚至 Lutris 的创造者在我们的采访中也提到 [Linux 在游戏方面取得的进步简直令人难以置信][1]。
但是,这有什么值得大肆宣传的吗?我们能向游戏玩家推荐 Linux 吗? Linux 适合玩游戏吗?
此文中,我想分享一些关于在 Linux 系统上玩游戏的的事情,并分享我对它的看法。
### 你可以在 Linux 上玩游戏吗?是的!
如果有人曾经告诉过你,不能在 Linux 上玩游戏,**那是不对的**。
你可以在 Linux 上玩各种游戏而不会出现任何大的障碍。而且,在大多数情况下,它是可玩的,并且会提供很好的游戏体验。
事实上,如果你不知道从哪里开始,我们有一份 [Linux 游戏终极指南][2] 提供给你。
### 需要一个特定的 Linux 发行版才能玩游戏吗?
并非如此。这取决于你想获得多么方便的体验。
例如,如果你希望 Linux 发行版能够与你的图形驱动程序很好地配合,并获得最新的硬件支持,那么有一些发行版可以做到。同样,如果你只是想用集成的 GPU 玩原生的 Linux 独立游戏,任何发行版都可以。
因此,在你开启 Linux 游戏之旅的同时,会有一些因素影响你对发行版的选择。
不用担心,为了帮助你,我们提供了一份有用的 [最佳 Linux 游戏发行版列表][3]。
### Linux 上的虚拟现实游戏,唉……
![][4]
我确信 VR 游戏还没有完全普及。但是,如果你想要在 VR 头盔上获得激动人心的体验,那么**选择 Linux 作为你的首选平台可能不是一个好主意**。
你没有在 Linux 上获得便利体验所需的驱动程序或应用程序。没有任何发行版可以帮助你解决此问题。
如果你想了解有关虚拟现实状态的详细信息,可以看看 [Boiling Steam][5] 上的博客文章和 [GamingOnLinux][6] 上的使用 Valve 的 VR 头盔的有趣体验。
我已经提供了这些博客文章的链接以供参考,但总而言之 —— 如果你想体验 VR 游戏,请避免使用 Linux如果你实在太闲请随意尝试
### 可以在 Linux 上玩 Windows 系统的游戏吗?
可以,也不可以。
你可以使用 [Steam Play 来玩 Windows 专属的游戏][7],但是它也存在一些问题,并不是每个游戏都可以运行。
例如,我最终还是使用 Windows 来玩《[地平线 4][8]》。如果你喜欢汽车模拟或赛车游戏,这是一款你可能不想错过的杰作。
或许我们在不久的将来可以看到它通过 Steam Play 完美的运行,谁知道呢?
因此,可以肯定的是,你会遇到许多类似的游戏,可能根本无法运行。这是残酷的事实。
而且,要知道该游戏是否可以在 Linux 上运行,请前往 [ProtonDB][9] 并搜索该游戏,看看它是否至少具有 “**黄金**” 状态。
### 带有反作弊引擎的多人游戏可以吗?
![][10]
许多游戏玩家更喜欢玩多人游戏,如《[Apex Legends][11]》、《[彩虹六号:围攻][12]》和《[堡垒之夜][13]》。
然而,一些依赖于反作弊引擎的流行游戏还不能在 Linux 上运行。它仍然是一项进行中的工作,可能在未来的 Linux 内核版本中实现 —— 但目前还没有。
请注意,像 《[反恐精英:全球攻势][14]》、《Dota 2》、《军团要塞 2》、《[英灵神殿][15]》等多人游戏提供原生 Linux 支持并且运行良好!
### 我会推荐使用 Linux 来玩游戏吗?
![][16]
考虑到你可以玩很多 Windows 专属的游戏、原生的独立游戏,以及 Linux 原生支持的各种 AAA 游戏,我能推荐初次使用者尝试在 Linux 上玩游戏。
但是,需要**注意**的是 —— 我建议你列出你想玩的游戏列表,以确保它在 Linux 上运行没有任何问题。否则,你最终都可能浪费大量时间进行故障排除而没有结果。
不要忘记,我相信 Linux 上的 VR 游戏是一个很大的问题。
而且,如果你想探索所有最新最好的游戏,我建议你坚持使用 Windows 的游戏电脑。
**虽然我应该鼓励更多的用户采用 Linux 作为游戏平台,但我不会忽视为什么普通消费者仍然喜欢使用 Windows 机器来玩游戏的客观事实。**
你怎么认为呢?你同意我的想法吗?欢迎在下方的评论区分享你的想法!
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/linux-for-gaming-opinion/
作者:[Ankush Das][a]
选题:[lujun9972][b]
译者:[perfiffer](https://github.com/perfiffer)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://news.itsfoss.com/author/ankush/
[b]: https://github.com/lujun9972
[1]: https://news.itsfoss.com/lutris-creator-interview/
[2]: https://itsfoss.com/linux-gaming-guide/
[3]: https://itsfoss.com/linux-gaming-distributions/
[4]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/linux-gaming-vr.jpg?w=1200&ssl=1
[5]: https://boilingsteam.com/the-state-of-virtual-reality-on-linux/
[6]: https://www.gamingonlinux.com/2020/08/my-experiences-of-valves-vr-on-linux
[7]: https://itsfoss.com/steam-play/
[8]: https://forzamotorsport.net/en-US/games/fh4
[9]: https://www.protondb.com/
[10]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/linux-gaming-illustration.jpg?w=1200&ssl=1
[11]: https://www.ea.com/games/apex-legends
[12]: https://www.ubisoft.com/en-us/game/rainbow-six/siege
[13]: https://www.epicgames.com/fortnite/en-US/home
[14]: https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/
[15]: https://store.steampowered.com/app/892970/Valheim/
[16]: https://i1.wp.com/news.itsfoss.com/wp-content/uploads/2021/04/gaming-on-linux-support.jpg?w=1200&ssl=1

View File

@ -3,41 +3,40 @@
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-13824-1.html"
用 Lima 在你的 Mac 上运行容器
======
Lima 可以帮助克服在 Mac 上运行容器的挑战。
![Containers for shipping overseas][1]
在你的 Mac 上运行容器可能是一个挑战。毕竟,容器是基于 Linux 特有的技术,如 cgroups 和命名空间
> Lima 可以帮助克服在 Mac 上运行容器的挑战。
幸运的是macOS 拥有一个内置的虚拟机监控程序,允许在 Mac 上运行虚拟机VM。虚拟机监控程序是一个底层的内核功能而不是一个面向用户的功能。
![](https://img.linux.net.cn/data/attachment/album/202109/27/091509kx8u9uqdzcz8c6ud.jpg)
`hyperkit`,一个可以使用 macOS 虚拟机监控程序运行虚拟机的[开源项目][2]。`hyperkit` 被设计成一个“最小化”的虚拟机运行器。与 VirtualBox 不同,它没有花哨的 UI 功能来管理虚拟机
在你的 Mac 上运行容器可能是一个挑战。毕竟,容器是基于 Linux 特有的技术,如控制组和命名空间
你可以获取 `hyperkit`,一个运行容器管理器的极简 Linux 发行版,并将所有部分组合在一起。 这将有很多变动组件,且听起来像有很多工作。特别是如果你想通过使用 `vpnkit` (一个开源项目,用于创建感觉更像是主机网络一部分的 VM 网络)使网络连接更加无缝。
幸运的是macOS 拥有一个内置的<ruby>虚拟机监控程序<rt>hypervisor</rt></ruby>,允许在 Mac 上运行虚拟机VM。虚拟机监控程序是一个底层的内核功能而不是一个面向用户的功能。
hyperkit 是一个可以使用 macOS 虚拟机监控程序运行虚拟机的 [开源项目][2]。hyperkit 被设计成一个“极简化”的虚拟机运行器。与 VirtualBox 不同,它没有花哨的 UI 功能来管理虚拟机。
你可以获取 hyperkit这是一个运行容器管理器的极简 Linux 发行版,并将所有部分组合在一起。但这将有很多变动组件,且听起来像有很多工作。特别是如果你想通过使用 `vpnkit` (一个开源项目,用于创建感觉更像是主机网络一部分的虚拟机网络)使网络连接更加无缝。
### Lima
当 [`lima` 项目][3]已经解决了细节问题时,就没有理由再去做这些努力了。让 `lima` 运行的最简单方法之一是使用 [Homebrew][4]。你可以用这个命令安装 `lima`
当 [lima 项目][3] 已经解决了这些细节问题时,就没有理由再去做这些努力了。让 `lima` 运行的最简单方法之一是使用 [Homebrew][4]。你可以用这个命令安装 `lima`
```
`$ brew install lima`
$ brew install lima
```
安装后,可能需要一些时间,就享受一些乐趣了。为了让 `lima` 知道你已经准备好了,你需要启动它。下面是命令:
```
`$ limactl start`
$ limactl start
```
如果这是你的第一次,你会被问到是否喜欢默认值,或者是否要改变其中的任何一项。默认值是非常安全的,但我喜欢生活在疯狂的一面。这就是为什么我跳进一个编辑器,从以下地方进行修改:
如果这是你第一次运行,你会被问到是否喜欢默认值,或者是否要改变其中的任何一项。默认值是非常安全的,但我喜欢生活在疯狂的一面。这就是为什么我跳进一个编辑器,从以下地方进行修改:
```
- location: "~"
@ -48,7 +47,6 @@ Lima 可以帮助克服在 Mac 上运行容器的挑战。
变成:
```
- location: "~"
# I *also* like to live dangerously -- Austin Powers
@ -57,12 +55,11 @@ Lima 可以帮助克服在 Mac 上运行容器的挑战。
正如评论中所说,这可能是危险的。可悲的是,许多现有的工作流程都依赖于挂载是可读写的。
By default, `lima` runs `containerd` to manage containers. The `containerd` manager is also a pretty frill-less one. While it is not uncommon to use a wrapper daemon, like `dockerd`, to add those nice-to-have ergonomics, there is another way.
默认情况下,`lima` 运行 `containerd` 来管理容器。`containerd` 管理器也是一个非常简洁的管理器。虽然使用一个包装的守护程序,如 `dockerd`,来增加这些漂亮的工效是很常见的,但也有另一种方法。
### nerdctl 工具
`nerdctl` 工具是 Docker 客户端的直接替换,它将这些功能放在客户端,而不是服务器上。`lima` 工具允许运行 `nerdctl` 而不需要在本地安装,直接从虚拟机内部运行
`nerdctl` 工具是 Docker 客户端的直接替换,它将这些功能放在客户端,而不是服务器上。`lima` 工具允许无需在本地安装就可以直接从虚拟机内部运行 `nerdctl`
做完这些后,可以运行一个容器了!这个容器将运行一个 HTTP 服务器。你可以在你的 Mac 上创建这些文件:
@ -75,7 +72,6 @@ hello
现在,挂载并转发端口:
```
$ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python
root@9486145449ab:/#
@ -83,7 +79,6 @@ root@9486145449ab:/#
在容器内,运行一个简单的 Web 服务器:
```
$ lima nerdctl run --rm -it -p 8000:8000 -v $(pwd):/html --entrypoint bash python
root@9486145449ab:/# cd /html/
@ -93,7 +88,6 @@ Serving HTTP on 0.0.0.0 port 8000 (<http://0.0.0.0:8000/>) ...
在另一个终端,你可以检查一切看起来都很好:
```
$ curl localhost:8000
hello
@ -101,25 +95,22 @@ hello
回到容器上,有一条记录 HTTP 客户端连接的日志信息:
```
`10.4.0.1 - - [09/Sep/2021 14:59:08] "GET / HTTP/1.1" 200 -`
10.4.0.1 - - [09/Sep/2021 14:59:08] "GET / HTTP/1.1" 200 -
```
一个文件是不够的,所以还要做些优化。 在服务器上执行 **CTRL-C**,并添加另一个文件:
一个文件是不够的,所以还要做些优化。 在服务器上执行 `CTRL-C`,并添加另一个文件:
```
^C
Keyboard interrupt received, exiting.
root@9486145449ab:/html# echo goodbye &gt; foo.html
root@9486145449ab:/html# python -m http.server 8000
Serving HTTP on 0.0.0.0 port 8000 (<http://0.0.0.0:8000/>) ...
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
```
检查你是否能看到新的文件:
```
$ curl localhost:8000/foo.html
goodbye
@ -134,8 +125,6 @@ goodbye
* 编辑这些目录中的文件。
* 运行网络服务器,在 Mac 程序看来,它们是在 localhost 上运行的。
这些都是通过 `lima nerdctl` 实现的。
--------------------------------------------------------------------------------
@ -145,7 +134,7 @@ via: https://opensource.com/article/21/9/run-containers-mac-lima
作者:[Moshe Zadka][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,86 @@
[#]: subject: "Brave Launches Privacy-Focused “Brave Talk” as a Desperate Attempt to Push Brave Advertisements"
[#]: via: "https://news.itsfoss.com/brave-talk/"
[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Brave Launches Privacy-Focused “Brave Talk” as a Desperate Attempt to Push Brave Advertisements
======
Ever since the initial Covid-19 outbreak in 2020, the world has seen an explosion in the popularity of online meeting services. Unfortunately, many of these are not very privacy-friendly, especially as many of these are offered by notoriously data-hungry advertising companies.
However, the company behind the wildly successful Brave browser has developed a privacy-friendly solution, “Brave Talk.”
### Brave Talk: Open-Source Based Video Conferencing
![][1]
Unlike Zoom and Google Meet, Brave Talk is a piece of new video conferencing software that aims to provide better privacy than its competitors.
It is based on an open-source video conferencing solution i.e., [Jitsi][2], and claims to track no user data.
As a Brave service, alongside Brave News and Search, Brave Talk is integrated directly into the browser. While this makes it more convenient to start calls, it could be a push to promote the web browser more than ever.
Like Apples FaceTime, Brave Talk calls can only be started from a specific browser, which is Brave. This is in contrast to many other [open-source video conferencing services][3].
### The Push for Brave Advertising Network
![][4]
Another thing that many people may point out is that it requires the use of Brave tokens. These are kind of like frequent flyer points, except for use digitally by viewing ads.
For me, this wasnt very clear, as Brave Talk never seemed to actually do anything with these tokens.
So, the users need to opt for Brave rewards if they want to use the service for free.
**Editors Thoughts:** Doesnt it sound like an aggressive push to promote Braves advertising network?
Considering that it utilizes an open-source technology, it not only restricts to a particular web browser, the requirement of enabling “Brave Rewards” may seem to be a bit extreme just because it promises total privacy?
Of course, it is just a thought here. If the user (you) do not have any problem turning on “Brave Rewards,” Braves privacy-focused advertising network, and switching to Brave web browser, you may find Brave Talk an exciting option.
![][5]
### Final Thoughts
I believe that as a privacy-centric offering, Brave Talk sounds good on paper.
It may even offer a decent call quality and an engaging UI, among other things. Also, it should be mentioned that there are two tiers: a free tier and a premium option of **$7/month** with more features.
If you are already using Brave Rewards and have no issues with their private advertising service, it could be a good option for you. It may not be a convenient option for users who do not use the Brave web browser or do not prefer the Brave Rewards system.
If you want to try Brave Talk out for yourself, you will need the Brave browser. For more details, you can refer to the [official announcement][6].
[Brave Talk][7]
_What do you think about Brave Talk? Let me know in the comments below!_
#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
I'm not interested
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/brave-talk/
作者:[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,PHN2ZyBoZWlnaHQ9IjQxOCIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[2]: https://itsfoss.com/jitsi-meet/
[3]: https://itsfoss.com/open-source-video-conferencing-tools/
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjUxOCIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[5]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQ3OCIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
[6]: https://brave.com/brave-talk-launch/
[7]: https://talk.brave.com

View File

@ -1,145 +0,0 @@
[#]: subject: (Can We Recommend Linux for Gaming in 2021?)
[#]: via: (https://news.itsfoss.com/linux-for-gaming-opinion/)
[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
[#]: translator: (perfiffer)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
Can We Recommend Linux for Gaming in 2021?
======
You will often hear Linux enthusiasts praise about the improved gaming capabilities on Linux. Yes, we have come a long way considering the advancements made to support modern games on Linux desktop.
Even Lutris creator mentions in our interview that the [progress Linux has made in terms of gaming is simply incredible][1].
But, is it something to be hyped about? Can we recommend Linux to a gamer? Is Linux suitable for gaming?
In this article, I want to share a few things about gaming on a Linux system and share what I think about it.
### You Can Play Games on Linux: Yes!
If anyones ever told you that you cannot game on Linux, **that is not true**.
You can play a variety of games on Linux without any major hiccups. And, for the most part, it is playable and totally a good experience.
In fact, we have an ultimate guide for [Gaming on Linux][2] if you do not know where to start.
### Do I Need a Specific Linux Distro to Play Games?
Not really. It depends on how convenient you want the experience to be.
For instance, if you want a Linux distribution to work well with your graphics driver and get the latest hardware support, theres something for that. Similarly, if you just want to play native Linux indie games with an integrated GPU, any Linux distro can work.
So, there are a few variables when choosing a Linux distribution for your gaming adventures.
Fret not, to help you out, we have a useful list of the [best Linux gaming distributions][3].
### Virtual Reality Games on Linux: Uh-Oh!
![][4]
Im sure VR gaming is not something widely adopted yet. But, if you want the exciting experience on a VR headset, **choosing Linux as your preferred platform might be a bad idea**.
You do not have the necessary drivers or applications for a convenient experience on Linux. No distribution can help you solve this problem.
If you are curious, you can go through the details shed on the **state of virtual reality** in a blog post on [Boiling Steam][5] and an interesting experience with Valves VR headset on [GamingOnLinux][6].
Ive linked those blog posts for reference but long story short — avoid Linux if you want to experience VR games (feel free to experiment if you have the time though).
### Can You Play Windows Exclusive Games on Linux?
Yes and No.
You can use [Steam Play to play Windows-only games][7], **but it has its share of issues**. Not every game works.
For instance, I end up using Windows to play [Forza Horizon 4][8]. If you love car simulation or racing games, this is a masterpiece that you may not want to miss.
Maybe we will see it working through Steam Play without issues in the near future, who knows?
So, it is safe to assume that you will encounter many similar games that may not work at all. Thats the bitter truth.
And, to know if the game works on Linux, head to [ProtonDB][9] and search for the game to see if it has a “**Gold**” status at the very least.
### Multiplayer Gaming With Anti-Cheat Engines: Does It Work?
![][10]
A huge chunk of gamers prefer playing multiplayer games like [Apex Legends][11], [Rainbow Six Siege][12], and [Fortnite][13].
However, some of those popular titles that rely on anti-cheat engines do not work on Linux yet. It is still something a work in progress and can be made possible in future Linux Kernel releases — just not yet.
Do note that multiplayer games like [CS:GO][14], Dota 2, Team Fortress 2, [Valheim][15], and several more offer native Linux support and works great!
### Would I Recommend Linux for Gaming?
![][4]
Considering that you can play a lot of Windows-specific games, native indie games, and a variety of AAA games with native Linux support, I can recommend a first-time user to try gaming on Linux.
But, that comes with a **caution** — I would suggest you to make a potential list of games that you want to play to make sure that it runs on Linux without any issues. In either case, you may end up wasting a lot of time troubleshooting with no results.
Not to forget, a big no to VR gaming on Linux, I believe.
And, if you want to explore all the latest and greatest titles, I will recommend you to stick to your Windows-powered gaming machine.
**While I should encourage more users to adopt Linux as a gaming platform, but I wont be ignoring the practical side of why common consumers still prefer a Windows-powered machine to game on.**
_What do you think? Do you agree with my thoughts? Feel free to share what you feel in the comments below!_
#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
I'm not interested
#### _Related_
* [The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][1]
* ![][16] ![][17]
* [Popular Game Titles Metro Exodus and Total War: Rome Remastered Releasing for Linux in April][18]
* ![][16] ![][19]
* [Good News for Linux Gamers! An Unofficial Epic Games Store Launcher for Linux is in Works][20]
* ![][16] ![Heroic Games Launcher][21]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/linux-for-gaming-opinion/
作者:[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/lutris-creator-interview/
[2]: https://itsfoss.com/linux-gaming-guide/
[3]: https://itsfoss.com/linux-gaming-distributions/
[4]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUyMScgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=
[5]: https://boilingsteam.com/the-state-of-virtual-reality-on-linux/
[6]: https://www.gamingonlinux.com/2020/08/my-experiences-of-valves-vr-on-linux
[7]: https://itsfoss.com/steam-play/
[8]: https://forzamotorsport.net/en-US/games/fh4
[9]: https://www.protondb.com/
[10]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzUyMCcgd2lkdGg9Jzc4MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=
[11]: https://www.ea.com/games/apex-legends
[12]: https://www.ubisoft.com/en-us/game/rainbow-six/siege
[13]: https://www.epicgames.com/fortnite/en-US/home
[14]: https://store.steampowered.com/app/730/CounterStrike_Global_Offensive/
[15]: https://store.steampowered.com/app/892970/Valheim/
[16]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9JzIwMCcgd2lkdGg9JzM1MCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnLz4=
[17]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/lutris-interview-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200
[18]: https://news.itsfoss.com/metro-exodus-total-war-rome-linux/
[19]: https://i2.wp.com/news.itsfoss.com/wp-content/uploads/2021/03/metro-total-war-ft.png?fit=1200%2C675&ssl=1&resize=350%2C200
[20]: https://news.itsfoss.com/heroic-games-launcher/
[21]: https://i0.wp.com/news.itsfoss.com/wp-content/uploads/2021/01/heroic-games-launcher.jpg?fit=1200%2C675&ssl=1&resize=350%2C200

View File

@ -0,0 +1,90 @@
[#]: subject: "Why nonprofit organizations choose open source software"
[#]: via: "https://opensource.com/article/21/9/nonprofit-open-source"
[#]: author: "Michael Korotaev https://opensource.com/users/michaelk"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Why nonprofit organizations choose open source software
======
Open source software increases in importance as more European nonprofits
shift to products like Nextcloud and ONLYOFFICE.
![4 books that spell out open][1]
With tech and data safety awareness rising, open source software is becoming a go-to option for organizations of all classes more than ever. Nonprofit organizations are particularly vulnerable on the financial side while at the same time dealing with vital social and environmental issues.
This article observes the adoption of open source collaboration technologies in nonprofit organizations by using [Nextcloud][2] and [ONLYOFFICE][3] as examples.
### Transparency and security
Open source is basically democracy written in code: It liberates and democratizes knowledge, gives access to vital technology to governmental and social institutions in all communities, and pursues the idea of transparency.
People and organizations can access and reuse the software code. At the same time, contributors bear individual responsibility for the quality of their products and are more driven by initiative and ideas and much less by profit.
Open source applications are seen as more reliable than proprietary solutions with source code reserved to a single vendor who decides how users data is handled and is in many cases the only observing party to this process.
According to the latest [State of Enterprise Open Source report][4], the enterprise use of open source is expected to grow with 79% of surveyed IT leaders willing to build up their use of open source in the next two years.
### Universal access to collaborative tools
For decades, Microsoft and Google have been the de-facto standard for collaboration tools. But privacy and security concerns, together with a massive boost in cloud collaboration usage over the pandemic, have ramped up nonprofits' preference for open source tools.
For nonprofit organizations, open source is a way to cut expenses by providing their employees and contributors with core collaboration tools such as content management and sharing environments, online office, and communication tools to manage operations, organize data, and create content.
One example of an all-in-one system that sees constant growth in popularity among nonprofit organizations in Europe is Nextcloud. It is a free and secure sharing platform that combines document management space with various productivity add-ons. It also integrates with ONLYOFFICE Docs for document editing and collaboration functionality.
### ONLYOFFICE and Nextcloud in practice
Over the past year, several nonprofit organizations with diversified profiles have joined the users of Nexcloud and ONLYOFFICE. Some are newly in business and some are switching from proprietary solutions seeking a better match to handle their jobs.
#### Sea-Watch
[Sea-Watch][5] is a rescue organization that provides emergency aid for civilians in the Mediterranean amidst the ongoing refugee crisis and has saved over 38,000 lives to date. It has deployed a collaborative system for its 90 employees and over 400 volunteers.
After having tried several free online solutions to maintain internal document flow and collaboration, Sea-Watch now relies on open source software to be more and more protective of the security and privacy of the organizations data and the personal information of its employees and volunteers.
Sea-Watch finds the solution to this problem by combining the Nextcloud file sharing platform with ONLYOFFICE online editors to enable secure editing and collaboration on documents online using the organizations own physical infrastructure.
#### Vegan in Leipzig
[Vegan in Leipzig][6], a young activist association in Germany, advocates for animal rights and promotes a vegan diet and lifestyle. Around 100 people in the organizations team work on creating vegan dining maps, scheduling and promoting related events, and uniting online communities to collect and organize all information for Leipzigs vegan community and allies in one place.
Vegan in Leipzig has been using Nextcloud to facilitate the organizations internal file management and content sharing. A reliable and free platform for community users, Nextcloud is built to provide a sharing space of required scale for distributed teams and incorporating online communication tools such as videoconferencing and chat.
In March 2021, the organization introduced its contributors to ONLYOFFICE editors integrated with Nextcloud for online collaboration on shared files, including documents, spreadsheets, and presentations.
“Our employees are almost 100% satisfied. For now, there have been no complaints, feature requests, or reports of technical problems. As an administrator, I would go even further and say that ONLYOFFICE is the part of our application landscape that requires by far the least maintenance,” says Christo H., a volunteer administrator with Vegan in Leipzig.
#### Wegweiser
Among various nonprofit organizations grounded in helping struggling societal groups, one plays a vital role in the German social agenda: Wegweiser. The organization helps people with mental and physical disabilities integrate into society by dealing with daycare organizations, outpatient care, and school-to-employment transfer.
Wegwiser had been using SharePoint for managing its content and documentation, but with growing concerns for the privacy of processed data, the organization opted for a Nextcloud and ONLYOFFICE combination to ensure full control over data in its own sovereign infrastructure. Wegweiser uses Nextcloud to document daily work, accounting and controlling, simultaneous document editing, and working with Microsoft Office-formatted documents.
### Wrap up
The list can be continued by numerous nonprofit organizations that have recently become users of Nextcloud and ONLYOFFICE, including The German Life Saving Association, Foodsharing Austria, and International Youth Community Services.
Stories like this show that its not only cost-cutting that defines the value of open source for the global community but also the vitality of universal access to technology and knowledge.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/nonprofit-open-source
作者:[Michael Korotaev][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/michaelk
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/EDU_OSDC_BYU_520x292_FINAL.png?itok=NVY7vR8o (4 books that spell out open)
[2]: https://nextcloud.com/
[3]: https://www.onlyoffice.com/
[4]: https://www.redhat.com/en/enterprise-open-source-report/2021
[5]: https://sea-watch.org/en/
[6]: https://www.vegan-in-leipzig.de/

View File

@ -1,184 +0,0 @@
[#]: subject: (What is a config file?)
[#]: via: (https://opensource.com/article/21/6/what-config-files)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
[#]: collector: (lujun9972)
[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
What is a config file?
======
There are several popular formats for configuration files, each with its
own strengths. Find what works best for you.
![Computer screen with files or windows open][1]
There are thousands of configuration files on your computer. You may never directly interact with the bulk of them, but they're scattered throughout your `/etc` folder and in `~/.config` and `~/.local` and `/usr`. There are probably some in `/var` and possibly even in `/opt`. If you've ever opened one by accident or to make a change, you may have wondered why some configuration files look one way while others look completely different.
Storing configurations is a flexible task because as long as developers know how their code puts data into a file, they can easily write code to extract that data as needed. However, the tech industry graciously favors well-documented standardization, so several well-known formats have evolved over the years to make configuration easy.
### Why we need configuration
Configuration files ("config files" for short) are important to modern computing. They allow you to customize how you interact with an application or how an application interacts with the rest of your system. It's thanks to config files that any time you launch an application, it has "memories" of how you like to use it.
Configuration files can be, and often are, very simple in structure. For instance, if you were to write an application, and the only thing it ever needed to know was its user's preferred name, then its one and only config file could contain exactly one word: the name of the user. For example:
```
`Tux`
```
Usually, though, an application needs to keep track of more than just one piece of information, so configuration often uses a key and a value:
```
NAME='Tux'
SPECIES='Penguin'
```
Even without programming experience, you can imagine how code parses that data. Here are two simple examples, one using the [`awk` command][2] and the other using the [grep command][3], focusing on just the line containing the "key" of `NAME`, and returning the "value" appearing after the equal sign (`=`):
```
$ awk -F'=' '/NAME/ { print $2; }' myconfig.ini
'Tux'
$ grep NAME fake.txt | cut -d'=' -f2
'Tux'
```
The same principle applies to any programming language and any configuration file. As long as you have a consistent data structure, you can write simple code to extract and parse it when necessary.
### Choose a format
To be broadly effective, the most important thing about configuration files is that they are consistent and predictable. The last thing you want to do is dump information into a file under the auspices of saving user preferences and then spend days writing code to reverse-engineer the random bits of information that have ended up in the file.
There are several popular formats for configuration files, each with its own strengths.
#### INI
INI files take the format of key and value pairs:
```
[example]
name=Tux
style=widgety,fidgety
enabled=1
```
This simple style of configuration can be intuitive, with the only point of confusion being poor key names (for example, cryptic names like `unampref` instead of `name`). They're easy to parse and easy to edit.
The INI format features sections in addition to keys and values. In this sample code, `[example]` and `[demo]` are configuration sections:
```
[example]
name=Tux
style=widgety,fidgety
enabled=1
[demo]
name=Beastie
fullscreen=1
```
This is a little more complex to parse because there are _two_ `name` keys. You can imagine a careless programmer querying this config file for `name` and always getting back `Beastie` because that's the last name defined by the file. When parsing such a file, a developer must be careful to search within sections for keys, which can be tricky depending on the language used to parse the file. However, it's a popular enough format that most languages have an existing library to help programmers parse INI files.
#### YAML
[YAML files][4] are structured lists that can contain values or key and value pairs:
```
\---
Example:
  Name: 'Tux'
  Style:
   - 'widgety'
    - 'fidgety'
  Enabled: 1
```
YAML is popular partly because it looks clean. It doesn't have much of a syntax aside from where you place the data in relation to previous data. What's a feature for some, though, is a bug for others, and many developers avoid YAML because of the significance it places on what is essentially _not there_. If you get indentation wrong in YAML, YAML parsers may see your file as invalid, and even if it's tolerated, it may return incorrect data.
Most languages have YAML parsers, and there are good open source YAML linters (applications to validate syntax) to help you ensure the integrity of a YAML file.
#### JSON
JSON files are technically subsets of YAML, so its data structure is the same, although its syntax is completely different:
```
{
  "Example": {
    "Name": [
      "Tux"
    ],
    "Style": [
      "widgety",
      "fidgety"
    ],
    "Enabled": 1
  }
}
```
JSON is popular among JavaScript programmers, which isn't surprising, given that JSON stands for JavaScript Object Notation. As a result of being strongly associated with web development, JSON is a common output format for web APIs. Most programming languages have libraries to parse JSON.
#### XML
XML uses tags as keys that surround a configuration value:
```
&lt;example&gt;
  &lt;name&gt;Tux&lt;/name&gt;
  &lt;style priority="user"&gt;widgety&lt;/style&gt;
  &lt;style priority="fallback"&gt;fidgety&lt;/style&gt;
  &lt;enabled&gt;1&lt;/enabled&gt;
&lt;/example&gt;
```
XML is often used by Java programmers, and Java has a rich set of XML parsers. While it has a reputation of being quite strict, XML is simultaneously very flexible. Unlike HTML, which has a set of tags you're allowed to use, you can arbitrarily invent your own XML tags. As long as you structure it consistently and have a good library to parse it, you can extract your data with precision and ease.
There are some good open source linters to help you validate XML files, and most programming languages have a library to parse XML.
#### Binary formats
Linux prides itself on plain-text configuration. The advantage is that you can see configuration data using basic tools like [cat][5], and you can even edit a configuration with your [favorite text editor][6].
Some applications use binary formats, though, which means the data is encoded in some format that is not a natural language. These files usually require a special application (usually the application they're meant to configure) to interpret their data.
You can't view these files, at least not in a way that makes any sense, and you can't edit them outside of their host application. Some reasons for resorting to binary formats are:
* **Speed:** A programmer can register specific bits of information at certain points within a binary's config file using custom notation. When the data is extracted, there's no searching involved because everything is already indexed.
* **Size:** Text files can get big, and should you choose to compress a text file, you're functionally turning it into a binary format. Binary files can be made smaller through tricks of encoding (the same is true of text files, but at some point, your optimizations make your data so obscure that it may as well be binary).
* **Obfuscation:** Some programmers don't want people even looking at their configuration files, so they encode them as binary data. This usually succeeds only in frustrating users. This is not a good reason to use binary formats.
If you must use a binary format for configuration, use one that already exists as an open standard, such as [NetCDF][7].
### Find what works
Configuration formats help developers store the data their applications need and help users store preferences for how they want applications to act. There's probably no wrong answer to the question of what format you should use, as long as you feel well supported by the language you're using. When developing your application, look at the formats available, model some sample data, review and evaluate the libraries and utilities your programming language provides, and choose the one you feel the most confident about.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/what-config-files
作者:[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/browser_screen_windows_files.png?itok=kLTeQUbY (Computer screen with files or windows open)
[2]: https://opensource.com/article/20/9/awk-ebook
[3]: https://opensource.com/downloads/grep-cheat-sheet
[4]: https://www.redhat.com/sysadmin/yaml-beginners
[5]: https://opensource.com/article/19/2/getting-started-cat-command
[6]: https://opensource.com/article/21/2/open-source-text-editors
[7]: https://www.unidata.ucar.edu/software/netcdf/

View File

@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/21/9/build-website-jekyll"
[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: translator: "perfiffer"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

@ -1,80 +0,0 @@
[#]: subject: "An open source alternative to Microsoft Exchange"
[#]: via: "https://opensource.com/article/21/9/open-source-groupware-grommunio"
[#]: author: "Markus Feilner https://opensource.com/users/mfeilner"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
An open source alternative to Microsoft Exchange
======
Open source users now have a robust and fully functional choice for
groupware.
![Working on a team, busy worklife][1]
Microsoft Exchange has for many years been nearly unavoidable as a platform for groupware environments. Late in 2020, however, an Austrian open source software developer introduced [grommunio][2], a groupware server and client with a look and feel familiar to Exchange and Outlook users.
The grommunio project functions well as a drop-in replacement for Exchange. The developers connect components to the platform the same way Microsoft does, and they support RPC (Remote Procedure Call) with the HTTP protocol. According to the developers, grommunio also includes numerous interfaces of common groupware such as IMAP, POP3, SMTP, EAS (Exchange ActiveSync), EWS (Exchange Web Services), CalDAV, and CardDAV. With such broad support, grommunio integrates smoothly into existing infrastructures.
Users will notice little difference among Outlook, Android, and iOS clients. Of course, as open source software, it supports other clients, too. Outlook and smartphones communicate with grommunio just as they do with a Microsoft Exchange server, thanks to their integrated, native Exchange protocols. An everyday enterprise user can continue to use their existing clients with the grommunio server quietly running in the background.
### More than just mail
In addition to mail functions, a calendaring system is available in the grommunio interface. Appointments can be created by clicking directly in the calendar display or in a new tab. It's intuitive and just what you'd expect from a modern tool. Users can create, manage, and share calendars as well as address books. Private contacts or common contacts are possible, and you can share everything with colleagues.
Task management shows a list of tasks on the left in a drop-down menu, and they can have both one owner and multiple collaborators. You can assign deadlines, categories, attachments, and other attributes to each task. In the same way, notes can be managed and shared with other team members.
### Chat, video conferences, and file sync
In addition to all the standard features of modern groupware, grommunio also offers chat, video conferencing, and file synchronization. It does this with full integration on a large scale for the enterprise, with extraordinarily high performance. It's an easy choice for promoters of open source and a powerful option for sysadmins. Because grommunio aims to integrate rather than reinvent, all components are standard open source tools.
![Screenshot of grommunio meeting space][3]
Jitsi integration for advanced video conferences (Markus Feilner, [CC BY-SA 4.0][4])
Behind the meeting function in grommunio is [Jitsi][5], smoothly integrated into the grommunio UI with a familiar user interface. The chat feature, fully integrated and centrally managed, is based on [Mattermost][6].
![Screenshot of grommunio's town square for chat][7]
Mattermost for chat (Markus Feilner, [CC BY-SA 4.0][4])
[ownCloud][8], which promises enterprise-level file sharing and synchronization, starts after a click on the Files button.
![Screenshot of grommunio file sharing space][9]
ownCloud for file synchronization and exchange (Markus Feilner, [CC BY-SA 4.0][4])
The grommunio project has a powerful administrative interface, including roles, domain and organization management, predictive monitoring, and a self-service portal. Shell-based wizards guide admins through installation and migration of data from Microsoft Exchange. The development team is constantly working for better integration and more centralization for management, and with that comes a better workflow for admins.
![Screenshot of grommunio dashboards][10]
grommunio's admin interface (Markus Feilner, [CC BY-SA 4.0][4])
### Explore grommunio
The grommunio project has lofty goals, but its developers have put in the work, and it shows. A German hosting service specializing in tax consultants—a sector where German data protection laws are especially tough—recently announced that grommunio is available to their customers. The grommunio project gets a lot right: a clean combination of existing, successful concepts working together to enable open, secure, and privacy-compliant communication.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/open-source-groupware-grommunio
作者:[Markus Feilner][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/mfeilner
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
[2]: https://grommunio.com/en/
[3]: https://opensource.com/sites/default/files/uploads/jitsi_0.png (grommunio meeting space)
[4]: https://creativecommons.org/licenses/by-sa/4.0/
[5]: https://opensource.com/article/20/5/open-source-video-conferencing
[6]: https://opensource.com/education/16/3/mattermost-open-source-chat
[7]: https://opensource.com/sites/default/files/uploads/mattermost.png (grommunio's town square for chat)
[8]: https://owncloud.com/
[9]: https://opensource.com/sites/default/files/uploads/owncloud_0.png (Owncloud for file synchronization and exchange)
[10]: https://opensource.com/sites/default/files/uploads/grommunio_interface_0.png (Screenshot of grommunio dashboards)

View File

@ -0,0 +1,71 @@
[#]: subject: "5 open source alternatives to Zoom"
[#]: via: "https://opensource.com/article/21/9/alternatives-zoom"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
5 open source alternatives to Zoom
======
Try one of these open source video conferencing services.
![Two people chatting via a video conference app][1]
I recently attended the [Practical Open Source Information POSI][2] conference, which was held on a free and open source video conferencing platform. As I attended a series of excellent talks about practical uses of open source software, I realized how commonplace video conferencing had become over the past few years.
If open source does anything, it provides choice, and now that more and more workers have the freedom of working remotely, having an option in the way you connect makes a lot of sense.
Sometimes, you need a full-featured video conferencing application with moderation, a presentation mode, and breakout rooms, while other times, all you want to do is make a quick call to a friend so that you can see each other's faces.
### Jitsi
[Jitsi][3] is an easy, casual, but robust video calling platform. You can self host it or use it on the public instance at [meet.jit.si][4]. It's got customizable URLs that make it easy to share links with friends you want to meet with, in-call chat, administrative controls, and call recording. It's very actively developed and has a whole collection of new features being tested and released each year. It's the platform Opensource.com uses for our weekly meetings.
### Signal
[Signal][5] is already a popular security-focused chat application, and it recently added [group video calls][6] to its features. The video calls are great for simple meetings, and because you can only meet with other people in your Signal contact list, there's no concern over unwanted guests at your video call party. There's also no back and forth "phone tag" as you try to locate the virtual room you're supposed to be meeting in. It all happens in Signal, so there's no guesswork required.
Signal itself is pretty intuitive, and the video feature fits neatly into its existing conventions. In short, as long as your contacts are using Signal, this is a no-effort video calling platform. This is the application I use for personal contacts, and I regularly use its video calling feature to connect to friends and family.
### P2p.chat
[P2p.chat][7] is the easiest of them all, in both design and implementation. Working through Web Real-Time Communication (WebRTC), p2p.chat is a web application that allows you to connect directly to the person you're calling, with no host server required. There's not much to the p2p.chat interface, but that's another part of its appeal. There's no administrative control or presentation mode because p2p.chat is very much the "vidphone" promised in sci-fi: A casual, no-effort person-to-person (or people-to-people) video call with somebody far away.
You use custom URLs to create a meeting space dynamically, so they're relatively easy to remember (aside from the small randomized part) and type. I use p2p.chat with friends who aren't on Signal, and it's never let me down.
### BigBlueButton
Designed for classrooms, conferences, and presentations, [BigBlueButton][8] is the solution you're looking for if you need strict admin controls and extreme flexibility. With BigBlueButton, you can mute all participants, block and kick a participant, create breakout rooms, create a collaborative whiteboard, share screens, give presentations, and record sessions. Participants can raise a digital hand for attention and set their status as a non-verbal method of communication. It's easy to use, but it's a serious platform for focused and very large groups. I've attended a few technical conferences using BigBlueButton, including the [Practical Open Source Information (POSI)][2] conference.
### Wire
[Wire][9] is an excellent choice for corporate customers looking for a hosted video chat and groupware client. Licensed under the [AGPL][10], this open source project is available for desktop and server, Android, and iOS. It features video calling, messaging, and file sharing, so even a remote meeting essentially has all the conveniences of meeting in person. You can try Wire for free for a limited time and then purchase a support contract for your company. Alternately, you can host it yourself.
### Open source video chat
There's no reason to settle for proprietary video calling hosted by companies you may not fully trust. The open source options available today are great for keeping in touch with all the people in your professional and personal life. Try one of these solutions the next time you want to meet with friends.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/alternatives-zoom
作者:[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/chat_video_conference_talk_team.png?itok=t2_7fEH0 (Two people chatting via a video conference app)
[2]: https://opensource.org/posicfp
[3]: http://jitsi.org
[4]: http://meet.jit.si
[5]: https://signal.org
[6]: https://support.signal.org/hc/en-us/articles/360052977792-Group-Calling-Voice-or-Video-with-Screen-Sharing
[7]: https://p2p.chat/
[8]: https://bigbluebutton.org/
[9]: https://wire.com/en/
[10]: https://opensource.org/licenses/AGPL-3.0

View File

@ -0,0 +1,223 @@
[#]: subject: "Bash Shell Scripting for beginners (Part 1)"
[#]: via: "https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/"
[#]: author: "zexcon https://fedoramagazine.org/author/zexcon/"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Bash Shell Scripting for beginners (Part 1)
======
![][1]
Photo by [N Bandaru][2] on [Unsplash][3]
As the title implies this article will be covering Bash Shell Scripting at a beginner level. Im not going to review the history of Bash but there are many resources to fill you in or you can visit the GNU project at <https://www.gnu.org/software/bash/>. We will start out with understanding some very basic concepts and then start to put things together.
### Creating a script file
The first thing to do is create a script file. First make sure the home directory is the current directory.
```
cd ~
```
In the home directory, create the example file. This can be named anything but _learnToScript.sh_ will be used in this article.
```
touch learnToScript.sh
```
From this point there will be a file called _learnToScript.sh_ in your home directory. Verify it exists and also notice the privileges for that file are -rw-rw-r by typing the following.
```
ls -l
```
```
[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon 90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rw-rw-r--. 1 zexcon zexcon 70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon 318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
[zexcon@trinity ~]$
```
There is one more thing that needs to be done to get started. Lets try and execute the script with nothing written in it. Type the following:
```
./learnToScript.sh
```
```
[zexcon ~]$ ./learnToScript.sh
bash: ./learnToScript.sh: Permission denied
```
You get permission denied because there are no execute permissions on the file. You need to change the permissions of the file to be able to execute the script. If you are not familiar with permissions I would recommend reading the Fedora Magazine articles written by [Paul W. Frields][4]
> [Command line quick tips: Permissions][5]
> [Command line quick tips: More about permissions][6]
At this point youve brushed up on permissions, so back to the terminal and lets change the _learnToScript.sh_ file so it will execute. Type in the following to allow execution of the file.
```
chmod 755 learnToScript.sh
```
```
[zexcon@trinity ~]$ ls -l
total 7
drwxr-xr-x. 1 zexcon zexcon 90 Aug 30 13:08 Desktop
drwxr-xr-x. 1 zexcon zexcon 80 Sep 16 08:53 Documents
drwxr-xr-x. 1 zexcon zexcon 1222 Sep 16 08:53 Downloads
-rwxr-xr-x. 1 zexcon zexcon 70 Sep 17 10:10 learnToScript.sh
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Music
drwxr-xr-x. 1 zexcon zexcon 318 Sep 15 13:53 Pictures
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Public
drwxr-xr-x. 1 zexcon zexcon 0 Jul 7 16:04 Videos
[zexcon@trinity ~]$
```
Okay now youre ready, you have read, write and execute permissions (-rwxr-x r-x) to the _learnToScript.sh_ command.
### Editing a script file
Take a moment and make certain you are familiar with _vim_ or any text editor. Throughout this article I will be utilizing _vim_. At the command prompt type the following:
```
vim learnToScript.sh
```
This will bring you to an empty text file with a bunch of tildes in it. Type _i_ on your keyboard and this will move you into — INSERT — mode. You can see its in this mode by looking at the bottom left of the terminal window. (Note that an alternative editor is the [_nano_ editor][7].)
From here you need to make sure that the file is recognized by the correct interpreter. So enter the shebang ( #! ) and the directory to your bash, /bin/bash:
```
#!/bin/bash
```
One last thing that you will use throughout the article is saving the document. Hit _Esc_ to leave input mode, then Shift + Colon. At the colon you will enter _wq_. This will write(_w_) the file and quit(_q_) _vim_ once you hit enter.
A few things to remember while using _vi_m, anytime you want to write into a document you need to enter _i_ and you will see INSERT at the bottom. Anytime you want to save, you will need to hit _Esc_ to leave input mode, and then _Shift+:_ to enter _w_ to write the file or _Esc_ then _Shift+:_ to enter _q_ to quit and not save. Or add both _wq_ together and it will write and close. _Esc_ by itself will exit INSERT mode. You can find much more about _vim_ at its [website][8] or this [get started][9] site.
## Lets start scripting…
### echo
The _echo_ command is used to return something to the terminal. You will notice that you can use single quotes, double quotes or no quotes. So lets take a look at it with a traditional Hello World!
```
#!/bin/bash
echo Hello World!
echo 'Hello World!'
echo "Hello World!"
```
```
[zexcon ~]$ ./learnToScript.sh
Hello World!
Hello World!
Hello World!
[zexcon ~]$
```
Notice that you get the same result with all three options. This is not always the case but in this basic script it is. In some circumstances the type of quotes will make a difference. By the way, congratulations you have written your first Bash script. Lets look at a few things that you will want to know as you continue to create more scripts and let your mind run wild.
### Command Substitution $( ) or ` `
Command substitution allows you to get the results of a command you might execute at the command line and write that result to a variable. For example if you type _ls_ at the command prompt you will get a list of the current working directory. So lets put this into practice. You have two options for command substitution. Note that the first option uses a back tick found above the Tab key on the left side of the keyboard. It is paired with the tilde ~ key. The second option uses a shell variable.
```
#!/bin/bash
command1=`ls`
echo $command1
command2=$(ls)
echo $command2
```
```
[zexcon ~]$ ./learnToScript.sh
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
Desktop Documents Downloads learnToScript.sh Music Pictures Public snap Videos
[zexcon ~]$
```
Notice no space between the variable, equal sign, and the start of the command. You get the exact same result with both options. Note that variables need to be led by a dollar sign. If you forget and you echo out the command variable without the dollar sign you will just see the name of the command as shown in the next example.
```
#!/bin/bash
command1=`ls`
echo command1
command2=$(ls)
echo command2
```
```
[zexcon ~]$ ./learnToScript.sh
command1
command2
[zexcon ~]$
```
### Double Parenthesis (())
So what are double parenthesis for? Double parenthesis are simple, they are for mathematical equations.
```
#!/bin/bash
echo $((5+3))
echo $((5-3))
echo $((5*3))
echo $((5/3))
```
```
[zexcon ~]$ ./learnToScript.sh
8
2
15
1
[zexcon ~]$
```
## Conclusion
At this point we have created our first script. We have an idea how to take several commands, place them in a script and run it to get the results. We will continue this discussion in the next article and look at redirection of input and output, the pipe command, using double brackets or maybe just adding some comments.
--------------------------------------------------------------------------------
via: https://fedoramagazine.org/bash-shell-scripting-for-beginners-part-1/
作者:[zexcon][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/zexcon/
[b]: https://github.com/lujun9972
[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/bash_shell_scripting_pt1-816x345.jpg
[2]: https://unsplash.com/@nbandana?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/shell-scripting?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: http://pfrields.id.fedoraproject.org/
[5]: https://fedoramagazine.org/command-line-quick-tips-permissions/
[6]: https://fedoramagazine.org/command-line-quick-tips-more-about-permissions/
[7]: https://fedoramagazine.org/gnu-nano-minimalist-console-editor/
[8]: https://www.vim.org/docs.php
[9]: https://linuxhandbook.com/basic-vim-commands/

View File

@ -0,0 +1,123 @@
[#]: subject: "Install Java from your Linux distribution's repositories"
[#]: via: "https://opensource.com/article/21/9/install-java-linux-repositories"
[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
[#]: collector: "lujun9972"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Install Java from your Linux distribution's repositories
======
Regardless of which distribution and package manager you prefer, it is
easy to get Java on your Linux system.
![Coffee beans and a cup of coffee][1]
There are a number of different ways to install Java on your Linux desktop. An obvious route is to use the packages provided in your Linux distribution. Note that this doesnt work for everyone; for example, some users may need a very specific version of Java.
Before you can start, you must determine “which Java” you need. Do you just need to run some `.class` files or a `.jar` file? Or are you writing some code that you need to compile?
In my case, most of the Java I run is Java that I have (at least partly) written myself, so it always makes sense to install the full Java Development Kit, or JDK, which comes with a Java compiler, libraries, and some really useful utilities. And of course, hereabouts, we give preference to the open source JDK, called [OpenJDK][2].
Since I primarily work on the Ubuntu Linux distribution, my package manager is `apt`. I can use `apt` to find out which OpenJDK packages are available:
```
`apt list OpenJDK\*`
```
The output of this command looks like:
```
Listing... Done
openjdk-11-dbg/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-dbg/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-demo/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-demo/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-doc/hirsute-updates,hirsute-updates,hirsute-security,hirsute-security 11.0.11+9-0ubuntu2 all
openjdk-11-jdk-headless/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-jdk-headless/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-jdk/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-jdk/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-jre-dcevm/hirsute 11.0.10+1-1 amd64
openjdk-11-jre-headless/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-jre-headless/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-jre-zero/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-jre-zero/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-jre/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 amd64
openjdk-11-jre/hirsute-updates,hirsute-security 11.0.11+9-0ubuntu2 i386
openjdk-11-source/hirsute-updates,hirsute-updates,hirsute-security,hirsute-security 11.0.11+9-0ubuntu2 all
openjdk-15-dbg/hirsute 15.0.3+3-1 amd64
openjdk-15-dbg/hirsute 15.0.3+3-1 i386
openjdk-15-demo/hirsute 15.0.3+3-1 amd64
...
openjdk-8-jre/hirsute-updates,hirsute-security 8u292-b10-0ubuntu1 i386
openjdk-8-source/hirsute-updates,hirsute-updates,hirsute-security,hirsute-security 8u292-b10-0ubuntu1 all
```
I have elided quite a few lines above with `...`.
It turns out that, even though Im limiting myself to the OpenJDK, I still have plenty of options for:
* The architecture (in my case, whether i386 or amd64).
* The version of Java (in my case, whether 8, 11, 15, 16, 17).
* The pure OpenJDK or the headless version.
* The Java Runtime Environment or JRE.
* Options for debugging, demo, source code, etc.
Again, in my case, primarily, Im just interested in the pure vanilla OpenJDK.
Supposing then I want to install the Java 11 version of the plain vanilla OpenJDK for my amd64 architecture, I can type:
```
`sudo apt install -a=amd64 openjdk-11-jdk`
```
A few minutes later, Ill be able to compile, run, debug, and package my Java code.
Note that its quite possible, and sometimes even desirable, to have multiple versions of Java installed simultaneously. In the case of Ubuntu, there is a useful utility called `update-java-alternatives` that [displays and configures which java environment][3] to use at any point in time.
Those of you using a different Linux distro can, in general, take a similar approach. Several other distros (such as Debian and Mint) also use `apt`, though the available packages may differ. Other distros use different package managers. For example, [the Fedora documentation page for Installing Java][4] shows how to use the Fedora `dnf` package manager to handle the installation. First, to show the available version, type:
```
`dnf search openjdk`
```
Next, to install the full development x86_64 architecture version, type:
```
`sudo dnf install java-11-openjdk-devel.x86_64`
```
Similarly, Fedora provides the `alternatives` utility to [display and configure the Java environment][5].
For another example, the [wonderful Arch Linux wiki][6] shows the corresponding package is `jdk11-openjdk`**.** The wiki also explains many other important details related to using Java in Arch, such as using the `archlinux-java` utility to show what Java environments are installed or select a different default environment. Arch uses a package manager called `pacman`, which is also documented [here on the Arch Linux wiki][7].
Regardless of which distribution and package manager you prefer, it is easy to get Java on your Linux system. Consider version and function, of course, before installing. Also keep in mind that there are options for managing two or more Java versions on the same computer. Most of my examples used `apt`, but keep in mind the `dnf` options, too.
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/install-java-linux-repositories
作者:[Chris Hermansen][a]
选题:[lujun9972][b]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/clhermansen
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/java-coffee-mug.jpg?itok=Bj6rQo8r (Coffee beans and a cup of coffee)
[2]: https://openjdk.java.net/
[3]: http://manpages.ubuntu.com/manpages/hirsute/man8/update-java-alternatives.8.html
[4]: https://docs.fedoraproject.org/en-US/quick-docs/installing-java/
[5]: https://tecadmin.net/install-java-on-fedora/
[6]: https://wiki.archlinux.org/title/java#OpenJDK
[7]: https://wiki.archlinux.org/title/pacman#Querying_package_databases

View File

@ -0,0 +1,173 @@
[#]: subject: (What is a config file?)
[#]: via: (https://opensource.com/article/21/6/what-config-files)
[#]: author: (Seth Kenlon https://opensource.com/users/seth)
[#]: collector: (lujun9972)
[#]: translator: (unigeorge)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
什么是配置文件?
======
流行的配置文件格式有若干种,每种都有其独特优势。从中找到最适合你的格式吧!
![Computer screen with files or windows open][1]
计算机上有数以千计的配置文件。你可能永远不会直接与其中的大部分文件打交道,但它们确实散落在你的 `/etc` 以及 `~/.config`、`~/.local`、`/usr` 文件夹中。还有一些可能在 `/var`,甚至 `/opt` 文件夹中。如果无意中打开过或更改过它们,你就可能会有疑问:为什么有些配置文件看起来是某一种格式,而另一些则是看起来完全不同的格式?
存储配置是一项很灵活的任务,因为只要开发人员知道他们的代码如何将数据存入文件,他们就可以轻松编写代码来根据需要提取数据。然而,科技行业非常青睐有详细文档的标准化事物,因此多年来出现了几种比较普遍的格式用来简化配置任务。
### 为什么我们需要配置文件
配置文件对于现代计算来说很重要。它们使你能够自定义与应用程序交互的方式,或自定义应用程序与系统内其他程序的交互方式。有了配置文件,每当你启动某个应用程序时,它都会有“记忆”,记录了你喜欢如何去使用该程序。
配置文件的结构可以很简单,而且通常确实也很简单。例如,如果你要编写一个应用程序,程序唯一需要知道的是其用户的偏好名称,那么它的唯一配置文件就可以只包含一个词:用户名。就像下面这样:
```
Tux
```
但通常应用程序需要追踪的不仅仅是一条信息,因此配置文件通常会有一个键和一个值:
```
NAME='Tux'
SPECIES='Penguin'
```
即使没有编程经验,你也可以想象出代码如何解析这些数据。这里有两个简单的例子,一个使用 [`awk` 命令][2],另一个使用 [grep 命令][3]。两个例子都是只关注包含 `NAME`“键”的行,并返回出现在等号 (`=`) 之后的“值”:
```
$ awk -F'=' '/NAME/ { print $2; }' myconfig.ini
'Tux'
$ grep NAME fake.txt | cut -d'=' -f2
'Tux'
```
同样的原则适用于任何编程语言和任何配置文件。只要你有统一的数据结构,就可以在需要的时候编写简单的代码来提取和解析它。
### 选择格式
为了保证普遍有效性,配置文件最重要的一点是它们是一致的和可预测的。你绝对不会想做这样的事:以保存用户首选项的名义,将信息随意存储到文件中,然后就得花好几天时间来编写代码,以对整个文件中的随机信息实现读取操作。
流行的配置文件格式有若干种,每种格式都有自己的优势。
#### INI
INI 文件采用了键值对的格式:
```
[example]
name=Tux
style=widgety,fidgety
enabled=1
```
这种简单的配置风格很直观,只要你别选择使用糟糕的键名(比如用 `unampref` 这样的神秘键名来代替 `name`)就好。这些键值对很容易解析和编辑。
除了键和值之外INI 格式还可以分 <ruby><rt>section</rt></ruby>。在下列示例代码中,`[example]` 和 `[demo]` 就是配置文件中的两节:
```
[example]
name=Tux
style=widgety,fidgety
enabled=1
[demo]
name=Beastie
fullscreen=1
```
这几个配置语句解析起来有点复杂,因为有 _两个_ `name` 键。想象一下,一个粗心的程序员在这个配置文件中查询 `name`,结果总是返回 `Beastie`,因为这是文件中对 name 的最后一个定义值。在解析这样的文件时,开发人员必须加倍小心地在各节中搜索键,这可能会很棘手,具体取决于用来解析该文件的语言。然而,它仍然是一种很流行的格式,大多数语言都会有一个现成的库来帮助程序员解析 INI 文件。
#### YAML
[YAML 文件][4] 是结构化列表,可以包含值或者键值对:
```
\---
Example:
  Name: 'Tux'
  Style:
   - 'widgety'
    - 'fidgety'
  Enabled: 1
```
YAML 格式很流行,部分原因是它看起来很整洁。数据要放置到相对其上层数据的特定位置,除此之外没有太多其他语法。然而,对于某些人来说的特色,在其他人眼中可能就是一个 bug。许多开发人员不愿使用 YAML正是因为它很看重本质上 _不存在_ 的东西。如果你在 YAML 中缩进错误YAML 解析器可能会将你的文件视为无效文件,即使不视为无效,返回的数据也可能是错误的。
大多数语言都有 YAML 解析器,并且有很好的开源 YAML linters验证语法的应用程序来帮你确保 YAML 文件的完整性。
#### JSON
JSON 文件在技术上来说是 YAML 的子类,因此其数据结构是相同的,尽管其语法完全不同:
```
{
  "Example": {
    "Name": [
      "Tux"
    ],
    "Style": [
      "widgety",
      "fidgety"
    ],
    "Enabled": 1
  }
}
```
JSON 在 JavaScript 程序员中很流行,这并不奇怪,因为 JSON 全称为 JavaScript Object Notation 即 JavaScript 对象符号。由于与 Web 开发密切相关JSON 是 Web API 的常见输出格式。大多数编程语言都有解析 JSON 的库。
#### XML
XML 使用标签作为键,将配置值围绕起来:
```
<example>
  <name>Tux</name>
  <style priority="user">widgety</style>
  <style priority="fallback">fidgety</style>
  <enabled>1</enabled>
</example>
```
XML 经常被 Java 程序员使用Java 有一套丰富的 XML 解析器。虽然 XML 以非常严格而著称,但同时也非常灵活。与有一系列特定标签的 HTML 不同XML 中可以随意发明自己的标签。只要始终坚持相同的构建规则,并有一个良好的库来解析它,你就可以准确而轻松地提取数据。
有一些很好的开源 linter 可以帮你验证 XML 文件,并且大多数编程语言都提供用于解析 XML 的库。
#### 二进制格式
Linux 以纯文本配置为傲。这样做的优点是可以使用 [cat][5] 等基本工具查看配置数据,甚至可以使用你 [最喜欢的文本编辑器][6] 来编辑配置。
但是,某些应用程序使用二进制格式配置,就意味着数据以某种非自然语言的格式进行编码。这些文件通常需要一个特殊的应用程序(通常是它们要配置的应用程序)来解释它们的数据。你无法查看这些文件,至少无法以任何有意义的方式查看,并且无法在其宿主应用程序之外编辑它们。选用二进制格式的一些原因如下:
* **速度:** 程序员可以使用自定义符号在二进制配置文件中的某些点注册特定的信息位。提取数据时不涉及搜索,因为所有内容都已标注了索引。
* **大小:** 文本文件可能会变大,如果选择压缩文本文件,实际上是在将其转换为二进制格式。二进制文件可以通过编码技巧变得更小(文本文件也是如此,但在某些时候,你的优化会使数据变得晦涩,以至于文件也成了二进制文件)。
* **晦涩:** 一些程序员甚至不希望人们查看他们的配置文件,因此将它们编码为二进制数据。这通常只会让用户感到沮丧,并不是使用二进制格式的好理由。
如果必须使用二进制格式进行配置,请使用已作为开放标准存在的格式,例如 [NetCDF][7]。
### 找到有效的配置格式
配置格式帮助开发人员存储应用程序所需的数据,并帮助用户存储他们希望应用程序如何操作的偏好项。对于应该使用什么格式的问题,可能没有错误的答案,只要你觉得所使用的语言能很好地支持就可以。在开发应用程序时,查看可用格式,用一些样例数据建模,查看和评估你的编程语言提供的库和实用程序,然后选择你觉得最合适的一种格式吧。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/6/what-config-files
作者:[Seth Kenlon][a]
选题:[lujun9972][b]
译者:[unigeorge](https://github.com/unigeorge)
校对:[校对者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/browser_screen_windows_files.png?itok=kLTeQUbY (Computer screen with files or windows open)
[2]: https://opensource.com/article/20/9/awk-ebook
[3]: https://opensource.com/downloads/grep-cheat-sheet
[4]: https://www.redhat.com/sysadmin/yaml-beginners
[5]: https://opensource.com/article/19/2/getting-started-cat-command
[6]: https://opensource.com/article/21/2/open-source-text-editors
[7]: https://www.unidata.ucar.edu/software/netcdf/

View File

@ -0,0 +1,79 @@
[#]: subject: "An open source alternative to Microsoft Exchange"
[#]: via: "https://opensource.com/article/21/9/open-source-groupware-grommunio"
[#]: author: "Markus Feilner https://opensource.com/users/mfeilner"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Microsoft Exchange 的一个开源替代方案
======
开源用户现在有了一个强大的、功能齐全的群件选择。
![Working on a team, busy worklife][1]
多年来Microsoft Exchange 作为群件环境的平台几乎是不可避免的。然而,在 2020 年末,一个奥地利的开源软件开发商推出了[grommunio][2],一个群件服务器和客户端,其外观和感觉对 Exchange 和 Outlook 用户所熟悉。
grmmunio 项目可以很好地替代 Exchange。开发者以与微软相同的方式将组件连接到平台上它们支持 RPC (远程过程调用)与 HTTP 协议。据开发者介绍grommunio 还包括许多常见的群件接口,如 IMAP、POP3、SMTP、EASExchange ActiveSync、EWSExchange Web Services、CalDAV 和 CardDAV。有了这样广泛的支持grommunio 可以顺利地整合到现有的基础设施中。
用户会注意到 Outlook、Android 和 iOS 客户端之间几乎没有区别。当然,作为开源软件,它也支持其他客户端。由于集成了本地 Exchange 协议Outlook 和智能手机与 grommunio 的通信就像与 Microsoft Exchange 服务器一样。日常的企业用户可以继续使用他们现有的客户端,而 grommunio 服务器则在后台安静地运行。
### 不仅仅是邮件
除了邮件功能外grommunio 界面还提供了日历系统。可以直接在日历显示中或在一个新标签中点击创建约会。这很直观,正是你对现代工具的期望。用户可以创建、管理和分享日历以及地址簿。私人联系人或普通联系人都是可能的,而且你可以与同事分享一切。
任务管理在左边的下拉菜单中显示任务列表,它们可以有一个所有者和多个合作者。你可以为每个任务指定截止日期、类别、附件和其他属性。笔记可以以同样的方式被管理并与其他团队成员共享。
### 聊天、视频会议和文件同步
除了现代群件的所有标准功能外grommunio 还提供聊天、视频会议和文件同步功能。它为企业实现了大规模的全面整合,具有极高的性能。对于开源的推动者来说,这是一个简单的选择,对于系统管理员来说,这是一个强大的选择。因为 grommunio 的目标是整合而不是重新发明,所以所有的组件都是标准的开源工具。
![Screenshot of grommunio meeting space][3]
用于高级视频会议的 Jitsi 集成Markus Feilner, [CC BY-SA 4.0][4]
在 grommunio 会议功能的背后是 [Jitsi][5],它以熟悉的用户界面顺利地集成到 grommunio 的用户界面中。完全集成和集中管理的聊天功能是基于 [Mattermost][6]。
![Screenshot of grommunio's town square for chat][7]
用于聊天的 MattermostMarkus Feilner[CC BY-SA 4.0][4]
用于文件同步和交换的 ownCloudMarkus Feilner[CC BY-SA 4.0][4]
![Screenshot of grommunio file sharing space][9]
用于文件同步和交换的 ownCloudMarkus Feilner[CC BY-SA 4.0][4]
grommunio 项目有一个强大的管理界面,包括角色、域和组织管理、预测性监测和自助服务门户。基于 shell 的向导指导管理员完成安装和从 Microsoft Exchange 迁移数据。开发团队正在不断努力,以实现更好的整合和更集中的管理,并随之为管理员提供更好的工作流程。
![Screenshot of grommunio dashboards][10]
grommunio 的管理界面Markus Feilner, [CC BY-SA 4.0][4]
### 探索 grommunio
grommunio 项目的目标很高,但它的开发者已经付出了努力,这一点很明显。一家专门从事税务咨询的德国托管服务机构最近宣布,他们的客户可以使用 grommunio这是一个德国数据保护法特别严厉的行业。grommunio 项目做得很好:将现有的、成功的概念干净地结合在一起,实现了开放、安全和符合隐私的通信。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/9/open-source-groupware-grommunio
作者:[Markus Feilner][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/mfeilner
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
[2]: https://grommunio.com/en/
[3]: https://opensource.com/sites/default/files/uploads/jitsi_0.png (grommunio meeting space)
[4]: https://creativecommons.org/licenses/by-sa/4.0/
[5]: https://opensource.com/article/20/5/open-source-video-conferencing
[6]: https://opensource.com/education/16/3/mattermost-open-source-chat
[7]: https://opensource.com/sites/default/files/uploads/mattermost.png (grommunio's town square for chat)
[8]: https://owncloud.com/
[9]: https://opensource.com/sites/default/files/uploads/owncloud_0.png (Owncloud for file synchronization and exchange)
[10]: https://opensource.com/sites/default/files/uploads/grommunio_interface_0.png (Screenshot of grommunio dashboards)