mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-03-21 02:10:11 +08:00
commit
0505716c22
@ -0,0 +1,141 @@
|
||||
[#]: subject: "3 steps for managing a beginner-friendly open source community"
|
||||
[#]: via: "https://opensource.com/article/21/8/beginner-open-source-community"
|
||||
[#]: author: "Isabel Costa https://opensource.com/users/isabelcmdcosta"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "XiaotingHuang22"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15534-1.html"
|
||||
|
||||
管理对新手友好的开源社区的三个步骤
|
||||
======
|
||||
|
||||
> 作为一个开源项目的成员,你可以做很多事情来帮助新手找到为项目作出贡献的方式。
|
||||
|
||||
![][0]
|
||||
|
||||
当有人刚开始为开源做贡献时,最好从对新手友好的故障和议题开始。但在他们修复故障之前,他们必须要能够找到这类问题。作为一个开源项目的成员,你可以做很多事情来帮助新手找到为项目贡献的方式。
|
||||
|
||||
鉴于此,[AnitaB.org 开源社区][2] 优先考虑让我们的社区做到对新手友好。我们提倡包容性,确保不同经验和水平的贡献者都可以参与进来,并且他们的贡献不止限于跟编程有关。
|
||||
|
||||
我最近在 [Upstream 2021][4],即 Tidelift 活动中介绍了我们在 [AnitaB.org][3] 上所做的一些社区工作,该活动启动了“维护者周”,这是一个为期一周的开源维护者庆祝活动。在活动中我讨论了我们策略的三个主要部分:
|
||||
|
||||
* 我们如何沟通
|
||||
* 项目和议题
|
||||
* 开源项目
|
||||
|
||||
### 我们如何沟通
|
||||
|
||||
透明度是开源的重要组成部分,我们将透明度原则应用于我们的沟通方式。实际上,这意味着我们所有的社区会议都是公开进行的,并且影响我们设置 Zulip 聊天的方式以及我们提供文档的方式。
|
||||
|
||||
#### 开放会议
|
||||
|
||||
任何人都可以加入我们的会议,并讨论与我们社区相关的话题。他们可以参与讨论或者旁听。会议相关信息在我们的社区日历中都可以找到。在这些通话中我们通常只使用语音聊天,我们发现这可以让人们在参与时感觉更自在。
|
||||
|
||||
我们举办以项目为中心的会议和一些分类的会议。会议上,来自不同领域的人们可以讨论同一个项目并帮助改进我们的流程。偶尔,我们会有“<ruby>自由提问<rt>Ask Me Anything</rt></ruby>(AMA)”会议,任何人都可以来问任何与开源相关的问题。
|
||||
|
||||
所有会议我们都会在共享文档中进行记录,并在 [我们的 Zulip][5] 中共享摘要和文档链接。
|
||||
|
||||
#### 我们的 Zulip 聊天
|
||||
|
||||
开源 Zulip 聊天平台是我们的主要社区交流渠道,虽然我们也在 Github 的评论区讨论议题和<ruby>拉取请求<rt>Pull Request</rt></ruby>(PR)。一般来说,我们禁用了私人消息以确保我们尽可能透明。对于这条规则,我们只有少数例外,那些私人聊天是管理员在处理我们运行程序的后勤工作所用的。我们发现这种方法更受欢迎,它还使我们能够更清楚公共聊天中的违规行为。
|
||||
|
||||
我们在 Zulip 聊天室分享所有会议摘要,包括讨论的要点、行动项目和文档。这些听起来好像是些显而易见的要求,但我一直惊讶于很多开源项目并不提供会议笔记,所以 Zulip 可以让那些没有参加会议的人也随时了解情况。
|
||||
|
||||
在 Zulip上,我们讨论项目路线图,回答社区的问题和疑问,并积极**促进人们通过不同的方式方法和在不同的场景下做出自己的贡献**。有时我们为贡献者的成就而庆祝 —— 无论是为了突出他们测试或者审查的第一个拉取请求,还是强调我们志愿者所做的出色工作。
|
||||
|
||||
#### 文档
|
||||
|
||||
我们尽量保持**关于我们流程的开放文档**,例如常见问题解答,以便这些社区成员可以按照自己的节奏和时间了解社区。这是为了让他们在联系我们之前了解我们的工作方式以及我们从事的工作类型。
|
||||
|
||||
### 项目和议题
|
||||
|
||||
关于我们的项目和议题管理,我们鼓励通过多种方式做出贡献,我们为新手专门创建特定的议题,并尝试让项目的设置变得简单。
|
||||
|
||||
#### 多种贡献的方式
|
||||
|
||||
我们努力创建**需要不同贡献的问题**,例如文档、测试、设计和外展。这是为了让任何人 —— 无关他们的经验水平和兴趣领域 —— 都能做出贡献。这样能够帮助社区参与进来,而且我们发现它使成员能够从一些省力但有价值的任务开始一步步做出贡献。
|
||||
|
||||
我们提倡的贡献类型有:
|
||||
|
||||
* 不同复杂性的编程任务。
|
||||
* 质量保证任务 —— 贡献者可以测试我们的应用程序或拉取请求并报告错误。
|
||||
* 社区成员可以参与讨论的设计会议。此外,创建模型和重新设计我们应用程序某些部分的机会,并探索改进用户体验。
|
||||
* 外展任务,我们主要在 Zulip 上推广,我们建议在我们的 Medium 出版物上发表博客,介绍他们的开源经验和他们的贡献。
|
||||
* 文档任务,可以包括一般社区文档或我们在 Docusaurus 上的项目文档。
|
||||
|
||||
#### 仅限新手的问题
|
||||
|
||||
我们将一些**议题标记为“仅限新手”**。这些问题适用于尚未为议题存储库做出贡献的人。为议题做标签还使我们能够让人们在贡献者大量涌入时开始他们的开源之旅,例如,在 [谷歌编程之夏(GSoC)][6] 申请期间。
|
||||
|
||||
有时,这些可能是“唾手可得的果实”,可以让他们熟悉作出贡献和提交拉取请求的过程。
|
||||
|
||||
#### 简单的项目设置
|
||||
|
||||
我们也很在意为我们的项目提供**新手友好的安装设置**。我们注意到最活跃的项目通常是最容易设置的。我们知道,为你不熟悉的项目做出贡献可能需要付出很多努力并且关乎贡献体验的成败。
|
||||
|
||||
我们尝试提供有关如何在多个操作系统上运行我们项目的说明。在过去,我们有一些项目有单独的说明,可以在 Unix 环境下运行,我们注意到贡献者在 Windows 上运行这些项目有些困难。自那以后我们不断进行改进,以避免贡献者在 Zulip 上寻求帮助时出现混乱。
|
||||
|
||||
我们根据贡献者的经验,一直在改进我们最活跃的项目之一 [mentorship-backend][7] 的自述文件。新手在这个项目中遇到的困难之一是设置与配置电子邮件帐户相关的部分环境变量,以使后台功能能够发送电子邮件。但是,由于此功能对于本地开发并不重要,因此默认情况下,我们将电子邮件设置设为可选,以便将电子邮件打印到终端,而不是发送给用户。这种方法仍然使贡献者可以看到这些电子邮件。与此更改类似,我们将 [SQLite 数据库][8] 作为本地开发的默认设置,以避免对 Postgres 数据库进行额外设置,虽然我们在部署版本中会使用到 Postgres。
|
||||
|
||||
我们注意到,一些贡献者在为我们的 [bridge-in-tech-backend][9] 项目做出贡献时觉得很困难,该项目的设置很复杂,并且包含的步骤比 [mentorship-backend][7] 多得多。自从我们在一个开源项目中注意到这一点以来,我们一直在探索如何改进其结构。
|
||||
|
||||
对于我们的大多数项目,我们还提供应用程序的实时体验版本或打包版本,以便贡献者无需设置即可测试项目。这有助于我们为那些对开发设置不感兴趣或不熟悉的贡献者提供一种方式,来尝试我们应用程序的最新版本,并通过报告发现的任何错误来做出贡献。我们在 [质量保证指南][10] 中放了这些应用程序的链接。
|
||||
|
||||
### 开源计划
|
||||
|
||||
我们在社区中组织了两个主要计划:开源黑客(OSH)(一个为期一个月的项目)和 Open Source Ambassadors(一个为期六个月的项目)。
|
||||
|
||||
#### 开源黑客(OSH)
|
||||
|
||||
在此计划中,我们在多个类别的贡献中创建议题 —— 文档、编码、外展、测试和设计(类似于 [谷歌的 Code-in][11] 竞赛)。 参与者可以为每个类别至少贡献一次并获得电子证书。一个议题可能包含多个类别,并且无需合并拉取请求也能使贡献有效。
|
||||
|
||||
我们为这个计划选取几个项目,请导师们集思广益为参与者创造议题。项目开始后参与者可以认领议题并开始作出贡献。导师们会支持帮助并审查他们的贡献。
|
||||
|
||||
这种方法鼓励贡献的多样性,并欢迎任何人,无论他们的编码能力如何,都可以在友好和不怕出错的环境中做出贡献。
|
||||
|
||||
#### 开源大使
|
||||
|
||||
在此计划中,我们从社区中选择大使,理想情况下他们将涵盖我们旨在促进的每一类贡献。至今该计划已启动了两次。
|
||||
|
||||
该计划旨在让成员通过回答社区的议题、协助贡献者参与并为他们指定的类别宣传来帮助管理项目和计划。
|
||||
|
||||
第一个计划举行时我们接受了所有的申请者。我们评估了社区成员的兴趣所在,并为那些想要做出贡献但最初不敢踏出第一步的人提供了一个体系。
|
||||
|
||||
第一个计划的举办给了我们很多启发。因为我们的活动中既有经验丰富的开源贡献者和社区成员,也有初来乍到缺乏经验的新手,因此项目的执行要求管理员进行大量的管理工作。一些社区大使信心十足准备好进一步采取新措施,而其他大使则需要更多支持。到了第二个,我们决定缩减该计划,只接受那些已经熟悉社区、可以领导倡议和项目并帮助我们培训新人的贡献者。
|
||||
|
||||
第二个计划中形成了正反馈循环。那些在第一个计划中还是新手的大使们,通过为上一个项目做出贡献并且从项目经验中学习之后能够做到轻松带领项目。
|
||||
|
||||
这种方法的改变使管理员能够更加专注于支持大使团队,帮助他们传播我们的使命,并继续让我们的社区对新手友好,并指导更多人做出贡献。
|
||||
|
||||
### 总结
|
||||
|
||||
这些计划帮助我们提高了对开源贡献和回馈的不同方式的认识。通过它们,我们发现志愿者通过管理项目和举办公开会议来提供帮助,这有助于管理社区并为我们的贡献者提供指导。
|
||||
|
||||
尽管我们得到了贡献者的良好反响,并帮助人们做出了他们的第一个贡献,但我们仍有很大的改进空间。我们将继续改进我们项目的设置和贡献指南,以改善贡献者的体验。我们还将继续专注于确保我们的组织始终拥有并推动不同类别的问题,促进包容性,以便任何有意愿做出贡献的人都能出自己的一份力。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/8/beginner-open-source-community
|
||||
|
||||
作者:[Isabel Costa][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[XiaotingHuang22](https://github.com/XiaotingHuang22)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/isabelcmdcosta
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop)
|
||||
[2]: https://github.com/anitab-org
|
||||
[3]: https://anitab.org/
|
||||
[4]: https://youtu.be/l8r50jCr-Yo
|
||||
[5]: https://anitab-org.zulipchat.com/
|
||||
[6]: https://summerofcode.withgoogle.com/
|
||||
[7]: https://github.com/anitab-org/mentorship-backend#readme
|
||||
[8]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
|
||||
[9]: https://github.com/anitab-org/bridge-in-tech-backend
|
||||
[10]: https://github.com/anitab-org/documentation/blob/master/quality-assurance.md
|
||||
[11]: https://codein.withgoogle.com/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/12/222832vxfof8844fo4vsl4.jpg
|
@ -0,0 +1,96 @@
|
||||
[#]: subject: "My favorite LibreOffice productivity tips"
|
||||
[#]: via: "https://opensource.com/article/21/9/libreoffice-tips"
|
||||
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "XiaotingHuang22"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15530-1.html"
|
||||
|
||||
提高 LibreOffice 生产力的技巧
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 今天我将和大家分享一些 LibreOffice 的键盘快捷键和排版技巧,希望能够帮你省下宝贵的时间。
|
||||
|
||||
LibreOffice 是我首选的生产力应用程序。它是向教育工作者和学生推荐 Linux 发行版的最有力理由之一,无论是 PK-12 还是高等教育。新的学年快到了,我想也是时候推荐一些 LibreOffice 快捷方式和技巧,它们可以为你节省宝贵的时间。
|
||||
|
||||
### 使用键盘快捷键让你工作更快捷
|
||||
|
||||
我平时经常使用键盘快捷键,以下是适用于所有 LibreOffice 应用程序的最常见的快捷键
|
||||
|
||||
* `Ctrl+N` — 创建新文档
|
||||
* `Ctrl+O` — 打开一个文档
|
||||
* `Ctrl+S` — 保存文档
|
||||
* `Ctrl+Shift+S` — 另存为
|
||||
* `Ctrl+P` — 打印文档
|
||||
|
||||
这些是仅适用于 LibreOffice Writer 的快捷键:
|
||||
|
||||
* `Home` — 移动到当前行的初始位置
|
||||
* `End` — 移动至当前行的结尾位置
|
||||
* `Ctrl+Home` — 将光标移动到文档的初始位置
|
||||
* `Ctrl+End` — 将光标移动到文档的结尾位置
|
||||
* `Ctrl+A` — 全选
|
||||
* `Ctrl+D` — 双下划线
|
||||
* `Ctrl+E` — 居中
|
||||
* `Ctrl+H` — 查找并替换
|
||||
* `Ctrl+L` — 左对齐
|
||||
* `Ctrl+R` — 右对齐
|
||||
|
||||
功能键也大有用处:
|
||||
* `F2` — 打开公式栏
|
||||
* `F3` — 自动补完
|
||||
* `F5` — 打开导航器
|
||||
* `F7` — 打开拼写和语法
|
||||
* `F11` — 打开格式和排版
|
||||
* `Shift+F11` — 创建新样式
|
||||
|
||||
### 文档格式
|
||||
|
||||
文档格式有很多种,LibreOffice 支持其中很多文档格式。默认情况下,LibreOffice 将文档保存为 <ruby>开放文档格式<rt>Open Document Format</rt></ruby>(ODF),这是一种开源标准,将样式表和数据存储在 ZIP 容器中,文本文档标记为 ODT,电子表格标记为 ODS,演示文稿标记为 ODP。它是一种灵活的格式,由 LibreOffice 社区和文档基金会维护。
|
||||
|
||||
ODF 是默认启用的,因此你无需执行任何操作即可让 LibreOffice 使用这种格式。
|
||||
|
||||
另一种文档开放规范是微软的 [Office Open XML(OOXML)格式][2]。它是一个 ISO 标准,并得到所有主要办公解决方案的良好支持。
|
||||
|
||||
如果你与使用微软 Office 的人一起工作(它本身不是开源的,但它确实使用开放的 OOXML 格式),那么他们肯定习惯于 DOCX、XLSX 和 PPTX 格式,并且可能无法打开 ODT、ODS 或 ODP 文件。你可以通过在 LibreOffice 中将 OOXML 设置为默认格式来避免很多混乱。
|
||||
|
||||
将 OOXML 设置为你的首选格式:
|
||||
|
||||
1. 单击 “<ruby>工具<rt>Tools</rt></ruby>” 菜单并选择菜单底部的 “<ruby>选项<rt>Options</rt></ruby>”。
|
||||
2. 在 “<ruby>选项<rt>Options</rt></ruby>” 窗口中,单击左侧面板中的 “<ruby>加载/保存<rt>Load/Save</rt></ruby>” 类别,然后选择 “<ruby>常规<rt>General</rt></ruby>”。
|
||||
![LibreOffice设置面板][3]
|
||||
3. 导航到 “<ruby>默认文件格式和 ODF 设置<rt>Default File Format and ODF Settings</rt></ruby>” 部分。
|
||||
4. 在 “<ruby>文档类型<rt>Document type</rt></ruby>” 选择 “<ruby>文本文档<rt>Text document</rt></ruby>”,并在 “<ruby>始终另存为<rt>Always save as</rt></ruby>” 下拉列表选择 “Open XML (Transitional) (*.docx) ”。
|
||||
5. 点击 “<ruby>应用<rt>Apply</rt></ruby>” 然后点击 “<ruby>确定<rt>OK</rt></ruby>”。
|
||||
6. 取消选择 “<ruby>未以 ODF 或默认格式保存时发出警告<rt>Warn when not saving in ODF or default format </rt></ruby>” 以避免在保存时出现确认对话框。
|
||||
![LibreOffice 保存格式][5]
|
||||
|
||||
按照相同的逻辑重复,重复相同的过程用于 XLSX 和 PPTX 文档。
|
||||
|
||||
### 让办公更自由
|
||||
|
||||
LibreOffice 项目由蓬勃发展的用户和开发人员社区与文档基金会共同管理。这包括工程指导委员会、董事会、独立开发人员、设计师和翻译人员等。这些团队始终欢迎各位的贡献,因此如果你渴望参与一个超赞的开源项目,请不要犹豫 [参与进来][6]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/9/libreoffice-tips
|
||||
|
||||
作者:[Don Watkins][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[XiaotingHuang22](https://github.com/XiaotingHuang22)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/don-watkins
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
|
||||
[2]: https://www.iso.org/standard/71691.html
|
||||
[3]: https://opensource.com/sites/default/files/uploads/libreoffice-panel.jpg (LibreOffice settings panel)
|
||||
[4]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[5]: https://opensource.com/sites/default/files/uploads/libreoffice-save-format.jpg (LibreOffice save formats)
|
||||
[6]: https://www.libreoffice.org/community/get-involved/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/11/161923gks1dsldq7dd1z67.jpg
|
@ -3,22 +3,24 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Chao-zhi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15537-1.html"
|
||||
|
||||
如何在 Arch Linux 中安装 GNOME 桌面 [完整指南]
|
||||
如何在 Arch Linux 中安装 GNOME 桌面
|
||||
======
|
||||
|
||||
**本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。**
|
||||
![][0]
|
||||
|
||||
本指南有两部分。第一部分是关于安装基本的 Arch 系统。第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。
|
||||
> 本指南解释了在 Arch Linux 中安装 GNOME 桌面所需的步骤。
|
||||
|
||||
本指南有两部分:第一部分是关于安装基本的 Arch 系统;第二部分是在 Arch Linux 基础上安装完整的 GNOME 桌面环境。
|
||||
|
||||
### 什么是 GNOME 桌面?
|
||||
|
||||
GNOME 是一个流行的桌面环境,是许多基于桌面的顶级 Linux 发行版的默认桌面选择,如 Ubuntu 和 Fedora。几乎所有的口味都提供了一个 GNOME 桌面选项。
|
||||
GNOME 是一个流行的桌面环境,是如 Ubuntu 和 Fedora 等许多基于桌面的顶级 Linux 发行版的默认桌面。几乎所有的定制版都提供了一个 GNOME 桌面版本。
|
||||
|
||||
GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通、高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的。它在工作时不会妨碍到你。因此,尽管有许多关于 GNOME3(目前的迭代)速度慢、资源重等的争议,它仍然是许多人的流行和默认选项。
|
||||
GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通和高级用户所青睐。如果你想要一个在你进行工作时保持隐形的桌面,GNOME 就是这样的一个。它不会在你工作时妨碍你。因此,尽管有许多关于 GNOME 3(目前的版本)速度慢、资源重等争议,它仍然是许多人的流行和默认选择。
|
||||
|
||||
说了这么多,让我们来看看如何在裸机 Arch 中安装 GNOME 桌面。
|
||||
|
||||
@ -28,23 +30,23 @@ GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通
|
||||
|
||||
如果你已经安装了 Arch Linux,你可以跳过这一步,直接进入下面安装 GNOME 桌面部分。
|
||||
|
||||
要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问[该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。
|
||||
要快速安装 Arch Linux 基础版,请遵循以下步骤。你也可以访问 [该指南][1],了解如何将 Arch Linux 安装为双启动或在虚拟机中的完整教程。
|
||||
|
||||
本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 archinstall 脚本。完成后,回来通过[步骤 2](#第二部分在-arch-linux-中安装-gnome) 继续 GNOME 安装。
|
||||
本文下面介绍的步骤是安装 Arch 的传统方式。新手请按照下面的指南链接,以更现代的方式使用 `archinstall` 脚本。完成后,回来通过第二部分的步骤继续 GNOME 安装。
|
||||
|
||||
[现代方法。使用 archinstall 脚本安装(推荐)][2]。
|
||||
> **[现代方式:使用 archinstall 脚本安装(推荐)][2]**
|
||||
|
||||
##### 传统的方法。下载 Arch Linux
|
||||
##### 传统方式:下载 Arch Linux
|
||||
|
||||
从下面的链接下载 Arch Linux .iso。这里也提供磁力和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。
|
||||
从下面的链接下载 Arch Linux 的 .iso 文件。它也提供了磁力链接和种子链接。下载后,将 ISO 写入 USB 驱动器。然后从该驱动器启动。
|
||||
|
||||
[下载 Arch Linux][3]
|
||||
> **[下载 Arch Linux][3]**
|
||||
|
||||
如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像--那么你就不需要把它写入 U 盘。
|
||||
如果你打算通过 GNOME Boxes、virt-manager 把它安装成一个虚拟机镜像,那么你就不需要把它写入 U 盘。
|
||||
|
||||
##### 启动和配置分区
|
||||
|
||||
从 Arch Linux iso 启动后,你必须运行一系列的命令来安装基本系统。
|
||||
从 Arch Linux ISO 启动后,你必须运行一系列的命令来安装基本系统。
|
||||
|
||||
首先,运行下面的命令,找出设备标识符。
|
||||
|
||||
@ -52,7 +54,7 @@ GNOME 桌面是稳定和用户友好的桌面之一,因此它被许多普通
|
||||
fdisk -l
|
||||
```
|
||||
|
||||
![先 fdisk -l][4]
|
||||
![之前的 fdisk -l][4]
|
||||
|
||||
然后用设备标识符,运行下面的命令,开始对你的磁盘进行分区。请确保根据你的系统改变 `/dev/sda`。
|
||||
|
||||
@ -62,7 +64,7 @@ cfdisk /dev/sda
|
||||
|
||||
在下一个提示中选择 `label type = dos`。
|
||||
|
||||
选择自由空间,并从底部选择新的选项。在这个例子中,我将创建三个分区,如下图所示。
|
||||
选择自由空间,并从底部选择 “<ruby>新建<rt>New</rt></ruby>” 选项。在这个例子中,我将创建三个分区,如下图所示:
|
||||
|
||||
```
|
||||
/dev/sda1 - 1G - for /boot
|
||||
@ -76,13 +78,13 @@ cfdisk /dev/sda
|
||||
|
||||
对大小为 5GB 的主根分区重复同样的步骤。
|
||||
|
||||
![交换分区类型改变][6]
|
||||
![改变为交换分区类型][6]
|
||||
|
||||
用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择类型,并将其标记为 "Linux Swap/Solaris "选项的交换分区。
|
||||
用同样的步骤创建一个大小为 1G 的交换分区(你可以根据你的需要改变它)。创建交换分区后,确保在底部选择 “<ruby>类型<rt>Type</rt></ruby>”,并用 “Linux Swap/Solaris” 选项将其标记为交换分区。
|
||||
|
||||
![cfdisk 中的最终分区列表][7]
|
||||
|
||||
一旦完成,使用底部的写入选项将变化写入磁盘。确保你在写入前做了备份,因为这是你系统中的一个永久性变化。
|
||||
一旦完成,使用底部的 “<ruby>写入<rt>Write</rt></ruby>” 选项将变化写入磁盘。**确保你在写入前做了备份,因为这是你系统中的一个永久性变化。**
|
||||
|
||||
在你继续之前,运行下面的命令来检查。你可以看到在这个例子中,有三个分区被列出。
|
||||
|
||||
@ -90,9 +92,9 @@ cfdisk /dev/sda
|
||||
fdisk -l
|
||||
```
|
||||
|
||||
![fdisk 中的最终分区列表][8] 。
|
||||
![fdisk 中的最终分区列表][8]
|
||||
|
||||
依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`。
|
||||
依次运行下面的命令,在上面新创建的分区中格式化并创建一个 ext4 文件系统。请确保你根据你的需要改变 `/dev/sda1` 和 `/dev/sda2`:
|
||||
|
||||
```
|
||||
mkfs.ext4 /dev/sda1
|
||||
@ -101,7 +103,7 @@ mkswap /dev/sda3
|
||||
swapon /dev/sda3
|
||||
```
|
||||
|
||||
完成后,装载系统并创建必要的目录。
|
||||
完成后,装载系统并创建必要的目录:
|
||||
|
||||
```
|
||||
mount /dev/sda2 /mnt
|
||||
@ -115,7 +117,7 @@ mount /dev/sda1 /mnt/boot
|
||||
|
||||
##### 安装基础系统
|
||||
|
||||
我希望你已经连接到互联网了。如果没有,请尝试使用 USB 加密狗或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照[该指南][10] 使用 Arch Linux 安装程序配置一个无线或 wifi 网络。
|
||||
我希望你已经连接到互联网了。如果没有,请尝试使用 USB 网卡或 Arch 安装程序自动配置和检测的有线网络连接。如果你没有可用的有线连接,请按照 [该指南][10] 使用 Arch Linux 安装程序配置一个无线或 Wi-Fi 网络。
|
||||
|
||||
依次运行下面的命令,将基本系统安装到已安装的分区中。下载的大小约为 400MB。
|
||||
|
||||
@ -134,44 +136,44 @@ genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
##### 配置基础系统
|
||||
|
||||
依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网。
|
||||
依次按照下面的命令来配置基本系统。这涉及到设置你的地域、语言、添加一个登录用户,以及设置互联网:
|
||||
|
||||
```
|
||||
arch-chroot /mnt
|
||||
nano /etc/locale.gen
|
||||
```
|
||||
|
||||
去掉开头的 #,取消对你所选择的 locale 的注释。在本指南中,我选择了 en_US.UTF-8 UTF-8. 按 CTRL+O、Enter 和 CTRL+X 退出 nano。
|
||||
通过去掉开头的 `#` 来取消对你所选择的 <ruby>语言环境<rt>locale</rt></ruby> 的注释。在本指南中,我选择了 `en_US.UTF-8 UTF-8`,按 `CTRL+O`、回车和 `CTRL+X` 退出 nano。
|
||||
|
||||
![本地化][12]
|
||||
|
||||
使用以下方法生成 locale。
|
||||
使用以下方法生成语言环境:
|
||||
|
||||
```
|
||||
locale-gen
|
||||
```
|
||||
|
||||
如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言。
|
||||
如果你不想手动去 `/etc/locale.gen` 设置语言,也可以使用以下命令设置语言:
|
||||
|
||||
```
|
||||
echo LANG=en_US.UTF-8 > /etc/locale.conf
|
||||
export LANG=en_US.UTF-8
|
||||
```
|
||||
|
||||
设置当地的时区。
|
||||
设置当地的时区:
|
||||
|
||||
```
|
||||
ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
|
||||
```
|
||||
|
||||
同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区。
|
||||
同样,你可以根据你的需要来选择它们。你可以通过以下命令列出当地的时区:
|
||||
|
||||
```
|
||||
ls /usr/share/zoneinfo
|
||||
ls /usr/share/zoneinfo/America
|
||||
```
|
||||
|
||||
设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的愿望,将 `"arindam-pc"` 改为任何主机名。
|
||||
设置硬件时钟,创建一个主机名,并使用以下命令依次启用互联网的 DHCP。你可以根据你的想法,将 `arindam-pc` 改为任何主机名:
|
||||
|
||||
```
|
||||
hwclock --systohc --utc
|
||||
@ -179,9 +181,9 @@ echo arindam-pc > /etc/hostname
|
||||
systemctl enable dhcpcd
|
||||
```
|
||||
|
||||
下一步是设置根用户的密码,创建一个管理员用户,并在 sudoers 文件中添加该用户。
|
||||
下一步是设置根用户的密码,创建一个管理员用户,并在 `sudoers` 文件中添加该用户。
|
||||
|
||||
依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称。
|
||||
依次按照下面的命令进行操作。请确保根据你的需要将用户名从 `debugpoint` 改为其他名称:
|
||||
|
||||
```
|
||||
passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint
|
||||
@ -189,13 +191,13 @@ passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint
|
||||
|
||||
![创建用户][13]
|
||||
|
||||
打开 sudoers 文件,添加以下几行。
|
||||
打开 `sudoers` 文件,添加以下几行:
|
||||
|
||||
```
|
||||
nano /etc/sudoers
|
||||
```
|
||||
|
||||
添加以下几行。由于你已经创建了根用户,该条目应该在那里。
|
||||
添加以下几行。由于你已经创建了 `root` 用户,该条目应该已经有了:
|
||||
|
||||
```
|
||||
root ALL=(ALL) ALL
|
||||
@ -204,7 +206,7 @@ debugpoint ALL=(ALL) ALL
|
||||
|
||||
![更改 sudoer 文件][14]
|
||||
|
||||
安装 grub,设置初始 ramdisk 环境,依次使用下面的命令安装引导。
|
||||
依次使用如下命令安装 Grub,设置初始化 Ramdisk 环境,卸载系统:
|
||||
|
||||
```
|
||||
grub-install /dev/sda
|
||||
@ -213,7 +215,7 @@ mkinitcpio -p linux
|
||||
exit
|
||||
```
|
||||
|
||||
![配置 grub][15] 。
|
||||
![配置 Grub][15]
|
||||
|
||||
然后重新启动你的系统。如果你是在一个物理系统中安装的,在这一步要拔掉 USB 介质。
|
||||
|
||||
@ -229,27 +231,25 @@ reboot
|
||||
|
||||
#### 第二部分:在 Arch Linux 中安装 GNOME
|
||||
|
||||
重启后,从 grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。
|
||||
重启后,从 Grub 中选择 Arch Linux。在 Arch Linux 的提示符下,开始依次运行以下命令。这些命令安装 Xorg 服务器、显示管理器、GNOME 桌面组件、控制器包和其他应用程序。
|
||||
|
||||
所有的命令都使用默认值,即在要求时按回车。
|
||||
|
||||
- **安装 Xorg 服务器。安装大小约为 80MB。**
|
||||
安装 Xorg 服务器。安装大小约为 80MB:
|
||||
|
||||
```
|
||||
sudo pacman -S --needed xorg
|
||||
```
|
||||
|
||||
- **安装显示管理器,GNOME 桌面。安装大小约为 300MB。**
|
||||
安装显示管理器、GNOME 桌面。安装大小约为 300MB:
|
||||
|
||||
```
|
||||
sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm
|
||||
```
|
||||
|
||||
上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 jack、noto-sans 和 xdg-portal-desktop-gnome。
|
||||
上面的安装会要求提供几个软件包的选项。选择你想要的任何一个。如果你不确定,在询问时选择 “jack”、“noto-sans” 和 “xdg-portal-desktop-gnome”。
|
||||
|
||||
- **安装应用程序**
|
||||
|
||||
这只是一个参考。你也可以安装你所需要的。
|
||||
安装应用程序。这只是一个参考。你也可以安装你所需要的:
|
||||
|
||||
```
|
||||
sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper
|
||||
@ -262,25 +262,28 @@ systemctl enable gdm
|
||||
systemctl enable NetworkManager
|
||||
```
|
||||
|
||||
使用 reboot 命令重新启动系统。
|
||||
使用 `reboot` 命令重新启动系统:
|
||||
|
||||
```
|
||||
reboot
|
||||
```
|
||||
|
||||
![Arch Linux 运行 GNOME 43 桌面][17] 。
|
||||
![Arch Linux 运行 GNOME 43 桌面][17]
|
||||
|
||||
如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 中漂亮而干净的 GNOME 43 桌面。
|
||||
如果一切顺利,你应该在 GNOME 桌面上看到一个漂亮的登录提示。使用你刚刚创建的凭证登录。迎接你的应该是 Arch Linux 漂亮而干净的 GNOME 43 桌面。
|
||||
|
||||
我希望这个指南能帮助你在裸机 Arch 安装 GNOME 桌面。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
通过。https://www.debugpoint.com/gnome-arch-linux-install/
|
||||
via: https://www.debugpoint.com/gnome-arch-linux-install/
|
||||
|
||||
作者:[Arindam][a] 选题:[lkxed][b] 翻译者:[Chao-zhi](https://github.com/Chao-zhi)校对:[校对者ID](https://github.com/校对者ID)
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Chao-zhi](https://github.com/Chao-zhi)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由[LCTT](https://github.com/LCTT/TranslateProject)原创编译,[Linux中国](https://linux.cn/)荣誉推出
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
@ -301,3 +304,4 @@ reboot
|
||||
[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg
|
||||
[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg
|
||||
[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/13/220203a5yb5xy24yer4atv.jpg
|
@ -3,26 +3,26 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Chao-zhi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15526-1.html"
|
||||
|
||||
systemd 日志维护指南 [附实例]
|
||||
systemd 日志维护指南(附实例)
|
||||
======
|
||||
|
||||
**Systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换(rotate)、归档和清除日志等操作。**
|
||||
![][0]
|
||||
|
||||
**我们还解释了手动系统日志清理方法和使用配置文件的变化。**
|
||||
> systemd 内置了很多管理系统日志的功能。在本指南中,我们将介绍如何管理系统日志,并对其采取轮换、归档和清除日志等操作。我们还解释了手动系统日志清理方法和使用配置文件的变化。
|
||||
|
||||
如果你的 Linux 发行版支持 [systemd][1],那么它每秒钟都会从系统的所有进程和应用程序中收集日志,并从启动时开始。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。
|
||||
如果你的 Linux 发行版支持 [systemd][1],那么从启动时开始,它每秒钟都会从系统的所有进程和应用程序中收集日志。所有这些日志事件都由 systemd 的 `journald` 守护程序管理。journald 收集所有的日志(信息、警告、错误等),并将其作为二进制数据存储在磁盘文件中。
|
||||
|
||||
由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。
|
||||
由于日志保留在磁盘中,而且每秒钟都在收集,所以它占用了巨大的磁盘空间;特别是对于旧的系统、服务器来说。例如,在我的一个运行了一年左右的测试系统中,日志文件的大小是 GB 级的。
|
||||
|
||||
如果你管理多个系统、服务器,建议一定要正确管理 journald 日志,以便高效运行。让我们来看看如何管理日志文件。
|
||||
|
||||
### systemd 日志维护
|
||||
|
||||
使用 systemd 的 journalctl 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程--[《使用 journalctl 查看和分析 systemd 日志[With Examples]][2] 》。
|
||||
使用 systemd 的 `journalctl` 工具,你可以查询这些日志,对其进行各种操作。例如,查看不同启动时的日志文件,检查特定进程或应用程序的最后警告和错误。如果你对这些不了解,我建议你在学习本指南之前先快速浏览一下此教程:[使用 journalctl 查看和分析 systemd 日志(附实例)][2] 》。
|
||||
|
||||
#### 物理日记的日志文件在哪里?
|
||||
|
||||
@ -30,106 +30,99 @@ systemd 的 journald 守护进程在每次启动时都会收集日志。这意
|
||||
|
||||
日志以二进制形式存储在路径 `/var/log/journal`,文件夹为机器 ID。
|
||||
|
||||
**比如说。**
|
||||
比如说:
|
||||
|
||||
![日记文件的截图-1][3]
|
||||
![日志文件位置的截图-1][3]
|
||||
|
||||
![日记文件的截图-2][4]
|
||||
![日志文件位置的截图-2][4]
|
||||
|
||||
另外,请记住,根据系统配置,运行时日志文件被存储在 `/run/log/journal/`。而这些在每次启动时都会被删除。
|
||||
|
||||
#### 我可以手动删除日志文件吗?
|
||||
|
||||
你可以,但不要这样做。相反,请按照下面的说明,使用 journalctl 工具清除日志文件以释放磁盘空间。
|
||||
你可以,但不要这样做。相反,请按照下面的说明,使用 `journalctl` 工具清除日志文件以释放磁盘空间。
|
||||
|
||||
#### systemd 的日志文件占用了多少磁盘空间?
|
||||
|
||||
打开一个终端,运行以下命令。
|
||||
|
||||
|
||||
```
|
||||
journalctl --disk-usage
|
||||
```
|
||||
|
||||
这应该为你提供系统中的日志文件实际使用的数量。
|
||||
|
||||
![journalctl 磁盘使用命令][5]。
|
||||
![journalctl 磁盘使用命令][5]
|
||||
|
||||
如果你有一个图形化的桌面环境,你可以打开文件管理器,浏览路径 `/var/log/journal`,并检查属性。
|
||||
|
||||
#### systemd journal clean process
|
||||
#### systemd 日志清理过程
|
||||
|
||||
清理日志文件的有效方法应该是通过 `journald.conf` 一个配置文件来完成。理想情况下,即使 journalctl 提供了删除日志文件的工具,你也不应该手动删除这些文件。
|
||||
清理日志文件的有效方法应该是通过 `journald.conf` 配置文件来完成。正常情况下,即使 `journalctl` 提供了删除日志文件的工具,你也不应该手动删除这些文件。
|
||||
|
||||
让我们来看看如何[手动][6]删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。
|
||||
让我们来看看如何 [手动][6] 删除它,然后我将解释 `journald.conf` 中的配置变化,这样你就不需要时不时地手动删除文件;相反,systemd 会根据你的配置自动处理它。
|
||||
|
||||
##### 手动删除
|
||||
|
||||
首先,你必须 `flush` 和 `rotate` 日志文件。轮换(rotate)是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。flush 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。
|
||||
首先,你必须 `flush` 和 `rotate` 日志文件。<ruby>轮换<rt>rotate</rt></ruby>是将当前活动的日志文件归档,并立即开始创建一个新的日志文件继续记录日志。<ruby>冲洗<rt>flush</rt></ruby> 开关要求日志守护进程将存储在 `/run/log/journal/` 中的所有日志数据冲入 `/var/log/journal/`,如果持久性存储被启用的话。
|
||||
|
||||
然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`, `vacuum-time`, 和 `vacuum-files` 选项运行 journalctl 来强制 systemd 清除日志。
|
||||
|
||||
**例 1:**
|
||||
然后,在 `flush` 和 `rotate` 之后,你需要用 `vacuum-size`、`vacuum-time` 和 `vacuum-files` 选项运行 `journalctl` 来强制 systemd 清除日志。
|
||||
|
||||
例 1:
|
||||
|
||||
```
|
||||
sudo journalctl --flush --rotate
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
sudo journalctl --vacuum-time=1s
|
||||
```
|
||||
|
||||
上面这组命令会删除所有存档的日志文件,直到最后一秒。这有效地清除了一切。因此,在运行该命令时要小心。
|
||||
|
||||
![日记清理-例子][7]
|
||||
![日志清理-例子][7]
|
||||
|
||||
清理完毕后。
|
||||
清理完毕后:
|
||||
|
||||
![清理后--日志的占用空间][8]
|
||||
|
||||
你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀。
|
||||
你也可以根据你的需要在 `--vacuum-time` 的数字后面提供以下后缀:
|
||||
|
||||
- s: seconds
|
||||
- m: minutes
|
||||
- h: hours
|
||||
- days
|
||||
- months
|
||||
- weeks
|
||||
- years
|
||||
|
||||
**例 2:**
|
||||
- `s`:秒
|
||||
- `m`:分钟
|
||||
- `h`:小时
|
||||
- `days`:天
|
||||
- `months`:月
|
||||
- `weeks`:周
|
||||
- `years`:年
|
||||
|
||||
例 2:
|
||||
|
||||
```
|
||||
sudo journalctl --flush --rotate
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
sudo journalctl --vacuum-size=400M
|
||||
```
|
||||
|
||||
这将清除所有存档的日志文件,并保留最后 400MB 的文件。记住这个开关只适用于存档的日志文件,不适用于活动的日志文件。你也可以使用后缀,如下所示。
|
||||
|
||||
- K: KB
|
||||
- M: MB
|
||||
- G: GB
|
||||
|
||||
**例 3:**
|
||||
- `K`:KB
|
||||
- `M`:MB
|
||||
- `G`:GB
|
||||
|
||||
例 3:
|
||||
|
||||
```
|
||||
sudo journalctl --flush --rotate
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
sudo journalctl --vacuum-files=2
|
||||
```
|
||||
|
||||
vacuum-files 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。
|
||||
`vacuum-files` 选项会清除所有低于指定数量的日志文件。因此,在上面的例子中,只有最后两个日志文件被保留,其他的都被删除。同样,这只对存档的文件有效。
|
||||
|
||||
如果你愿意,你可以把两种选项结合起来,但我建议不要这样做。然而,如果同时使用两个选项,请确保先用 `--rotate` 选项运行。
|
||||
|
||||
@ -139,26 +132,24 @@ vacuum-files 选项会清除所有低于指定数量的日志文件。因此,
|
||||
|
||||
systemd 为你提供了许多参数来有效管理日志文件。通过组合这些参数,你可以有效地限制日志文件所占用的磁盘空间。让我们来看看。
|
||||
|
||||
|**journald.conf参数**| **Description** | **Example** |
|
||||
| journald.conf 参数 | 描述 | 实例 |
|
||||
| :- | :- | :- |
|
||||
| SystemMaxUse |指定日志在持久性存储中可使用的最大磁盘空间| SystemMaxUse=500M |
|
||||
| SystemKeepFree |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| SystemKeepFree=100M |
|
||||
| SystemMaxFileSize |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| SystemMaxFileSize=100M |
|
||||
| RuntimeMaxUse |指定在易失性存储中可以使用的最大磁盘空间(在/run 文件系统内)。| RuntimeMaxUse=100M |
|
||||
| RuntimeKeepFree |指定将数据写入易失性存储(在/run 文件系统内)时为其他用途预留的空间数量。| RuntimeMaxUse=100M |
|
||||
| RuntimeMaxFileSize |指定单个日志文件在被轮换之前在易失性存储(在/run 文件系统内)所能占用的空间量。| RuntimeMaxFileSize=200M |
|
||||
| `SystemMaxUse` |指定日志在持久性存储中可使用的最大磁盘空间| `SystemMaxUse=500M` |
|
||||
| `SystemKeepFree` |指定在将日志条目添加到持久性存储时,日志应留出的空间量。| `SystemKeepFree=100M` |
|
||||
| `SystemMaxFileSize` |控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。| `SystemMaxFileSize=100M` |
|
||||
| `RuntimeMaxUse` |指定在易失性存储中可以使用的最大磁盘空间(在 `/run` 文件系统内)。| `RuntimeMaxUse=100M` |
|
||||
| `RuntimeKeepFree` |指定将数据写入易失性存储(在 `/run` 文件系统内)时为其他用途预留的空间数量。| `RuntimeMaxUse=100M` |
|
||||
| `RuntimeMaxFileSize` |指定单个日志文件在被轮换之前在易失性存储(在 `/run` 文件系统内)所能占用的空间量。| `RuntimeMaxFileSize=200M` |
|
||||
|
||||
如果你在运行中的系统的 `/etc/systemd/journald.conf` 文件中添加这些值,那么在更新文件后,你必须重新启动 journald。要重新启动,请使用以下命令。
|
||||
|
||||
|
||||
```
|
||||
sudo systemctl restart systemd-journald
|
||||
```
|
||||
|
||||
### 核实日志文件
|
||||
|
||||
在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了对日志文件的 PASS、FAIL。
|
||||
|
||||
在你清理完文件后,检查日志文件的完整性是比较明智的。要做到这一点,请运行下面的命令。该命令显示了日志文件是否通过(`PASS`)、失败(`FAIL`)。
|
||||
|
||||
```
|
||||
journalctl --verify
|
||||
@ -166,7 +157,7 @@ journalctl --verify
|
||||
|
||||
![验证日志文件][9]
|
||||
|
||||
### 结案说明
|
||||
### 总结
|
||||
|
||||
希望本指南能帮助你了解 systemd 日志管理流程的基本情况。通过这些,你可以通过限制空间、清除旧的日志文件来管理系统或服务器中的日志文件所使用的磁盘空间。这些只是指导性的命令,你可以通过多种方式组合这些命令来实现你的系统需求。
|
||||
|
||||
@ -180,7 +171,7 @@ via: https://www.debugpoint.com/systemd-journald-clean/
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Chao-zhi](https://github.com/Chao-zhi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
@ -197,3 +188,4 @@ via: https://www.debugpoint.com/systemd-journald-clean/
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/verify-log-files.png
|
||||
[10]: https://www.freedesktop.org/software/systemd/man/journalctl.html
|
||||
[11]: https://www.freedesktop.org/software/systemd/man/journald.conf.html
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/10/072955z20ipg8vlpvdt1jq.jpg
|
@ -3,56 +3,60 @@
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15531-1.html"
|
||||
|
||||
如何使用 GNOME 2 的 Linux 文件管理器
|
||||
GNOME 2 的 Linux 文件管理器 Caja
|
||||
======
|
||||
|
||||
在 GNOME 3 之前是 GNOME 2(毫不奇怪),在其作为常见的默认 Linux 桌面之一的统治期间,它已经获得了一个热心的粉丝群。[Mate项目][1](以 _yerba mate_ 植物命名)开始是为了延续 GNOME 2 的桌面,起初使用 GTK 2(基于 GNOME 2 的工具包),后来加入了 GTK 3。该桌面的一部分是 Caja 文件管理器,一个简单而强大的应用,可以帮助你分类和组织你的数据。
|
||||
![][0]
|
||||
|
||||
> 如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。
|
||||
|
||||
在 GNOME 3 之前是 GNOME 2(废话),在其作为常见的默认 Linux 桌面之一的统治期间,它拥有了一个热心的粉丝群。[Mate 项目][1](以植物 _yerba mate_ 命名)最初是为了延续 GNOME 2 桌面的生命力,它起初是使用 GTK 2(基于 GNOME 2 的工具包)开发的,后来升级为 GTK 3。该桌面包含了一个 Caja 文件管理器,这是一个简单而强大的应用,可以帮助你分类和组织你的数据。
|
||||
|
||||
### 安装 Caja
|
||||
|
||||
Caja 并不完全是一个独立的应用。它与 Mate 桌面紧密相连,所以要试用它,你必须安装 Mate。
|
||||
|
||||
你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以许多 Mate 应用会和桌面一起安装。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。
|
||||
你可能会发现 Mate 包含在你的 Linux 发行版的仓库中,或者你可以下载并安装一个将 Mate 作为默认桌面的发行版。不过,在你安装之前,要注意它是为了提供完整的桌面体验,所以会和桌面一起安装许多 Mate 应用。如果你运行一个不同的桌面,你可能会发现自己有多余的应用(两个 PDF 阅读器,两个媒体播放器,两个文件管理器,等等)。要评估 Caja 不会对你的电脑做重大改动,可以使用 [GNOME Boxes][2] 在虚拟机中安装一个基于 Mate 的发行版。
|
||||
|
||||
![Image of the Caja file manager.][3]
|
||||
|
||||
### Clear 布局
|
||||
### 清晰的布局
|
||||
|
||||
你可能首先注意到的是 Caja 的清晰和直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。
|
||||
你可能首先注意到的是 Caja 的清晰而直接的布局。在 Caja 窗口的顶部有一个工具栏,上面有一些常用任务的按钮。我喜欢这样的设计。功能不是隐藏在右键菜单中,也不是只有在操作后才能发现,更不是埋在菜单中。窗口的“显而易见”的操作被直接列在上面。
|
||||
|
||||
主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的**编辑**按钮来切换它是否可编辑。
|
||||
主工具栏下面是位置栏。它显示你当前的路径,可以是一系列的按钮,也可以是可编辑的文本。使用路径左边的 “<ruby>编辑<rt>Edit</rt></ruby>” 按钮来切换它是否可编辑。
|
||||
|
||||
### 可配置
|
||||
|
||||
对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从**查看**菜单中禁用Caja窗口的主要组件,包括:
|
||||
对于 GNOME 2 或 Caja 的长期用户来说,主工具栏可能是多余的,尤其是当你知道了调用常用操作的键盘快捷键后。这就是为什么 Caja 的界面是可配置的。你可以从 “<ruby>查看<rt>View</rt></ruby>” 菜单中禁用 Caja 窗口的主要组件,包括:
|
||||
|
||||
- 主工具条
|
||||
- 位置栏
|
||||
- 侧板
|
||||
- 额外面板
|
||||
- 侧面板
|
||||
- 附加面板
|
||||
- 状态栏
|
||||
|
||||
简而言之,你可以把 Caja 变成你想要的最小的样子。
|
||||
简而言之,你可以按你的想法精简 Caja。
|
||||
|
||||
![Image of a minimal Caja layout.][4]
|
||||
![Image of a minimal Caja layout.][4]
|
||||
|
||||
### 标记你的文件夹
|
||||
|
||||
有些人是“可视化”人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序,两者之间有很多应该开始的地方,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。
|
||||
有些人是 “可视化” 人。他们喜欢根据自己对数据的看法来组织文件和文件夹,而不是根据计算机对数据的解释。例如,如果对你来说最重要的两个文件夹是**音乐**和**工作**,就很难让计算机相信这两者之间有任何关系。按字母顺序两者也排不到一起,而且每个文件夹的内容可能完全不同(一个是媒体文件,另一个是电子表格)。
|
||||
|
||||
### Caja 提供了一些帮助
|
||||
|
||||
使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在**编辑**菜单的**背景和标志**中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。
|
||||
使用 Caja,你可以在一个窗口内手动放置目录,Caja 会记住这个位置。更重要的是,Caja 有多种标志可供你用作视觉标签。你可以在 “<ruby>编辑<rt>Edit</rt></ruby>” 菜单的 “<ruby>背景和标志<rt>Backgrounds and Emblems</rt></ruby>” 中找到它们。将它们拖放到文件和文件夹中以帮助它们区分。
|
||||
|
||||
![Image of emblems in Caja.][5]
|
||||
|
||||
### Caja
|
||||
|
||||
作为文件管理器,Caja 是最诱人的之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。
|
||||
Caja 是最诱人的文件管理器之一。它的可配置性足以吸引许多不同的使用场景,而且在这些配置选项中,你很可能找到适合你的工作流程。如果你是 GNOME 2 的粉丝,那么你肯定会发现 Caja 很熟悉,如果你从来没有使用过 GNOME 2,那么你可能会在 Mate 中找到你的新宠桌面。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -61,7 +65,7 @@ via: https://opensource.com/article/22/12/linux-file-manager-caja
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
@ -72,3 +76,4 @@ via: https://opensource.com/article/22/12/linux-file-manager-caja
|
||||
[3]: https://opensource.com/sites/default/files/2022-10/caja.file%20manager.png
|
||||
[4]: https://opensource.com/sites/default/files/2022-10/caja-minimal-layout.png
|
||||
[5]: https://opensource.com/sites/default/files/2022-10/caja-emblem.webp
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/12/093538qnlj0jdunz10n17c.jpg
|
@ -3,50 +3,52 @@
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Chao-zhi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15539-1.html"
|
||||
|
||||
通过实例学习Linux中的zip命令
|
||||
zip 命令的解释与示例
|
||||
======
|
||||
|
||||
**这里是关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。**
|
||||
> 这是一份关于理解 Linux 中的 zip 命令的初学者指南,并附有一些例子。
|
||||
|
||||
![][1]
|
||||
|
||||
这篇文章是 [Linux 命令][4]学习系列的一部分。
|
||||
|
||||
zip 文件是一个包含一个或多个文件的压缩档案。它作为一种无损数据压缩技术被广泛使用。由于压缩,它占用的磁盘空间更少,在计算机网络上传输时需要的数据也更少。
|
||||
|
||||
这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩文件的软件,也提供提取它们的功能。
|
||||
这些压缩文件可以在 Linux、Windows 和 macOS 中轻松提取。有各种支持压缩 zip 文件的软件,也提供提取它们的功能。
|
||||
|
||||
由于它很流行,几乎所有的操作系统都内置了这个功能。
|
||||
|
||||
在本教程中,我们将谈论几种基于终端的方法来压缩 Linux 中的文件。
|
||||
|
||||
### Linux 中的 Zip 命令,例子:
|
||||
### Linux 中的 Zip 命令示例
|
||||
|
||||
#### 语法
|
||||
|
||||
在 Linux 中,你需要使用的压缩文件的程序名称是`zip`。下面是基本的语法。
|
||||
在 Linux 中,你需要使用的压缩文件的程序名称是 `zip`。下面是基本的语法:
|
||||
|
||||
``` sh
|
||||
```
|
||||
zip [压缩文件名] file1 file2 file3
|
||||
```
|
||||
|
||||
这里是官方的语法。
|
||||
以下是正式的语法:
|
||||
|
||||
``` sh
|
||||
```
|
||||
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]
|
||||
```
|
||||
|
||||
理想情况下,zip 命令应该被安装在所有主要的 Linux 发行版中。如果没有,使用下面的命令来安装它。
|
||||
理想情况下,`zip` 命令应该被安装在所有主流的 Linux 发行版中。如果没有,使用下面的命令来安装它。
|
||||
|
||||
#### 在 Debian, Ubuntu and 相关发行版上安装
|
||||
#### 在 Debian、Ubuntu 和相关发行版上安装
|
||||
|
||||
```
|
||||
sudo apt install zip
|
||||
```
|
||||
|
||||
#### 在 Fedora, 基于 RHEL 的系统上安装
|
||||
#### 在 Fedora、基于 RHEL 的系统上安装
|
||||
|
||||
```
|
||||
sudo dnf install zip
|
||||
@ -58,17 +60,17 @@ sudo dnf install zip
|
||||
pacman -S zip
|
||||
```
|
||||
|
||||
让我们继续看一些例子
|
||||
让我们继续看一些例子。
|
||||
|
||||
#### 如何压缩文件和文件夹
|
||||
|
||||
我的测试目录中有以下三个文件。它们是 file1.txt、file2.txt 和 file3.txt。如果我想用 zip 压缩三个文件,并创建一个 myfiles.zip 的压缩包,用下面的命令就可以了。
|
||||
我的测试目录中有以下三个文件。它们是 `file1.txt`、`file2.txt` 和 `file3.txt`。如果我想用 zip 压缩三个文件,并创建一个 `myfiles.zip` 的压缩包,用下面的命令就可以了。
|
||||
|
||||
```
|
||||
zip myfiles.zip file1.txt file2.txt file3.mp3
|
||||
```
|
||||
|
||||
输出。
|
||||
输出:
|
||||
|
||||
```
|
||||
adding: file1.txt (stored 0%)
|
||||
@ -81,12 +83,12 @@ adding: file3.mp3 (deflated 13%)
|
||||
这里你应该记住几个要点。
|
||||
|
||||
- 当创建一个 zip 文件时,你应该有对当前目录的修改权限。
|
||||
- zip 文件格式不包含权限,即读(4),写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。
|
||||
- 如果你想使用有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。
|
||||
- zip 文件格式不包含权限,即读(4)、写(2),和执行(1)。所以,创建该文件的用户成为该文件的所有者。
|
||||
- 如果你想使用带有权限的 zip,可以尝试使用 `tar` 命令(将在后面的教程中解释)。
|
||||
- 在上面的输出中,`zip` 命令显示了被添加到存档中的文件名和压缩方法。
|
||||
- 在目标文件名中指定 .zip 文件名的扩展名并不是必须的。如果你省略了 .zip,`zip` 会在最后加上 .zip。
|
||||
|
||||
当你有成百上千的文件在运行时,可以在终端中减少输出。你可以使用 `-q` 参数来抑制 `zip` 命令中的输出。
|
||||
当你操作成百上千的文件时,为了减少终端中的输出,你可以使用 `-q` 参数来抑制 `zip` 命令中的输出:
|
||||
|
||||
```
|
||||
zip -q myfiles.zip file1.txt file2.txt file3.txt
|
||||
@ -96,13 +98,13 @@ zip -q myfiles.zip file1.txt file2.txt file3.txt
|
||||
|
||||
`zip` 命令的 `-r` 选项使你能够囊括所有子目录。这个选项会递归地遍历到一个目录结构的最后一个子目录,并将它们全部加入到压缩文件中。
|
||||
|
||||
下面的命令创建了一个包含 my_folder 内所有内容和子目录的压缩文件。
|
||||
下面的命令创建了一个包含 `my_folder` 内所有内容和子目录的压缩文件:
|
||||
|
||||
```
|
||||
zip -r myfolder.zip my_folder
|
||||
```
|
||||
|
||||
你也可以使用通配符(*)在你的压缩文件中包含特定类型的文件。
|
||||
你也可以使用通配符(`*`)在你的压缩文件中包含特定类型的文件:
|
||||
|
||||
```
|
||||
zip -0 my_movies.zip *.mp4
|
||||
@ -118,9 +120,9 @@ zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2
|
||||
|
||||
### 压缩算法
|
||||
|
||||
zip 压缩的默认输出包含两个不同的词,即 deflate 和 store。zip 默认使用的压缩方法是 deflate。如果它成功地压缩了文件,那么输出显示 deflate。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 store。
|
||||
zip 压缩的默认输出包含两个不同的词,即 `deflate` 和 `store`。zip 默认使用的压缩方法是 `deflate`。如果它成功地压缩了文件,那么输出显示 `deflate`。而当它不能压缩一个文件时,它只是将它们原封不动地存储在 .zip 文件中。这些文件的输出显示为 `store`。
|
||||
|
||||
目前有许多压缩算法。其中一种是 bzip2 压缩法,它在 Linux 中被 `zip` 命令所支持。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示。
|
||||
目前有许多压缩算法。其中一种是 bzip2 压缩法,在 Linux 中的 `zip` 命令支持它。你可以指定压缩算法作为一个命令选项来使用。使用选项 `-Z`,后面跟上算法名称,如下所示:
|
||||
|
||||
```
|
||||
zip -r -Z bzip2 myfolder.zip my_folder
|
||||
@ -138,7 +140,7 @@ zip -9 -r myfolder.zip my_folder
|
||||
|
||||
#### 用密码保护一个压缩文件
|
||||
|
||||
你也可以用下面的 `-e` 选项对压缩文件进行密码保护。
|
||||
你也可以用下面的 `-e` 选项对压缩文件进行密码保护:
|
||||
|
||||
```
|
||||
zip -e -r myfolder.zip my_folder
|
||||
@ -146,7 +148,7 @@ zip -e -r myfolder.zip my_folder
|
||||
|
||||
运行该命令后,它将要求输入密码。
|
||||
|
||||
> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流密码的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。
|
||||
> 注意。尽量不要使用 zip 命令来对压缩文件进行密码保护。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保护你的文件,请使用 7-Zip 或其他高级工具。
|
||||
|
||||
#### 分割较大的压缩文件
|
||||
|
||||
@ -160,9 +162,8 @@ zip -s 1g -r myfolder.zip my_folder
|
||||
|
||||
你学到了一些 `zip` 命令的基本知识。它对大多数本地情况很有用,在这些情况下,你需要通过即时压缩来进行快速备份。然而,对于更高级的选项,你应该使用 7-Zip 或其他命令,我将在接下来的几篇文章中分享。
|
||||
|
||||
同时,你可以在 [zip 手册][3]中了解更多。
|
||||
同时,你可以在 [zip 手册][3] 中了解更多。
|
||||
|
||||
_这篇文章是 [Linux 命令][4]学习系列的一部分。_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -171,7 +172,7 @@ via: https://www.debugpoint.com/zip-command-linux-examples/
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Chao-zhi](https://github.com/Chao-zhi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -0,0 +1,153 @@
|
||||
[#]: subject: "Top 10 Linux Distributions for Servers in 2023"
|
||||
[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Veryzzj"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15535-1.html"
|
||||
|
||||
2023 年十佳 Linux 服务器发行版
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
由于具备多种优势,Linux 操作系统是各类服务器中的热门选择。首先,它是免费(少数商业发行版除外,如 RHEL 和 SUSE Linux Enterprise Server)和开源的。它的开源性意味着开发者可以查看其源代码并进行修改,而且可以根据规定的许可条款重新发布。其次,通常 Linux 被认为是稳定、通用的,且比 Windows 更为安全。最后,Linux 可以轻松地部署在各类平台,如裸机、虚拟机和云环境。
|
||||
|
||||
在这篇文章中,我们重点介绍了十佳 Linux 服务器发行版。
|
||||
|
||||
### 1、红帽企业 Linux(RHEL)
|
||||
|
||||
<ruby>[红帽企业 Linux][1]<rt>Red Hat Enterprise Linux</rt></ruby>(RHEL),是专门为企业环境开发的商业 Linux 发行版。它是一个性能驱动、可靠安全的操作系统,提供了增强的可用性和无缝部署,使其成为服务器环境的理想选择。
|
||||
|
||||
RHEL 支持裸机、虚拟机和云环境中的各种工作负载。实际上,红帽是世界领先的开源解决方案供应商,提供了众多产品,包括 Red Hat OpenShift、Ansible 自动化平台、Open 混合云、JBoss 企业应用平台和 SAP 等等。
|
||||
|
||||
![Neofetch-Command-Output-RHEL-System][2]
|
||||
|
||||
### 2、Ubuntu 服务器
|
||||
|
||||
由 Canonical 开发和维护的 Ubuntu 是最流行和广泛使用的 Linux 发行版之一。Ubuntu 是一个基于 Debian 的 Linux 发行版,完全自由开源,以其桌面版而闻名,它直观、用户友好,被认为是学者和初学者的理想选择。Ubuntu 有 3 个版本,即:<ruby>桌面版<rt>Desktop</rt></ruby>、<ruby>服务器版<rt>Server</rt></ruby>和 <ruby>核心版<rt>Core</rt></ruby>。
|
||||
|
||||
虽然桌面版在全球范围内得到了大量使用,但服务器版也为服务器环境提供了一个坚实的平台。首先,它可以部署在任何环境中,无论是在物理机、虚拟机还是云环境中,都具备广泛的扩展功能。这意味着可以随时增加资源用来满足不断变化的需求。
|
||||
|
||||
由于服务器版本非常精简,没有任何图形用户界面,因此相对轻量,资源开销低。这意味着 CPU 和内存的使用也会较低。因此,提高了性能,并具备企业级的稳定性。
|
||||
|
||||
除了在物理数据中心和虚拟服务器上安装外,Ubuntu 服务器还可以在 AWS 和 Azure 等公共云中使用。据 Canonical 称,55%的 OpenStack 云运行在 Ubuntu 上。 此外,你可以付费获得自己管理的 Openstack 云。
|
||||
|
||||
![][3]
|
||||
|
||||
### 3、Debian
|
||||
|
||||
Debian 是最早的 Linux 发行版之一,以其稳定性而闻名。它有三个版本:<ruby>稳定版<rt>Stable</rt></ruby>、<ruby>不稳定版<rt>Unstable</rt></ruby> 和 <ruby>测试版<rt>Testing</rt></ruby>。
|
||||
|
||||
Debian 稳定版是官方发布的最新 Debian 发行版,是服务器和台式机最受欢迎的版本。这个分支的所有软件包都经过了严格的测试和调试,因此被认为是可以运行生产工作负载的。
|
||||
|
||||
Debian 服务器是一个快速可靠的操作系统,强调安全性和稳定性。正是由于这个原因,它成为服务器环境的一个完美选择。此外,它提供了广泛的硬件支持,有超过 59,000 个软件包,是迄今为止所有操作系统中软件包数量最多的。
|
||||
|
||||
就像 Ubuntu 服务器一样,Debian 轻量,功能多,非常适合企业工作负载。实际上,它比 Ubuntu 更稳定,更易于管理。
|
||||
|
||||
![][4]
|
||||
|
||||
### 4、SUSE Linux 企业服务器
|
||||
|
||||
在提供优秀服务器平台方面,另一位具有竞争力的对手是 <ruby>SUSE Linux 企业服务器<rt>SUSE Linux Enterprise Server</rt></ruby>(SLES)。该服务器操作系统是由位于德国的 SUSE 公司创建和维护的。
|
||||
|
||||
SLES 是一个为处理企业级工作负载而建立的商业发行版。它可以适应任何环境,并针对稳定性、可靠性和安全性进行了优化。它的高可扩展性,使 IT 团队能够有效地部署他们的应用程序和服务,以应对不断增长的业务需求。
|
||||
|
||||
最新的 SLES 版本提供了易于管理的互操作。它还针对 Docker 容器、Kubernetes 和地理集群提供了更多的支持和兼容。后者提供了高可用的灵活性,使 IT 团队能够配置跨越多个数据中心区域的复制集群。
|
||||
|
||||
SUSE Linux Enterprise Server 不仅支持内部工作负载,而且支持云服务,包括微软 Azure、谷歌计算引擎和亚马逊 Web 服务。
|
||||
|
||||
### 5、OpenSUSE Leap
|
||||
|
||||
由 OpenSUSE 项目开发,OpenSUSE 是一个基于 RPM 的非商业 Linux 发行版,由 SUSE 公司开发和维护。同样是自由开源的,OpenSUSE 提供了两个版本:
|
||||
|
||||
- OpenSUSE Leap
|
||||
- OpenSUSE Tumbleweed
|
||||
|
||||
OpenSUSE TumbleWeed 是 OpenSUSE 的滚动发行版本。它包含最新的稳定应用程序,包括内核、Git、Samba、桌面应用程序等等。因此,它是开发人员或高级用户的完美选择,他们需要利用最新的软件堆栈进行工作负载。然而,由于频繁的内核更新,导致与其他第三方驱动模块的不一致,它并不是服务器的理想选择。
|
||||
|
||||
OpenSUSE Leap 是将 OpenSUSE 用于服务器的首选。它是一个开源和社区驱动的发行版,发布周期较慢,因此,比 TumbleWeed 更适合。社区驱动,这意味着它在发布之前要经过严格的测试。
|
||||
|
||||
Leap 相对来说更容易使用,并提供高性能和稳定性,是处理企业级工作负载的理想选择。它是商业服务器发行版(如 SLES 和 RHEL)的优秀替代方案,并允许企业在裸机和云部署上部署他们的工作负载。
|
||||
|
||||
![][6]
|
||||
|
||||
### 6、Rocky Linux
|
||||
|
||||
Rocky Linux 是一个作为 CentOS Linux 的替代品而开发的 Linux 发行版,后者在 2021 年 12 月 31 日达到了 EOL(寿命终止)。它是一个自由而开源的 Linux 发行版,具备稳定性、可靠性且定期更新,并在 10 年的支持生命周期内完全免费。
|
||||
|
||||
Rocky Linux 是一个企业级操作系统,旨在与 RHEL 100% 兼容,目前正在由社区大力开发。
|
||||
|
||||
自从 CentOS Linux 不合时宜地突然停产后,导致该发行版获得较高人气。它可以服务器和台式电脑上安装,也提供了公有云供应商(如亚马逊 AWS 和谷歌计算引擎)上的定制镜像。
|
||||
|
||||
Rocky Linux 开发者提供了一个迁移脚本,允许用户从其他企业版(如 CentOS Linux 和 Oracle Linux)迁移到 Rocky Linux。
|
||||
|
||||
![][7]
|
||||
|
||||
### 7、AlmaLinux
|
||||
|
||||
另一个为填补 CentOS Linux 留下的空白的选择是 AlmaLinux。同样一个完全自由开源的企业操作系统。
|
||||
|
||||
AlmaLinux 最初是由 CloudLinux 创建的,但目前是由社区驱动的。它提供了一个生产级的企业操作系统,与 RHEL 1:1 二进制兼容。简而言之,它是 RHEL 的克隆,简而言之,它是 RHEL 的克隆,并免费提供坚实的稳定性和 RHEL 所带来的优势。
|
||||
|
||||
作为一个企业级的服务器操作系统,AlmaLinux 可以轻松运行关键工作负载。此外,它提供长期支持的定期发布。
|
||||
|
||||
![][8]
|
||||
|
||||
### 8、Oracle Linux
|
||||
|
||||
由甲骨文公司开发的 Oracle Linux 是一个安全和高性能的操作系统,由 RHEL 源代码编译而成。它针对混合部署和多云部署进行了优化,与 Rocky 和 AlmaLinux 一样,Oracle Linux 与 RHEL 是 100% 二进制兼容。
|
||||
|
||||
对于数据中心,Oracle Linux 是一个可行的选项,当然也可以作为 EOL 的 CentOS 的完美替代品。由于它的稳定性和性能,是企业应用的理想选择。
|
||||
|
||||
与 RHEL 和 SUSE 等商业 Linux 发行版不同,Oracle Linux 可以完全免费下载、使用和重新发布。它在 GNU 通用公共许可证(GPLv2)下是可用的。
|
||||
|
||||
### 9、Fedora 服务器
|
||||
|
||||
Fedora 是 Fedora 项目开发和维护的自由开源的 Linux 发行版,该项目由红帽赞助。
|
||||
|
||||
Fedora 作为 RHEL 的上游社区发行版。所有的应用程序在推送到 RHEL 之前都要经过严格的测试。因此,它被称为“最前沿”的操作系统,这意味着它定期获得最新的软件应用程序和更新。
|
||||
|
||||
长久以来,Fedora 以其工作站版本而受欢迎,该版本是为笔记本电脑和台式电脑打造的。随着时间的推移,它已经扩展到包括其他版本,如 Fedora 服务器、Fedora IoT 和 Fedora CoreOS。
|
||||
|
||||
Fedora 服务器是一个强大、可靠、灵活的操作系统,拥有最好和最新的数据中心技术。作为一个领先的版本,它提供了开源社区的最新技术,并且易于安装、设置和使用各种工具进行管理,如 Cockpit 网络控制台。
|
||||
|
||||
Fedora 也十分快速稳定,而且相当安全,非常适合生产和企业工作负载,其新版本每 6 个月推送一次。
|
||||
|
||||
![][10]
|
||||
|
||||
### 10、Fedora CoreOS
|
||||
|
||||
最后一个是 Fedora CoreOS。这是一个专门为运行容器化应用程序和工作负载优化的最小操作系统。根据其主页,它自称是 “一个自动更新的最小操作系统,用于安全且大规模地运行容器化工作负载”。
|
||||
|
||||
通常情况下,它与 Podman 和 Docker 一起发行,并有三个版本,即 <ruby>稳定版<rt>Stable</rt></ruby>、<ruby>测试版<rt>Testing</rt></ruby> 和 <ruby>下一版<rt>Next</rt></ruby>。你可以获得用于裸机服务器和虚拟化环境的镜像,以及由亚马逊网络服务(AWS)和谷歌云平台(GCP)等主要云提供商托管的云镜像。
|
||||
|
||||
### 结论
|
||||
|
||||
这是关于 Linux 服务器发行版最好的总结。希望你看完这个指南后能有所收获。对我们的指南有什么想法吗?非常欢迎你的反馈。
|
||||
|
||||
> LCTT 校注:此文并未提及主要由中国开发者/企业主导的企业级 Linux 发行版,在我看来,龙蜥操作系统(Anolis OS)、欧拉操作系统(openEuler)和统信 UOS 都具备相当优良的特性和可靠的支持,在选型时可以考虑。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Veryzzj](https://github.com/Veryzzj)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.redhat.com/en
|
||||
[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png
|
||||
[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg
|
||||
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png
|
||||
[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg
|
||||
[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/13/092403ebp55xkbpukn9k33.jpg
|
@ -3,20 +3,24 @@
|
||||
[#]: author: "Moshe Zadka https://opensource.com/users/moshez"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15529-1.html"
|
||||
|
||||
通过游戏学习 Basic
|
||||
通过“猜数字”游戏学习 Basic
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 本教程让你通过编写一个 “猜数字” 游戏来探索 Basic。
|
||||
|
||||
用多种语言编写同一个应用是学习新的编程语言的好方法。大多数编程语言都有某些共同点,如:
|
||||
|
||||
- 变量
|
||||
- 表达式
|
||||
- 语句
|
||||
|
||||
这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始琢磨其他的东西了。
|
||||
这些概念是大多数编程语言的基础。当你理解了它们,你就可以开始研究其他的东西了。
|
||||
|
||||
编程语言通常有一些相似之处。当你了解了一种编程语言,你就可以通过认识其差异来学习另一种语言的基础知识。
|
||||
|
||||
@ -34,13 +38,13 @@
|
||||
|
||||
### 在(Bywater)Basic 中猜数字
|
||||
|
||||
对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(初学者通用符号指令代码)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。
|
||||
对于 Basic 编程语言,没有真正的标准。维基百科说:“BASIC(<ruby>初学者通用符号指令代码<rt>Beginners' All-purpose Symbolic Instruction Code</rt></ruby>)是一个通用的高级编程语言系列,旨在方便使用”。[BWBasic][1] 的实现是在 GPL 下提供的。
|
||||
|
||||
你可以通过编写一个“猜数字”游戏来探索 Basic。
|
||||
|
||||
### 在 Linux 上安装 Basic
|
||||
|
||||
在 Debian 或 Ubuntu 中,你可以用以下方法安装Basic:
|
||||
在 Debian 或 Ubuntu 中,你可以用以下方法安装 Basic:
|
||||
|
||||
```
|
||||
$ apt install -y bwbasic
|
||||
@ -77,8 +81,8 @@ Basic 程序可以是编号的,也可以是不编号的。通常情况下,
|
||||
|
||||
按照惯例,编码者将行写成 10 的倍数。这种方法允许在现有的行之间插入新的行,以便进行调试。下面是我对上述方法的解释:
|
||||
|
||||
- 10 行:使用内置的 **rnd** 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。
|
||||
- 20 行:询问一个猜测,并将该值放入 **guess$ 标量**变量。30 行将该值转换为一个数字。
|
||||
- 10 行:使用内置的 `rnd` 函数计算一个 1 到 100 之间的随机值,该函数生成一个 0 到 1 之间的数字,不包括 1。
|
||||
- 20 行:询问一个猜测,并将该值放入 `guess$` 标量变量。30 行将该值转换为一个数字。
|
||||
- 40 行和 50 行:根据比较结果,给猜测者以反馈。
|
||||
- 70 行:回到循环的起点。
|
||||
- 60 行:通过将控制权转移到 80 行来打破循环。80 行是最后一行,所以程序在这之后退出。
|
||||
@ -122,7 +126,7 @@ via: https://opensource.com/article/23/2/learn-basic-coding-game
|
||||
作者:[Moshe Zadka][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
@ -130,3 +134,4 @@ via: https://opensource.com/article/23/2/learn-basic-coding-game
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://yeolpishack.net/repos/ChipMaster/bwBASIC
|
||||
[2]: https://github.com/nerun/bwbasic/releases
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/11/103834qsra0ryedbdnrdez.jpg
|
@ -0,0 +1,79 @@
|
||||
[#]: subject: "Linux Kernel 6.1 is Now Approved as an LTS Version"
|
||||
[#]: via: "https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Cubik65536"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15532-1.html"
|
||||
|
||||
Linux 6.1 内核被批准为长期支持版本
|
||||
======
|
||||
|
||||
> 作为 2022 年的最后一个内核,经过一个多月的等待,现在 Linux 6.1 被批准为长期支持版本。
|
||||
|
||||
![Linux 6.1 内核被批准为长期支持版本][1]
|
||||
|
||||
Linux 6.1 内核是 2022 年的最后一个内核版本,通常这些版本会被批准为长期支持版本。
|
||||
|
||||
但是这次,将其作为 LTS 版本的决定被推迟了。
|
||||
|
||||
在决定是否将其用于长期使用之前,还在等待一些来自内核相关人员的关键反馈的测试结果。
|
||||
|
||||
幸好,这些问题已经得到解决,现在 **Linux 6.1 是一个长期支持版本**。
|
||||
|
||||
让我带你了解这一举措的要点。
|
||||
|
||||
### Linux 6.1 现在正在成为长期支持版本
|
||||
|
||||
自从 12 月份发布以来,Linux 稳定分支维护者 **Greg Kroah-Hartman** 就计划将 Linux 6.1 作为一个长期支持版本,但是一些待定的反馈导致该决定被推迟了。
|
||||
|
||||
现在,他和共同维护者 Sasha Levin 终于收到了足够的反馈,表明将 Linux 内核 6.1 作为一个长期支持版本维护是合理的。
|
||||
|
||||
按照目前的情况,Linux 6.1 内核预期将于 **2026 年 12 月** 结束支持,如果有足够多的用户或公司对其感兴趣,那么它的生命周期可能会延长。
|
||||
|
||||
![一张描述当前 Linux 长期支持版本的表格][2]
|
||||
|
||||
最初,它的生命周期被计划为 2 年,但是后来被更新为了 **当前的 4 年**。
|
||||
|
||||
你还会注意到,同时许多 Linux 内核都被作为长期支持版本维护。
|
||||
|
||||
### Linux 6.1 内核:概述
|
||||
|
||||
如果你错过了这个版本,下面是 Linux 内核 6.1 的一些亮点:
|
||||
|
||||
- 对 Rust 的实验性支持
|
||||
- 对 AMD PC 的优化
|
||||
- 对英特尔 Meteor Lake 的初始支持
|
||||
- 优化 ARM 架构 SoC 的支持
|
||||
|
||||
这些并不是新版本的全部内容;你可以阅读我们的文章以了解更多信息。
|
||||
|
||||
> **[Linux 内核 6.1 发布,初步支持 Rust][9]**
|
||||
|
||||
参考自:[Phoronix][3]
|
||||
|
||||
💬 考虑到这是一个长期支持版本,你可以预见到很多未来的发行版升级将会包含 Linux 6.1 内核。你认为你会更喜欢使用哪个版本?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/linux-kernel-6-1-is-now-an-lts-version/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Cubik65536](https://github.com/Cubik65536)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/linux-6-1-to-be-lts.png
|
||||
[2]: https://news.itsfoss.com/content/images/2023/02/Linux_Kernel_LTS.jpg
|
||||
[3]: https://www.phoronix.com/news/Linux-6.1-LTS-Official
|
||||
[4]: https://itsfoss.com/signup/
|
||||
[5]: https://itsfoss.com/flatpak-vs-snap/
|
||||
[6]: https://www.socallinuxexpo.org/scale/20x
|
||||
[7]: https://news.itsfoss.com/upcoming-code-editors/
|
||||
[8]: https://news.itsfoss.com/new-distros-2023/
|
||||
[9]: https://news.itsfoss.com/linux-kernel-6-1-release/
|
@ -0,0 +1,172 @@
|
||||
[#]: subject: "How to Install DOSBox in Ubuntu to Play Old Games"
|
||||
[#]: via: "https://www.debugpoint.com/install-dosbox-ubuntu/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "gpchn"
|
||||
[#]: reviewer: "wxy"
|
||||
[#]: publisher: "wxy"
|
||||
[#]: url: "https://linux.cn/article-15538-1.html"
|
||||
|
||||
如何在 Ubuntu 中安装 DOSBox 玩老游戏
|
||||
======
|
||||
|
||||
![][0]
|
||||
|
||||
> 了解如何在 Ubuntu 中安装 DOSBox,并配置它来玩旧式 DOS 游戏。
|
||||
|
||||
DOSBox 是一个自由开源的操作系统模拟器,可以在现代 Linux 系统中运行。它有几个组件可以模仿旧的硬件,以运行旧的程序和游戏。
|
||||
|
||||
这一切使得在现代 Linux 发行版中享受旧游戏和应用程序成为可能。
|
||||
|
||||
在本指南中,我将向你展示如何安装 DOSBox,配置它,并玩一个示例游戏。
|
||||
|
||||
### 在 Ubuntu 中安装 DOSBox
|
||||
|
||||
DOSBox 的主软件包在所有主要的 Linux 发行版中都可用。
|
||||
|
||||
在 Ubuntu、Debian、LinuxMint 和相关发行版中,使用以下命令安装它:
|
||||
|
||||
```
|
||||
sudo apt install dosbox
|
||||
```
|
||||
|
||||
在 Fedora、CentOS、RHEL 和相关发行版中,使用以下命令安装它:
|
||||
|
||||
```
|
||||
sudo dnf install dosbox
|
||||
```
|
||||
|
||||
在 Arch Linux 中,使用以下命令安装它:
|
||||
|
||||
```
|
||||
pacman -S --needed dosbox
|
||||
```
|
||||
|
||||
安装就结束了。现在是配置和运行的时候了。
|
||||
|
||||
### 运行 DOSBox
|
||||
|
||||
安装后,从终端键入以下内容:
|
||||
|
||||
```
|
||||
dosbox
|
||||
```
|
||||
|
||||
它将显示以下界面,这是 DOSBox 提示符。第一次运行非常重要,因为它会创建 DOSBox 配置文件。
|
||||
|
||||
键入 `exit` 暂时关闭 DOSBox。
|
||||
|
||||
![DOSBox first time run][1]
|
||||
|
||||
配置文件为你提供了几个调整设置的选项。在 Ubuntu 中,该文件创建在 `~/.dosbox/dosbox-[version].conf`。
|
||||
|
||||
在 Fedora 中,它从以下路径加载临时配置文件 `~/.config/dosbox/dosbox-staging.conf`.
|
||||
|
||||
默认情况下,你可以使用默认配置。但是如果你愿意,你可以修改它。
|
||||
|
||||
例如,如果你想全屏启动 DOSBox,你可以启用或禁用相关设置。像这样:
|
||||
|
||||
```
|
||||
fullscreen=false
|
||||
fulldouble=false
|
||||
fullresolution=original
|
||||
windowresolution=original
|
||||
output=surface
|
||||
autolock=true
|
||||
sensitivity=100
|
||||
waitonerror=true
|
||||
```
|
||||
|
||||
你可以在 [官方文档][2] 中找到所有的设置选项。
|
||||
|
||||
### 下载以及游玩老游戏
|
||||
|
||||
有许多网站提供旧的 DOS 游戏。我使用过下面的网站,它提供了一套可以在现代系统中玩的老游戏。
|
||||
|
||||
所以,访问下面的网站,下载你想要的任何游戏。
|
||||
|
||||
> **[下载 DOS 游戏][3]**
|
||||
|
||||
在你的 `/home` 目录下创建一个文件夹,并将其命名为 `dosbox`:
|
||||
|
||||
```
|
||||
cd ~
|
||||
mkdir dosbox
|
||||
```
|
||||
|
||||
现在,解压你下载的游戏(应该是一个 .exe 文件),在 `~/dosbox` 目录下创建一个单独的文件夹。
|
||||
|
||||
例如,我下载了游戏 “马里奥和路易吉(1994)”。我在 `dosbox` 文件夹中创建了一个名为 `mario` 的文件夹,并将游戏文件放进去。
|
||||
|
||||
![Keep the game in a separate folder][4]
|
||||
|
||||
现在从终端启动 dosbox:
|
||||
|
||||
```
|
||||
dosbox
|
||||
```
|
||||
|
||||
并键入以下内容,将游戏挂载到虚拟的 C: 盘中:
|
||||
|
||||
```
|
||||
mount c ~/dosbox/mario
|
||||
```
|
||||
|
||||
以上命令完成后,将驱动器更改为 C::
|
||||
|
||||
```
|
||||
c:
|
||||
```
|
||||
|
||||
现在,你可以输入游戏的文件名来运行游戏:
|
||||
|
||||
```
|
||||
mario
|
||||
```
|
||||
|
||||
![Running the game][5]
|
||||
|
||||
![Mario running in DOSBox in Ubuntu][6]
|
||||
|
||||
### 键盘或控制器映射
|
||||
|
||||
默认情况下,DOSBox 会自动检测键盘或你插入的控制器。但是,如果你想更改游戏按键绑定,可以从终端运行以下命令:
|
||||
|
||||
```
|
||||
dosbox -startmapper
|
||||
```
|
||||
|
||||
它将显示以下界面,每个键上都标记有事件。你可以点开任何一个键,根据自己的习惯进行更改。
|
||||
|
||||
![DOSBox keyboard and controller mapping][7]
|
||||
|
||||
### 结论
|
||||
|
||||
我希望你在 Ubuntu 和其他发行版中安装了 DOSBox 之后,能够运行你最喜欢的 DOS 游戏。DOSBox 是最酷的软件之一,你可以使用它来运行任何程序,例如 [Turbo C][8] 等。
|
||||
|
||||
如果你有任何麻烦或问题,请在评论区告诉我。
|
||||
|
||||
享受游戏吧!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/install-dosbox-ubuntu/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[gpchn](https://github.com/gpchn)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBox-first-time-run.jpg
|
||||
[2]: https://www.dosbox.com/wiki/Dosbox.conf#Sections
|
||||
[3]: https://archive.org/details/softwarelibrary_msdos_games?tab=collection
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2023/02/Keep-the-game-in-a-separate-folder.jpg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2023/02/Running-the-game.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2023/02/Mario-playing-in-DOSBox-in-Ubuntu.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/DOSBOox-keyboard-and-controller-mapping.jpg
|
||||
[8]: https://www.debugpoint.com/setting-up-dosbox-in-ubuntu-to-run-turbo-c/
|
||||
[0]: https://img.linux.net.cn/data/attachment/album/202302/14/142608nsoov2vory2nipiv.jpg
|
@ -0,0 +1,71 @@
|
||||
[#]: subject: "Lightweight Distro LegacyOS 2023 Released After Nine Years"
|
||||
[#]: via: "https://debugpointnews.com/legacy-os-2023-release/"
|
||||
[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Lightweight Distro LegacyOS 2023 Released After Nine Years
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
**Legacy OS 2023 is released after almost a decade and brings a new Debian base and apps.**
|
||||
|
||||
![Legacy OS 2023 Desktop][2]
|
||||
|
||||
The last release of Legacy OS was in 2014 and was based on Puppy Linux. It was intended to be a general-purpose lightweight distribution based on Puppy Linux with a complete set of applications, packages, media codecs, etc. The aim was to provide a complete operating system for older computers. However, the distro stopped releasing after 2014. Until now.
|
||||
|
||||
### Legacy OS 2023 Release
|
||||
|
||||
The antiX-based new Legacy OS 2023 release has a fundamental change. It is now based on the Debian stable branch (version 11 “bullseye”) rather than Puppy Linux. Hence you can expect a much more stable system with its default window manager offering Ice WM. Those who used IceWM know how lightning-fast it can be. This release is no exception.
|
||||
|
||||
Along with IceWM, Legacy OS pre-loads a massive set of applications by default. The default file manager is PCManFM and also includes the ROX file manager. In addition, all the antiX native apps are preloaded, which includes antiX updater and user manager. Software manager Synaptic has been included, whereas an additional CLI package manager is also there.
|
||||
|
||||
The graphics stack includes GIMP and Inkscape for advanced drawing work. Also, MyPaint, mtPaint, Peek screen recorder, screenshot and ImageMagick library are installed by default.
|
||||
|
||||
If you are considering office suite, Legacy OS pre-loads OnlyOffice suite, Scribus publisher and Dia diagram editor.
|
||||
|
||||
![The application list is huge][3]
|
||||
|
||||
Internet stack includes Firefox ESR web browser, Thunderbird email client, gFTP client, Transmission torrent client and NetSurf web browser.
|
||||
|
||||
You have Geany and VIM code editor installed by default if you are a developer. Furthermore, the powerful note-taking app Cherrytree, essential notepad apps Leafpad and whiteboard app Xournal are some of the leading apps, which makes it an all-rounder, lightweight distribution.
|
||||
|
||||
These are just the key applications; there are almost 100+ applications pre-loaded. And it takes only 7 GB of disk space.
|
||||
|
||||
The performance of this distribution is truly lightweight because its systemd-free and uses IceWM. It uses only 200 MB of RAM at idle, which surprised me. And overall, desktop performance is lightning-fast.
|
||||
|
||||
![Performance is suprisingly good][4]
|
||||
|
||||
It uses the Calamares installer and is perfect for older versions. However, it’s now only available as a 64-bit version, but the team is working on a 32-bit variant which will soon be released.
|
||||
|
||||
I think it’s an excellent distribution to try out, and we are glad that it’s back. The team promises that there will be regular releases in the future.
|
||||
|
||||
You can download the ISO image file from the below link. Remember, the LIVE media default user id is “demo”, and the password is also “demo”.
|
||||
|
||||
[Download Legacy OS][5]
|
||||
|
||||
Via [official announcement][6]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://debugpointnews.com/legacy-os-2023-release/
|
||||
|
||||
作者:[arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://debugpointnews.com/author/dpicubegmail-com/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://debugpointnews.com/wp-content/uploads/2023/02/legacyoshead1.jpg
|
||||
[2]: https://debugpointnews.com/wp-content/uploads/2023/02/Legacy-OS-2023-Desktop.jpg
|
||||
[3]: https://debugpointnews.com/wp-content/uploads/2023/02/The-application-list-is-huge.jpg
|
||||
[4]: https://debugpointnews.com/wp-content/uploads/2023/02/Performance-is-suprisingly-good.jpg
|
||||
[5]: https://sourceforge.net/projects/legacyoslinux/files/LegacyOS_2023_x64/
|
||||
[6]: https://wikka.puppylinux.com/LegacyOS
|
@ -0,0 +1,98 @@
|
||||
[#]: subject: "Transmission 4.0 Upgrade is Here After Two Years"
|
||||
[#]: via: "https://news.itsfoss.com/transmission-4-release/"
|
||||
[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Transmission 4.0 Upgrade is Here After Two Years
|
||||
======
|
||||
|
||||
BitTorrent client Transmission 4.0 release is here with much-needed feature upgrades and improvements.
|
||||
|
||||
![Transmission 4.0 Upgrade is Here After Two Years][1]
|
||||
|
||||
BitTorrent is a popular alternative to HTTP to share or download files over the internet. You may know that numerous BitTorrent clients are available with different features and configurations.
|
||||
|
||||
**Transmission** is one such BitTorrent client that is open-source and lightweight.
|
||||
|
||||
The app's latest release arrives nearly two years after its last stable release. While no new releases were seen during this time, the project was in active development.
|
||||
|
||||
### Transmission 4.0: What's New?
|
||||
|
||||
The new release brings in a load of new features and improvements. This includes IPv6 blocking, BitTorrent v2 support, a revamped web client, and many more.
|
||||
|
||||
Some of the significant highlights are mentioned below.
|
||||
|
||||
#### Support for BitTorrent v2 and Hybrid Torrent
|
||||
|
||||
BitTorrent v2 is a newer version of the existing BitTorrent protocol, bringing in some helpful technical advancements.
|
||||
|
||||
On the other hand, hybrid torrents ensure backward compatibility with the older v1 torrents.
|
||||
|
||||
Do note that this release only allows using v2 and hybrid torrents. To be able to create v2 and hybrid torrents, you need to wait for the next release.
|
||||
|
||||
#### Use of default trackers
|
||||
|
||||
Users should now find it easier to announce or request public torrents by setting up default trackers.
|
||||
|
||||
#### IPv6 blocklists
|
||||
|
||||
Support for IPv6 blocking is now included.
|
||||
|
||||
This is useful if you're experiencing network problems and want to use IPv4 by default.
|
||||
|
||||
In some cases, VPN users might also prefer this feature since many VPN servers may not flawlessly support IPv6, which may lead to data leaks.
|
||||
|
||||
#### New Privacy-Friendly Feature
|
||||
|
||||
Users sometimes prefer not to include user-identifying or relevant information when creating torrents.
|
||||
|
||||
There's a new option added precisely for this purpose that excludes such details.
|
||||
|
||||
#### 🛠️Other Changes and Improvements
|
||||
|
||||
Apart from the changes listed above, there are loads of refinements considering that they have been preparing it for more than a year now!
|
||||
|
||||
Some of the noteworthy betterment include:
|
||||
|
||||
- **Better resource efficiency**
|
||||
- **Migration of code from C to C++**
|
||||
- **Ability to specify piece size when creating new torrents**
|
||||
- **Support for Qt 6**
|
||||
- **GTK client based on GTKMM**
|
||||
- **Better Web client UI, including support for mobile screens**
|
||||
- **macOS Apple silicon support**
|
||||
|
||||
You can head to its [GitHub release section][2] for full release notes.
|
||||
|
||||
### Download Transmission 4.0
|
||||
|
||||
The official repositories and Flathub do not have the latest version available yet.
|
||||
|
||||
So, you will have to download and extract the **tar.xz** file from its [official download page][3] or the [GitHub releases section][2].
|
||||
|
||||
And, build it from the source to get it installed.
|
||||
|
||||
[Transmission 4.0][3]
|
||||
|
||||
You can find packages for other platforms on the same page.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/transmission-4-release/
|
||||
|
||||
作者:[Rishabh Moharir][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/rishabh/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://news.itsfoss.com/content/images/size/w2000/2022/11/transmission-4-0.png
|
||||
[2]: https://github.com/transmission/transmission/releases/tag/4.0.0
|
||||
[3]: https://transmissionbt.com/download
|
@ -0,0 +1,83 @@
|
||||
[#]: subject: "GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago"
|
||||
[#]: via: "https://news.itsfoss.com/gnome-design-quick-access/"
|
||||
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago
|
||||
======
|
||||
|
||||
GNOME design changes makes sense, as it brings back (sort of) a similar functionality that it removed earlier.
|
||||
|
||||
![GNOME is (kind of) Bringing Back a Feature It Had Removed a Few Years Ago][1]
|
||||
|
||||
GNOME removed the application menus and indicators a few years back.
|
||||
|
||||
If you are curious, app indicators were a way of interacting with the apps running in the background from the top panel.
|
||||
|
||||
Yes, you can [add an extension for app indicators][2] to get the same functionality. But, you will no longer find the ability by default on distributions using stock GNOME desktop environment, like Fedora.
|
||||
|
||||
However, Ubuntu, some of its [official flavors][3], and other distributions like Pop!_OS support the system tray icons even though GNOME dropped them.
|
||||
|
||||
Now, after years of design changes, it looks like we might be seeing something similar.
|
||||
|
||||
### GNOME to Add a Quick Way to Check Active Apps in the Background
|
||||
|
||||
Currently, there's no quick way to find out the apps running in the background without an active window.
|
||||
|
||||
You must use the [task manager][4] or [system monitoring tools][5] for better insights.
|
||||
|
||||
With future GNOME releases (probably GNOME 44), you may expect **a feature to monitor background running apps** right from the **menu panel** of the top panel.
|
||||
|
||||
![gnome design mockup for backround app check from the notification menu][6]
|
||||
|
||||
The idea by [Allan Day][7] is still in discussion, and a [design mockup][8] has been shared. However, there is a good chance that it will be accepted.
|
||||
|
||||
This idea has also prompted developer [Georges Basile Stavracas Neto][9] to expose Flatpak's xdg-desktop-portal component, making it easy to detect running Flatpak applications.
|
||||
|
||||
> 📋 The placement or design of checking background apps is still a work in progress; what you see above may change with the final implementation.
|
||||
|
||||
### Would This Bring Back App Indicators Too?
|
||||
|
||||
Not exactly.
|
||||
|
||||
With this feature, GNOME aims to allow you to quickly see the background running apps and manage them (close them or access specific settings).
|
||||
|
||||
However, you still have a few clicks to reach this point 🖱️
|
||||
|
||||
The applet indicators or the system tray icons were a faster way to access applications running in the background, even though not every background app was listed.
|
||||
|
||||
After all, it is better than nothing.
|
||||
|
||||
And eventually, these design changes could result in an intuitive way to get app indicators back in some form.
|
||||
|
||||
_💬 What do you think about this decision with GNOME design changes for upcoming releases? Share your thoughts in the comments below._
|
||||
|
||||
**Via**: [Phoronix][10]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/gnome-design-quick-access/
|
||||
|
||||
作者:[Ankush Das][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/ankush/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/gnome-brings-mysterious-features.png
|
||||
[2]: https://itsfoss.com/enable-applet-indicator-gnome/
|
||||
[3]: https://itsfoss.com/which-ubuntu-install/
|
||||
[4]: https://itsfoss.com/task-manager-linux/
|
||||
[5]: https://itsfoss.com/linux-system-monitoring-tools/
|
||||
[6]: https://news.itsfoss.com/content/images/2023/02/background-app-running.png
|
||||
[7]: https://gitlab.gnome.org/aday
|
||||
[8]: https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/191
|
||||
[9]: https://github.com/GeorgesStavracas
|
||||
[10]: https://www.phoronix.com/news/GNOME-Monitor-Background-Apps
|
@ -0,0 +1,61 @@
|
||||
[#]: subject: "Opera Browser Plans to Integrate ChatGPT"
|
||||
[#]: via: "https://debugpointnews.com/opera-chatgpt-integration/"
|
||||
[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Opera Browser Plans to Integrate ChatGPT
|
||||
======
|
||||
|
||||
![][1]
|
||||
|
||||
**Opera browser is reportedly looking to integrate the language model ChatGPT into its desktop and mobile products.**
|
||||
|
||||
### In brief
|
||||
|
||||
- Opera browser, a popular desktop and mobile web browser is reportedly exploring integrating the language model ChatGPT into its products.
|
||||
- Microsoft recently announced the integration of OpenAI technology, the maker of ChatGPT, into its Microsoft Edge web browser, adding AI-powered features for users.
|
||||
|
||||
### Opera and ChatGPT
|
||||
|
||||
[Opera][2], a widely-used desktop and mobile web browser is set to integrate the language model ChatGPT into its software products. Opera’s parent company Kunlun Tech is behind the news, although the details of the integration remain limited. Opera offers a range of software products, including desktop web browsers, mobile web browsers, and a version of its browser designed for Chromebooks.
|
||||
|
||||
The most likely candidates for the ChatGPT integration are Opera’s main desktop browsers, including Opera browser and Opera GX, a browser designed for gamers. However, there is also potential for integration into Opera’s mobile browsers, including the regular Opera mobile browser, Opera Mini, and Opera Crypto Browser.
|
||||
|
||||
### Recent updates from Microsoft and Google
|
||||
|
||||
Microsoft made headlines this week by announcing OpenAI integration into its Microsoft Edge web browser. The integration will bring two AI-powered features, Chat and Compose, to Edge users in the future. Chat allows users to communicate directly with the AI in the browser. At the same time, Compose helps users with text composition, including writing emails and social media posts with different tones and lengths.
|
||||
|
||||
During a recent presentation, Google did not announce direct AI chatbot integration into its Chrome browser, which received a less-than-enthusiastic response.
|
||||
|
||||
### What’s next
|
||||
|
||||
Opera browser is used by hundreds of millions of users, with a 2.4% share of the global browser market, according to Statcounter. While it may trail behind Google Chrome’s 65% and Safari’s 18%, it still holds its own compared to Mozilla Firefox’s 3%.
|
||||
|
||||
Kunlun Tech is a Beijing-based company listed on the Shenzhen stock exchange. This week, Chinese search giant Baidu announced plans to integrate a ChatGPT-style bot into its search product.
|
||||
|
||||
In conclusion, the integration of ChatGPT into the Opera browser represents a significant step forward in AI-powered web browsing. As companies like Microsoft and Baidu integrate AI technology into their products, Opera is positioning itself as a leader in the field.
|
||||
|
||||
With hundreds of millions of users and a growing presence in the browser market, the integration of ChatGPT into Opera is a highly-anticipated development.
|
||||
|
||||
Via [CNBC][3]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://debugpointnews.com/opera-chatgpt-integration/
|
||||
|
||||
作者:[arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://debugpointnews.com/author/dpicubegmail-com/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://debugpointnews.com/wp-content/uploads/2023/02/opera.jpg
|
||||
[2]: https://www.opera.com/
|
||||
[3]: https://www.cnbc.com/2023/02/09/web-browser-opera-is-planning-to-incorporate-chatgpt.html
|
@ -0,0 +1,86 @@
|
||||
[#]: subject: "Verified Flatpak Apps are Coming Soon"
|
||||
[#]: via: "https://news.itsfoss.com/verified-flatpak-apps/"
|
||||
[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Verified Flatpak Apps are Coming Soon
|
||||
======
|
||||
|
||||
Flatpak apps now have a verified badge icon, only on the beta portal for now.
|
||||
|
||||
![Verified Flatpak Apps are Coming Soon][1]
|
||||
|
||||
This was already in the works since late last year when a GitHub [merge request][2] added initial support for a status verification icon on the Flathub site.
|
||||
|
||||
And now, the verified apps can be seen on Flathub's beta platform.
|
||||
|
||||
**What is it?:** It is a work-in-progress verification system for Flatpak apps on the Flathub platform that will **facilitate showing a blue check mark** beside the name of an app after it has been verified.
|
||||
|
||||
![the beta platform of flathub showcasing the various verified apps][3]
|
||||
|
||||
As you can see, currently, over 70 apps, have been added to the [verified list on the beta platform][4]. We expect this number to increase when this is made available for general use.
|
||||
|
||||
![screenshot from beta.flathub.org showing an app listed with a verified icon badge][5]
|
||||
|
||||
**How to get verified?:** The developers have to log in to [beta.flathub.org][6] with the GitHub or GitLab account linked to their app, then head to your **Developer Profile.**
|
||||
|
||||
You need to **select the app** to verify (if there are multiple) and then follow the instructions under "**Developer Settings**".
|
||||
|
||||
Furthermore, **there are concerns** over which apps should be allowed to gain verified status.
|
||||
|
||||
For instance, a Reddit user [raised concerns][7] when they noticed an unofficial client for WhatsApp had gained verified status.
|
||||
|
||||
Sure, it means that the app developer is the one maintaining/publishing the Flatpak. But **it is still a third-party app and not something from WhatsApp**.
|
||||
|
||||
You get the point.
|
||||
|
||||
> 📝 The app has since been removed from the verified list.
|
||||
|
||||
This can cause plenty of issues, especially related to copyright ones, where the [IP][8] holder could quickly **object to their property** being repackaged and used as an official-looking copy.
|
||||
|
||||
Let's see how Flathub handles situations like this when this feature is rolled out fully.
|
||||
|
||||
**When can you expect it?:** Sometime this year would be my best guess, as there has not been an official announcement giving a specified date.
|
||||
|
||||
Its implementation on Flathub's beta channel is a good sign.
|
||||
|
||||
_💬 What do you think about Flatpak apps' verified badge icons finally being tested with its beta portal? Share your thoughts in the comments down below._
|
||||
|
||||
### More from It's FOSS...
|
||||
|
||||
- 📩 Stay updated with the latest on Linux and Open Source. Get our [weekly Newsletter][9].
|
||||
- Understand the [difference between Snap and Flatpak][10].
|
||||
- 🎟️ Near California? Attend the [SCALE][11] conference from March 9-12.
|
||||
- [Upcoming code editors][12] to challenge the VS Code supremacy.
|
||||
- Promising [new distros in 2023][13].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://news.itsfoss.com/verified-flatpak-apps/
|
||||
|
||||
作者:[Sourav Rudra][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://news.itsfoss.com/author/sourav/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://news.itsfoss.com/content/images/size/w2000/2023/02/flathub-verified-apps.png
|
||||
[2]: https://github.com/flathub/website/commit/5aae6b759b15ae26c155a0c8c18f13ca0da29ee3
|
||||
[3]: https://news.itsfoss.com/content/images/2023/02/Flathub_Verified_Beta.jpg
|
||||
[4]: https://beta.flathub.org/apps/collection/verified
|
||||
[5]: https://news.itsfoss.com/content/images/2023/02/flathub-verified-app-icons.jpg
|
||||
[6]: https://beta.flathub.org
|
||||
[7]: https://www.reddit.com/r/linux/comments/10xones/comment/j7u2zgr/
|
||||
[8]: https://en.wikipedia.org/wiki/Intellectual_property
|
||||
[9]: https://itsfoss.com/signup/
|
||||
[10]: https://itsfoss.com/flatpak-vs-snap/
|
||||
[11]: https://www.socallinuxexpo.org/scale/20x
|
||||
[12]: https://news.itsfoss.com/upcoming-code-editors/
|
||||
[13]: https://news.itsfoss.com/new-distros-2023/
|
@ -1,104 +0,0 @@
|
||||
[#]: subject: "How we hired an open source developer"
|
||||
[#]: via: "https://opensource.com/article/22/2/how-we-hired-open-source-developer"
|
||||
[#]: author: "Mike Bursell https://opensource.com/users/mikecamel"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How we hired an open source developer
|
||||
======
|
||||
My team opted out of the standard algorithm coding exercise for a
|
||||
process that yielded more relevant results.
|
||||
![people in different locations who are part of the same team][1]
|
||||
|
||||
As the CEO and co-founder of [Profian][2], a start-up security company, I've been part of our effort to hire developers to work on [Enarx][3], a security project that deals with confidential computing, written almost exclusively in [Rust][4] (with a bit of Assembly). Profian has now found all the people it was looking for in this search, with a couple of developers due to start in the next few weeks. However, new contributors are absolutely welcome to Enarx, and if things continue to go well, the company will definitely want to hire more folks in the future.
|
||||
|
||||
Hiring people is not easy, and Profian had a set of specialized requirements that made the task even more difficult. I thought it would be useful and interesting for the community to share how we approached the problem.
|
||||
|
||||
### What were we looking for?
|
||||
|
||||
These are the specialized requirements I'm talking about:
|
||||
|
||||
* **Systems programming:** Profian mainly needs people who are happy programming at the systems layer. This is pretty far down the stack, with lots of interactions directly with hardware or the OS. To create client-server pieces, for instance, we have to write quite a lot of the protocols, manage the crypto, and so forth, and the tools for this aren't all very mature (see "Rust" below).
|
||||
|
||||
* **Rust:** Almost all of the project is written in Rust, and what isn't is written in Assembly language (currently exclusively x86, though that may change as we add more platforms). Rust is new, cool, and exciting, but it's still quite young, and some areas don't have all the support you might like or aren't as mature as you'd hope—everything from cryptography through multithreading libraries and compiler/build infrastructure.
|
||||
|
||||
* **Distributed team:** Profian is building a team of folks where we can find them. Profian has developers in Germany, Finland, the Netherlands, North Carolina (US), Massachusetts (US), Virginia (US), and Georgia (US). I'm in the United Kingdom, our community manager is in Brazil, and we have interns in India and Nigeria. We knew from the beginning that we wouldn't have everyone in one place, and this required people who would be able to communicate and collaborate with people via video, chat, and (at worst) email.
|
||||
|
||||
* **Security:** Enarx is a security project. Although we weren't specifically looking for security experts, we need people who can think and work with security top of mind and design and write code that is applicable and appropriate for the environment.
|
||||
|
||||
* **Git:** All of our code is stored in git (mainly [GitHub][5], with a bit of GitLab thrown in). so much of our interaction around code revolves around git that anybody joining us would need to be very comfortable using it as a standard tool in their day-to-day work.
|
||||
|
||||
* **Open source:** Open source isn't just a licence; it's a mindset and, equally important, a way of collaborating. A great deal of open source software is created by people who aren't geographically co-located and who might not even see themselves as a team. We needed to know that the people we hired, while gelling as a close team within the company, would be able to collaborate with people outside the organisation and embrace Profian's "open by default" culture, not just for code, but for discussions, communications, and documentation.
|
||||
|
||||
|
||||
|
||||
|
||||
### How did we find them?
|
||||
|
||||
As I've mentioned elsewhere, [recruiting is hard][6]. Profian used a variety of means to find candidates, with varying levels of success:
|
||||
|
||||
* LinkedIn job adverts
|
||||
* LinkedIn searches
|
||||
* Language-specific discussion boards and hiring boards (e.g., Reddit)
|
||||
* An external recruiter (shout out to Gerald at [Interstem][7])
|
||||
* Word-of-mouth/personal recommendations
|
||||
|
||||
|
||||
|
||||
It's difficult to judge between these sources in terms of quality, but without an external recruiter, we'd certainly have struggled with quantity (and we had some great candidates from that pathway, too).
|
||||
|
||||
### How did we select them?
|
||||
|
||||
We needed to measure all of the candidates against all of the requirements noted above, but not all of them were equal. For instance, although we were keen to hire Rust programmers, someone with strong C/C++ skills at the systems level would be able to pick up Rust quickly enough to be useful. On the other hand, a good knowledge of using git was absolutely vital, as we couldn't spend time working with new team members to bring them up to speed on our way of working.
|
||||
|
||||
A strong open source background was, possibly surprisingly, not a requirement, but the mindset to work in that sort of model was, and anyone with a history of open source involvement is likely to have a good knowledge of git. The same goes for the ability to work in a distributed team: So much of open source is distributed that involvement in almost any open source community was a positive indicator. Security, we decided, was a "nice-to-have" qualification.
|
||||
|
||||
We wanted to keep the process simple and quick. Profian doesn't have a dedicated HR or People function, and we're busy trying to get code written. This is what we ended up with (with slight variations), and we tried to complete it within 1-2 weeks:
|
||||
|
||||
1. Initial CV/resume/GitHub/GitLab/LinkedIn review to decide whether to interview
|
||||
2. 30-40 minute discussion with me as CEO, to find out if they might be a good cultural fit, to give them a chance to find out about us, and to get an idea if they were as technically adept as they appeared in Step 1
|
||||
3. Deep dive technical discussion led by Nathaniel, usually with me there
|
||||
4. Chat with other members of the team
|
||||
5. Coding exercise
|
||||
6. Quick decision (usually within 24 hours)
|
||||
|
||||
|
||||
|
||||
The coding exercise was key, but we decided against the usual approach. Our view was that a pure "algorithm coding" exercise beloved by many tech companies was pretty much useless for what we wanted: to find out whether a candidate could quickly understand a piece of code, fix some problems, and work with the team to do so. We created a GitHub repository with some almost-working Rust code in it (in fact, we ended up using two, with one for people a little higher up the stack), then instructed candidates to fix it, perform some git-related processes on it, and improve it slightly, adding tests along the way.
|
||||
|
||||
An essential part of the test was to get candidates to interact with the team via our chat room(s). We scheduled 15 minutes on a video call for setup and initial questions, two hours for the exercise ("open book" – as well as talking to the team, candidates were encouraged to use all resources available to them on the Internet), followed by a 30-minute wrap-up session where the team could ask questions, and the candidate could reflect on the task. This conversation, combined with the chat interactions during the exercise, allowed us to get an idea of how well the candidate was able to communicate with the team. Afterwards, the candidate would drop off the call, and we'd most often decide within 5-10 minutes whether we wanted to hire them.
|
||||
|
||||
This method generally worked very well. Some candidates struggled with the task, some didn't communicate well, some failed to do well with the git interactions – these were the people we didn't hire. It doesn't mean they're not good coders or might not be a good fit for the project or the company later on, but they didn't meet the criteria we need now. Of the developers we hired, the level of Rust experience and need for interaction with the team varied, but the level of git expertise and their reactions to our discussions afterwards were always sufficient for us to decide to take them.
|
||||
|
||||
### Reflections
|
||||
|
||||
On the whole, I don't think we'd change a huge amount about the selection process—though I'm pretty sure we could do better with the search process. The route through to the coding exercise allowed us to filter out quite a few candidates, and the coding exercise did a great job of helping us pick the right people. Hopefully, everyone who's come through the process will be a great fit and produce great code (and tests and documentation and …) for the project. Time will tell!
|
||||
|
||||
* * *
|
||||
|
||||
This article originally appeared on [Alice, Eve and Bob – a security blog][8] and is republished with permission.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/2/how-we-hired-open-source-developer
|
||||
|
||||
作者:[Mike Bursell][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/mikecamel
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/connection_people_team_collaboration.png?itok=0_vQT8xV (people in different locations who are part of the same team)
|
||||
[2]: https://profian.com/
|
||||
[3]: https://enarx.dev/
|
||||
[4]: https://opensource.com/article/21/3/rust-programmer
|
||||
[5]: https://github.com/enarx/
|
||||
[6]: https://aliceevebob.com/2021/11/09/recruiting-is-hard/
|
||||
[7]: https://www.interstem.co.uk/
|
||||
[8]: https://aliceevebob.com/
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://www.opensourceforu.com/2022/06/its-time-to-contributing-to-open-source/"
|
||||
[#]: author: "Abbinaya Kuzhanthaivel https://www.opensourceforu.com/author/abbinaya-swath/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "XiaotingHuang22"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,125 +0,0 @@
|
||||
[#]: subject: "Why Enterprises Should Opt for Platform as a Service"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/"
|
||||
[#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "onionstalgia"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Why Enterprises Should Opt for Platform as a Service
|
||||
======
|
||||
*Platform as a Service enables quick and easy creation of Web applications without the necessity of buying and maintaining the software and infrastructure underneath it. This article explains why it’s useful.*
|
||||
|
||||
Platform as a Service (PaaS) refers to cloud computing services that provide a platform for customers to develop, run and manage applications without the complexity of building and maintaining the infrastructure associated with developing and launching them. This is the core platform on which cloud native applications and supporting systems are based.
|
||||
|
||||
PaaS typically involves diverse application software infrastructure capabilities including application platforms, integration platforms, business analytics platforms, event-streaming services and mobile back-end services. In addition, it includes a set of monitoring, management, deployment and related capabilities.
|
||||
|
||||
Developers are keen on getting their environments up without waiting, while operations teams care about performance and stability. This often gives rise to some conflict between them. PaaS creates a peaceful environment for both groups. An application platform delivered as a service is described as PaaS, and is used to deploy the user code. Cloud Foundry, Cloudify and OpenShift open source environments can be used as PaaS.
|
||||
|
||||
### PaaS adoption pattern
|
||||
|
||||
Cloud computing must satisfy five essential characteristics — on demand service, access network, resource pooling, elasticity and measured services. To achieve these, cloud computing provides three kinds of service models: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).
|
||||
|
||||
The key business drivers of PaaS adoption are:
|
||||
|
||||
* Reduction of capex and opex to deliver business services
|
||||
* Minimising IT costs by improving the delivery time and quality of the application development and delivery
|
||||
* Increasing the flexibility and integration between middleware components
|
||||
|
||||
**Simple PaaS** is the entry point into the PaaS space. It allows provisioning of application services and exposes them into a self-service catalogue; it automates the deployment and meters the resources used by this service.
|
||||
|
||||
*Manage PaaS* manages the SLA and QoS aspects of the provisioned applications such as resiliency, application performance, security, etc.
|
||||
|
||||
*Programming PaaS* allows applications to integrate with external applications or public clouds, and to implement auto-scaling and cloud-bursting scenarios.
|
||||
|
||||
*Process-oriented PaaS* allows implementation of a DevOps process by creating a continuous delivery flow that automates the build, test and delivery of applications into a cloud environment.
|
||||
|
||||
In addition to these adoption patterns, there are other variations of PaaS, as listed below. These variations might align to one of the patterns explained above.
|
||||
|
||||
**iPaaS:** Integration Platform as a Service (iPaaS) is a suite of cloud services that enables development, execution and governance of integration flows connecting any combination of on-premises and cloud-based processes, services, applications and data within individuals or across multiple organisations. Examples are MuleSoft CloudHub and BizTalk.
|
||||
|
||||
**mPaaS:** Mobile Platform as a Service (mPaaS) is a provision of an interactive development environment (IDE) for the creation of mobile apps. It supports multiple mobile operating platforms.
|
||||
|
||||
**dbPaaS:** Database Platform as a Service (dbPaas) is an on-demand, secure and scalable self-service database platform that automates the provisioning and administration of databases. dbPaaS makes it easier to scale databases and makes them more reliable.
|
||||
|
||||
**IoTPaaS:** This provides common infrastructure to enable communication, security, analytics and management for heterogeneous IoT topologies. It provides simpler and agile models for building IoT solutions.
|
||||
|
||||
**bpmPaaS:** Business process management PaaS (bpmPaaS) is a complete pre-integrated BPM platform hosted in the cloud and delivered as a service. It is leveraged for the development and execution of business processes and workflow-centric applications across enterprises. Examples are Pega cloud, and OpenText Cordys cloud.
|
||||
|
||||
Some basic characteristics of PaaS are:
|
||||
|
||||
* Services to develop, test, deploy, host and maintain applications in the same integrated development environment
|
||||
* Multi-tenant architecture, in which multiple concurrent users use the same development application
|
||||
* Built-in scalability of deployed software, including load balancing and failover
|
||||
* Integration with heterogeneous platforms and systems
|
||||
* Support for development team collaboration
|
||||
* Tools to handle billing and subscription management
|
||||
|
||||
### Key open source Platforms as a Service
|
||||
|
||||
Before choosing a PaaS, enterprises must consider the following:
|
||||
|
||||
* Deployment flexibility
|
||||
* Ease of operations
|
||||
* Choice of application stacks
|
||||
* Language, database and framework support
|
||||
* Scaling capabilities
|
||||
* QoS
|
||||
* Tooling for development and operations
|
||||
* How well it fits your business
|
||||
|
||||
Let’s now take a quick look at some popular open source PaaS.
|
||||
|
||||
**Cloud Foundry:** This PaaS provides a choice of clouds, developer frameworks and application services. Cloud Foundry makes it faster and easier to build, test, deploy and scale applications.
|
||||
|
||||
It has different distributions, of which the popular ones are Pivotal and IBM. It contains application runtime and container runtime. It also has Pivotal application service and Pivotal container service.
|
||||
|
||||
**OpenShift:** This is Red Hat’s cloud computing PaaS offering. It is an application platform in the cloud, where application developers and teams can build, test, deploy and run their applications.
|
||||
|
||||
**Cloudify:** Cloudify was developed and designed on the principles of openness to power the IT transformation revolution. It enables organisations to design, build and deliver various business applications and network services. The latest version of Cloudify is 4.3, which incorporates enhanced features like advanced security, control and true self-service. Cloudify 4.3 introduced a totally new concept for container orchestration with Kubernetes.
|
||||
|
||||
| Functionality | Cloud Foundry | Cloudify | OpenShift |
|
||||
| :- | :- | :- | :- |
|
||||
| Core functionality | Cloud controller | Manager | Broker |
|
||||
| Providing third party database services | Service broker | Agent | Cartridge |
|
||||
| Routing of incoming traffic | Router | Manager | REST API |
|
||||
| Querying the state of apps | Cloud controller | CLI client | Broker |
|
||||
| Messaging | Message bus | Manager | Broker |
|
||||
| App instance management | Droplet execution agent | Agent | Node |
|
||||
| Application state management | Health manager | Manager | Broker |
|
||||
| Broker | Warden | Agent | Gear |
|
||||
| Load balancing of user requests | Droplet execution agent | Manager | Broker |
|
||||
| Framework provider | Blob store | Agent | Cartridge |
|
||||
| Technology |
|
||||
| Languages | Java, Ruby, Scala, Node.js, Groovy, Grails, PHP, Go, Python | Java, PHP, Ruby | Java, Ruby, Node.js, PHP, Python, Perl, JavaScript |
|
||||
| Databases | MongoDB, MySQL,
|
||||
PostgreSQL | MySQL, MongoDB | MongoDB, MySQL, PostgreSQL |
|
||||
| Frameworks | Spring, Rails, Grails, Play Sinatra | JavaScript, Node.js | Rails, Flask, Django, Drupal, Vertx |
|
||||
| Horizontal scaling | Yes | Yes | Yes |
|
||||
| Vertical scaling | Yes | No | Yes |
|
||||
| Auto scaling | Yes | Yes | Yes |
|
||||
|
||||
Table 1 lists the basic functionality and its corresponding Cloud Foundry, Cloudify and OpenShift architectural components. This is purely based on my views and the authenticity of the features supported needs to be validated with the cloud provider.
|
||||
|
||||
From the industry adoption statistics we can clearly make out that PaaS adoption is picking up very rapidly. PaaS enables enterprise applications to be cloud-agnostic, so that they can run on any cloud platform — whether public or private. This means that a PaaS application developed on Amazon AWS can easily be ported to Microsoft Azure, to VMWare vSphere, to Red Hat RHEV, etc.
|
||||
|
||||
PaaS is useful when multiple developers are working on a development project or when external users need to collaborate with the development process. So it is best suited for agile software development, because it eases the difficulties around rapid development and iteration of software.
|
||||
|
||||
### Acknowledgements
|
||||
|
||||
The author thanks Kiran M.R. and Raju Alluri of the digital architecture practice of Wipro Ltd for giving their time and support to this article.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/
|
||||
|
||||
作者:[Gopala Krishna Behara][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/gopalakrishna-behara/
|
||||
[b]: https://github.com/lkxed
|
@ -0,0 +1,99 @@
|
||||
[#]: subject: "A brief history of LibreOffice"
|
||||
[#]: via: "https://opensource.com/article/23/2/libreoffice-history"
|
||||
[#]: author: "Italo Vignoli https://opensource.com/users/italovignoli"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "onionstalgia"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
A brief history of LibreOffice
|
||||
======
|
||||
|
||||
In early 2009, OpenOffice.org was the main competitor to Microsoft Office in the individual office productivity suites market. The popular open source office suite's community looked forward to a November conference in Orvieto, Italy. Things were going well, and the future looked bright.
|
||||
|
||||
And then, in April of that year, Oracle announced its plans to acquire Sun Microsystems.
|
||||
|
||||
Personally, I knew it was bad news for OpenOffice.Org. Oracle had no interest in the open source suite, and I felt confident it would abandon the project. Of course, I hoped to be proved wrong at the upcoming conference. Instead, a single representative from Oracle, with no budget to speak of, arrived in Orvieto and talked vaguely about monetization and re-branding. I felt that my worst fears were confirmed, and my fellow community members agreed.
|
||||
|
||||
The community returned home from Orvieto that year and resolved to take action. The time had finally come to turn into reality what the OpenOffice.Org project had promised. We were determined to create an independent foundation to manage the project's assets and promote the development of the suite under the umbrella of the community. OpenOffice.org would no longer belong to a company but to its users and individual contributors.
|
||||
|
||||
### Building the foundation
|
||||
|
||||
At the time, the OpenOffice.org project had a presence on every continent, with language communities helping to localize and promote it. The four most important:
|
||||
|
||||
- German: The software was born in Germany, and StarDivision was based in Hamburg, so there was a natural link between the group of developers and German-speaking supporters.
|
||||
- French: The government supported the open source software.
|
||||
- Italian: The group to which I belonged.
|
||||
- Brazilian
|
||||
|
||||
At the beginning of 2010, at the initiative of the French and German language communities, the most active volunteers—together with some independent and SUSE developers—started working on a fork project. The aim was to launch an alternative project involving both the global community and the companies invested in OpenOffice.org.
|
||||
|
||||
I have over 30 years of experience working in international business and consultancy agencies. The project brought me in to manage the marketing and communication strategy.
|
||||
|
||||
In the months that followed, activity became increasingly hectic. There was a weekly teleconference meeting, as the news coming in from Star Division (the department responsible for OpenOffice.org) was increasingly negative.
|
||||
|
||||
Even with the dissolution of OpenOffice.org seemingly imminent, a conference in Budapest was confirmed by the publication of a CFP (Call for Papers). Of course, the fork project members also did nothing different from previous years. They presented their talk proposals and made travel plans.
|
||||
|
||||
### A safe place for documents
|
||||
|
||||
At the beginning of the summer, the fork was almost ready. Our group met in Budapest to gauge the situation from the OpenOffice.org side and for a first face-to-face organizational meeting.
|
||||
|
||||
The Budapest conference ran smoothly, with meetings, keynotes, and technical sessions taking place over the three-day event. Everything seemed more or less normal.
|
||||
|
||||
Everything was not normal.
|
||||
|
||||
Some attendees were a little suspicious when several leading figures failed to attend the conference's main social event, an overnight cruise on the Danube. We didn't participate in this event because we were meeting in a restaurant to discuss the final details of a new foundation. There was a lot to get right. We had to determine an announcement date and the composition of the Steering Committee that would coordinate the tasks required to bring the foundation to life.
|
||||
|
||||
### LibreOffice
|
||||
|
||||
The three weeks between the conference and the announcement of LibreOffice were hectic. I prepared the launch strategy and the text of the press release. The developers prepared the software. The application's name had just been decided a few days earlier during a teleconference (which I'd joined from Grosseto, where I was attending the Italian open source software community meeting).
|
||||
|
||||
On September 28, 2010, I distributed the press release announcing The Document Foundation and LibreOffice to a global mailing list of about 250 journalists, which I painstakingly put together using input from the public relations agencies where I worked.
|
||||
|
||||
Here is the release:
|
||||
|
||||
> The community of volunteers developing and promoting OpenOffice.Org announces an independent foundation to drive the further growth of the project. The foundation will be the cornerstone of a new ecosystem where individuals and organisations can contribute to and benefit from the availability of a truly free office suite. It will generate increased competition and choice for the benefit of customers and drive innovation in the office suite market. From now on the OpenOffice.Org community will be known as The Document Foundation.
|
||||
|
||||
We invited Oracle to become a member of the foundation and donate the brand the community had grown during the previous ten years. Pending the decision, we chose the brand LibreOffice for the software going forward.
|
||||
|
||||
Reactions to the announcement from the press were very positive. On the other hand, companies and analysts tended to be suspicious of an office suite governed by a community, an entity they never fully understood because of its flat, meritocratic organization.
|
||||
|
||||
In the two weeks following the announcement, 80 new developers joined the project, disproving the predictions of those who considered it unrealistic to launch a fork relying only on SUSE and Red Hat developers. Unsurprisingly, most of the language communities switched to LibreOffice.
|
||||
|
||||
LibreOffice is built from the source code of OpenOffice.org. The new functionalities are integrated in the source code of Go-OO and not on OOo.
|
||||
|
||||
For this reason, the first version of LibreOffice—announced on January 25, 2011—was 3.3 to maintain consistency with OpenOffice.org. This was useful for users who had migrated to the new suite since the first version. The software was still a little immature due to significant technical debt that had to be accounted for. This caused problems and instability that would largely be corrected through code cleaning and refactoring throughout the 3.x and 4.x versions. By versions 5.x and 6.x, the source code was considered stable, which allowed the user interface to be improved and the development of mobile and cloud versions.
|
||||
|
||||
In the spring of 2011, Oracle transferred the OpenOffice.org source code to the Apache Software Foundation. The project lasted for three years. The last new version was nearly a decade ago.
|
||||
|
||||
### The future is open
|
||||
|
||||
The formation process of The Document Foundation ended in early 2012, with registration by the Berlin authorities on February 17, 2012. This was a lengthy process because the founders wanted volunteer members of the project also to be members of the foundation based on contributions. This detail hadn't been foreseen for foundations under German law, so it required several revisions of statutes to comply with this condition.
|
||||
|
||||
The foundation's first two activities were the membership committee's election. This is the structure that decides on the transition from mere volunteer to member of The Document Foundation on the basis of contributions. There are five members and three deputies. Finally, there's a Board of Directors, which steers the foundation administratively and strategically, consisting of seven members and three deputies.
|
||||
|
||||
At the end of 2012, the foundation hired its first employee. This employee was Florian Effenberger, who was later promoted to executive director. Today, the team has a dozen members who take care of day-to-day activities such as coordinating projects, administration, network infrastructure management, software releases, mentoring of new developers, coordination of quality assurance, user interface evolution, and marketing and communications.
|
||||
|
||||
Right now, the foundation is looking for developers to handle tasks that do not fit the objectives of enterprise customers, such as RTL language management and accessibility. These features aren't developed by the companies in the LibreOffice ecosystem, which offer them feature development services, Level 3 support, and Long Term Support versions of the software optimized for enterprise needs.
|
||||
|
||||
More than 12 years after the announcement of LibreOffice and The Document Foundation, we can say that we have achieved our goal of developing an independent free and open source (FOSS) project. Our project is based on an extended community of individual volunteers and companies contributing according to their abilities. These participants help create the unmatched free office suite and support open standards by adopting and evolving the only true standard office document format on the market (Open Document Format, or ODF) while also ensuring excellent compatibility with the proprietary OOXML format.
|
||||
|
||||
The sustainability of this model is a day-to-day problem. There's severe competition from big tech firms. We're always searching for a balance between those who would like everything to be cost-free and those who would like each user to contribute according to their ability. No matter what, though, LibreOffice is an open source office suite, providing added value above and beyond its competition.
|
||||
|
||||
Try LibreOffice. Donate. Support it at home and work. Tell your friends about it. LibreOffice is the open source office solution that ensures you always have access to your data and control over your creativity.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/libreoffice-history
|
||||
|
||||
作者:[Italo Vignoli][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/italovignoli
|
||||
[b]: https://github.com/lkxed/
|
||||
|
@ -0,0 +1,91 @@
|
||||
[#]: subject: "How the Gherkin language bridges the gap between customers and developers"
|
||||
[#]: via: "https://opensource.com/article/23/2/gherkin-language-developers"
|
||||
[#]: author: "David Blackwood https://opensource.com/users/david-blackwood"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How the Gherkin language bridges the gap between customers and developers
|
||||
======
|
||||
|
||||
Communicating with software developers can often be a burdensome task, especially when people lack technical knowledge and technical vocabulary. This is why project managers often use [user stories][1] and the versatile system metaphor_._
|
||||
|
||||
You can assist communication further by utilizing technology designed to facilitate discussions between a project's stakeholders and developers.
|
||||
|
||||
### The Cucumber framework
|
||||
|
||||
Cucumber is an open source framework that enables the creation of automated software tests using an easy-to-write and common language_._ It's based on the concept of [behavior-driven development (BDD)][2], which dictates that creating software should define how a user wants an application to behave when specific conditions are true.
|
||||
|
||||
The Cucumber framework isn't "technology" in the modern sense. It's not a collection of bits and bytes. Instead, it's a way of writing in natural language (English, in the case of this article, but so far Gherkin has been translated to over 70 languages). When using the Cucumber framework, you aren't expected to know how to read or write code. You only need to be able to write down ideas you have about how you work. You should also document how you want technology to work for you, using a set of specific terms and guidelines.
|
||||
|
||||
### What is the Gherkin language?
|
||||
|
||||
Cucumber uses Gherkin as a means to define use cases. It's primarily used to generate unambiguous project requirements_._ In other words, its purpose is to allow users to describe precisely what they require software to do, leaving no room for interpretation or exception. It helps you think through the process of a transaction with technology and then helps you write it down in a form that translates into programmer logic.
|
||||
|
||||
Here's an example:
|
||||
|
||||
```
|
||||
Feature: The Current Account Holder withdraws money
|
||||
Scenario: The account in question is not lacking in funds
|
||||
Given that the account balance is £200
|
||||
And the debit card is valid
|
||||
And the cash machine contains enough money
|
||||
When the Current Account Holder requests £50
|
||||
Then the cash machine dispenses £50
|
||||
And the account balance is £150
|
||||
And the debit card is returned
|
||||
```
|
||||
|
||||
As you can see, this is a highly specific scenario in which an imaginary user requests £50, and the ATM provides £50 and adjusts the user's account balance accordingly. This scenario is just one part of an ATM's purpose, and it only represents a specific component of a person's interaction with a cash machine. When a programmer is given the task to program the machine to respond to a user request, this clearly demonstrates what factors are involved.
|
||||
|
||||
#### What are Gherkin keywords?
|
||||
|
||||
The Gherkin syntax makes use of five indispensable statements describing the actions needed to perform a task:
|
||||
|
||||
- **Feature**: denotes a high-level description of any given software function
|
||||
- **Scenario**: describes a concrete _example_
|
||||
- **Given**: explains the initial context of the system
|
||||
- **When**: specifies an event or action
|
||||
- **Then**: describes an expected outcome, or a result
|
||||
- **And (or but)**: increases text fluidity
|
||||
|
||||
By making use of these simple keywords, customers, analysts, testers, and software programmers are empowered to exchange ideas with terminology that's recognizable by all.
|
||||
|
||||
### Executable requirements and automated testing
|
||||
|
||||
Even better, _Gherkin requirements are also executable._ This is done by mapping eachand every keyword to its intended (and clearly stated) functionality. So, to keep with the example above, anything already implemented could automatically be displayed in green:
|
||||
|
||||
```
|
||||
When the Current Account Holder requests £50*
|
||||
Then the cash machine dispenses £50*
|
||||
And the account balance is £150
|
||||
And the debit card is returned
|
||||
```
|
||||
|
||||
By extension, Gherkin enables developers to translate requirements into testable code. In practice, you can use specific phrases to check in on your software solutions! If your current code isn't working properly, or a new change has accidentally caused a software error (or two or three) then you can easily pinpoint problems before proceeding to repair them.
|
||||
|
||||
### Conclusion
|
||||
|
||||
Thanks to the Gherkin syntax, your customers will no longer be in a pickle. You can bridge the divide between businesses and developers and deliver outstanding products with greater confidence than ever before.
|
||||
|
||||
Find out more about Gherkin by visiting the [Cucumber website][3] or its [Git repository][4].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/gherkin-language-developers
|
||||
|
||||
作者:[David Blackwood][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/david-blackwood
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://softwareplanetgroup.co.uk/user-stories-bridging-the-gap-between-customers-and-developers-updated/
|
||||
[2]: https://opensource.com/article/19/2/behavior-driven-development-tools
|
||||
[3]: https://cucumber.io/docs/gherkin/
|
||||
[4]: https://github.com/cucumber/docs
|
@ -0,0 +1,87 @@
|
||||
[#]: subject: "3 types of leadership for open organizations"
|
||||
[#]: via: "https://opensource.com/article/23/2/leadership-open-organizations"
|
||||
[#]: author: "Bryan Behrenshausen https://opensource.com/users/bbehrens"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
3 types of leadership for open organizations
|
||||
======
|
||||
|
||||
In the classic movie _Born Yesterday_, a crime boss repeatedly demonstrates his leadership style by bellowing, "Do what I'm tellin' ya!" in a loud, threatening voice. It's entertaining in a comedy, but it would be a recipe for failure and getting ignored in an open organization.
|
||||
|
||||
In this article, I review forms of leadership that can be effective in an open organization. Remember that these leadership forms do not exist in a vacuum or silos. To be an effective manager, you want to mix and match techniques from each leadership style based on the requirements of a situation.
|
||||
|
||||
These three approaches to leadership are helpful for open organizations.
|
||||
|
||||
### Servant leadership
|
||||
|
||||
There is a saying that politicians want to get elected either to be something or to do something. This adage applies to any type of leader. Some leaders simply want to be in command. While all leaders are ambitious, for this type of leader, satisfying their ambition is the primary goal. The acquisition of power is an end unto itself; once they have it, they may be uninterested in using it to solve problems or build something. Anything that the organization achieves looks like a personal triumph to them.
|
||||
|
||||
By contrast, when you're a servant leader, you see your leadership role as a means to serve people. In the political world, you would view public service as not a cliche but as an opportunity to help the public. As a servant leader, you work to improve things for the people you lead and are primarily concerned about the welfare of those around you.
|
||||
|
||||
Servant leadership is also contagious. By focusing on the welfare and development of the people you lead, you're growing the next generation of servant leaders. As a servant leader, you're not interested in taking all the credit. For example, when legendary baseball manager Casey Stengel was congratulated for winning a league championship, he famously remarked, "I couldn't have done it without my players." One of his greatest skills as a manager was maximizing each player's contributions to benefit the whole team.
|
||||
|
||||
### Quiet leadership
|
||||
|
||||
For the past several years, we've been living in the age of the celebrity CEO. They are easy to recognize: They are brash and loud, they promote themselves constantly, and they act as if they know the answer to every problem. They attempt to dominate every interaction, want to be the center of attention, and often lead by telling others what to do. Alice Roosevelt Longworth described her father, US President Theodore Roosevelt, as someone who "wanted to be the corpse at every funeral, the bride at every wedding, and the baby at every christening." Roosevelt was an effective leader who did extraordinary things, such as starting the US National Park Service and building the Panama Canal, but he was anything but quiet.
|
||||
|
||||
In contrast, when you're a quiet leader, you lead by example. You don't fixate on problems; instead, you maintain a positive attitude and let your actions speak for themselves. You focus on what can be done. You lead by solving problems and by providing an example to your team. When faced with unexpected issues, the quiet leader doesn't spend time complaining but looks for solutions and implements them.
|
||||
|
||||
### Open leadership
|
||||
|
||||
As a servant leader, you work to assist the members of your organization in growing into leaders. Quiet leaders lead by example. Servant leaders and quiet leaders do not act in an autocratic manner. Open leaders combine many of these characteristics.
|
||||
|
||||
An open leader is also not a top-down autocratic leader. As an open leader, you succeed by creating organizations in which teams can thrive. In other words, as an open leader, you create a framework or environment in which your organization can achieve the following goals according to [The Open Organization Definition][1]:
|
||||
|
||||
- **Greater agility:** In an open organization, all team members have a clear understanding of the organization's goals and can, therefore, better work together to achieve those goals.
|
||||
- **Faster innovation:** In an open organization, ideas are heard (and reviewed and argued over) regardless of their origin. Ideas are not imposed on the organization by its leaders.
|
||||
- **Increased engagement:** Because members of the organization can contribute to decisions about the organization's direction, they have a sense of ownership for the team's goals.
|
||||
|
||||
The Open Organization defines the following five characteristics as basic tenants of open organizations:
|
||||
|
||||
- **Transparency:** The organization's decision-making process is open, as are all supporting project resources. The team is never surprised by decisions made in isolation.
|
||||
- **Inclusivity:** All team members are included in discussions and reviews. Rules and protocols are established to ensure that all viewpoints are reviewed and respected.
|
||||
- **Adaptability:** Feedback is requested and accepted on an ongoing basis. The team continually adjusts its future actions based on results and inputs.
|
||||
- **Collaboration:** Team members work together from the start of a project or task. Work is not performed in isolation or in silos and then presented to the rest of the team for input.
|
||||
- **Community:** Team members have shared values regarding how the organization functions. Team leaders model these values. All team members are encouraged to make contributions to the team.
|
||||
|
||||
### Putting leadership styles to work
|
||||
|
||||
How can you, as an open leader, incorporate the characteristics of servant and quiet leadership?
|
||||
|
||||
In an open organization, to support an inclusive community, you function as a mentor. Just as a servant leader acts to teach and cultivate future servant leaders, you must walk the walk, leading by example, ensuring transparency and collaboration, and operating according to shared values.
|
||||
|
||||
How can a quiet leader contribute to an open organization? Open organizations tend to be, for lack of a better word, noisy. Communication and collaboration in an open organization are constant and can sometimes be overwhelming to people not accustomed to it. The ownership felt by members of open organizations can result in contentious and passionate discussions and disagreements.
|
||||
|
||||
Quiet leaders with a positive outlook tend to see paths forward through seemingly contradictory viewpoints. Amid these discussions, a quiet leader cuts through the noise. As a calming influence on an open organization, a quiet leader can help people get past differences while driving solutions.
|
||||
|
||||
### Further resources
|
||||
|
||||
- [The Center for Servant Leadership][2]
|
||||
- ["The quiet leader and how to be one,"][3] Harvard Business School blog
|
||||
- ["How to recognize silent leaders and encourage their growth in your organization,"][4] G&A Partners blog
|
||||
- ["What is The Open Organization,"][5] opensource.com
|
||||
- [_The Open Organization Definition_][6] [eBook], opensource.com
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/leadership-open-organizations
|
||||
|
||||
作者:[Bryan Behrenshausen][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/bbehrens
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://theopenorganization.org/definition/open-organization-definition/
|
||||
[2]: https://www.greenleaf.org/what-is-servant-leadership/
|
||||
[3]: https://hbswk.hbs.edu/item/the-quiet-leaderand-how-to-be-one
|
||||
[4]: https://www.gnapartners.com/resources/articles/silent-leadership
|
||||
[5]: https://opensource.com/open-organization/resources/what-open-organization
|
||||
[6]: https://opensource.com/open-organization/resources/open-org-definition
|
@ -0,0 +1,95 @@
|
||||
[#]: subject: "What an open license means to gamers"
|
||||
[#]: via: "https://opensource.com/article/23/2/what-open-license-means-gamers"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
What an open license means to gamers
|
||||
======
|
||||
|
||||
When it was released over 20 years ago, the Open Gaming License 1.0a (OGL) changed the tabletop gaming industry. It enabled publishers to use portions of the D&D rules, verbatim, in their own game books. It guaranteed that the owner of the D&D brand wouldn't sue you for creating and selling modular rules and adventures for the D&D game. And more importantly, it became a promise of collaboration for the gaming community. When you wanted to broadcast to other players that you were willing and eager to share ideas, you included the OGL in your game book, marking your game as open.
|
||||
|
||||
Recently, Wizards of the Coast attempted to revoke the Open Gaming License 1.0a, apparently on the grounds that legally the word "perpetual" isn't the same as "irrevocable". Luckily, the gaming community united and defended the license, and in the end Wizards of the Coast acquiesced. As a sign of good faith that [came too late for many players][1], Wizards of the Coast [released the System Reference Document (SRD)][2], a subset of the rules published in the hardcover D&D book, into the Creative Commons.
|
||||
|
||||
In essence, the fifth edition of the world's first role-playing game (D&D) no longer belongs to Wizards of the Coast. It belongs to its community of players.
|
||||
|
||||
As an open source enthusiast, that makes a lot of sense to me, but I admit that for most people it probably seems odd that a corporation would be compelled by its community to surrender ownership of its main product. It's worth noting that D&D probably wouldn't still be around today if it hadn't maintained an open license for nearly 20 years (it wandered away from this during its 4th edition, but hastily course-corrected for the 5th edition). It's an important turn of events, not only gamers, but everyone invested in the idea of open culture and open source.
|
||||
|
||||
### What open licensing means to gamers
|
||||
|
||||
Since the Open Gaming License was released in the early 2000s, there have been hundreds of games and adventures and supplements and source books that were never obligated to use the OGL. They were written from scratch using original language, never borrowing from a System Reference Document in any direct way. Just as there were lots of roleplaying supplements back in the 80s that _happened_ to work with that one game by TSR, these books are independent material that often _happen_ to work with existing systems. But authors chose to use the OGL 1.0a because they recognized that sharing ideas, mechanics, and content was what tabletop roleplaying is all about. It's what it's always been about. Getting together with friends, some old and some new, and inspiring each other. That fellowship extended to the computer screen once digital technology and its infrastructure got good enough to facilitate extended video and voice calls, and to provide emulated tabletops, and so the pool of [potential friendships][3] got even bigger. The OGL 1.0a was a document you could copy and paste into your book as a sign that you wanted to collaborate. You were inviting people to your writer's desk and to your gaming table.
|
||||
|
||||
**[ Related read: [Why sysadmins should license their code for open source][4] ]**
|
||||
|
||||
For a lot of gamers, the Open Gaming License 1.0a also defined the word "open". Being open is different than what we're used to. There's a lot of implied openness out there. Sure, you're allowed to dress up as your favourite Star Wars character—until Disney says otherwise. And maybe you can write some fan fiction based around your favourite TV series—as long as you don't sell it.
|
||||
|
||||
But the OGL 1.0a tells you exactly what you can use, and reference documents provide rules you can freely copy and paste into your own work, and then other authors can use your content to build up something cool. And nobody's restricted from selling their work, so it literally meant people could turn their hobby into their day job. And nobody could take that away.
|
||||
|
||||
### What "open" means for everyone
|
||||
|
||||
In the software world, the definition of "open" is ardently protected by organizations like the [Open Source Initiative][5]. But for many gamers, that definition was a function of the Open Gaming License 1.0a. And Wizards of the Coast was trying to redefine it.
|
||||
|
||||
The term "open" is arguably best defined by the Free Software Foundation, which ironically doesn't use the term "open" and prefers "free" instead. Here's how the FSF defines the term "free":
|
||||
|
||||
- The freedom to run code as you wish, for any purpose.
|
||||
- The freedom to study code to understand how it works, and to change it so it works better for you.
|
||||
- The freedom to redistribute copies of the original code.
|
||||
- The freedom to distribute copies of your modified code to others.
|
||||
|
||||
Extrapolating this to culture, you have similar concepts, including the freedom to share, the freedom to change and adapt, and the freedom to receive recognition for the work you've contributed.
|
||||
|
||||
### 3 open licenses gamers need to know
|
||||
|
||||
If you're a gamer who's confused about open licensing, don't let the recent attempt to revoke the Open Gaming License fool you. The important thing to remember is that an open community can exist with or without a corporate sponsor. You don't need the legal system to create an open gaming environment, but in today's world you may need a legal system to defend it. And there are licenses out there to help with that.
|
||||
|
||||
### 1. Creative Commons
|
||||
|
||||
The [Creative Commons (CC) license][6] is an agreement you can apply to something you've created, explicitly granting other people permission to redistribute and maybe even remix your work. The CC license is modular, so you get to decide what permissions you grant. There's an online "quiz" at [creativecommons.org/choose][7] to help you pick the right license for your project.
|
||||
|
||||
### 2. GNU Free Documentation
|
||||
|
||||
The 90s RPG **Dead Earth** was published using the GNU Free Documentation license, and it makes sense when you consider that most tabletop games are essentially just a set of rules. Game rules are essentially the "code" of a game written in natural language, so a license intended for technical documentation might make some sense for a game. The GNU Free Documentation license is a modern license, acknowledging that many documents exist only online as wiki pages, or that they may also be licensed under a Creative Commons license. It's also got provisions for the difference between making a personal copy of a book and printing a book by the hundreds.
|
||||
|
||||
To find out more about the GNU Free Documentation license, visit [gnu.org/licenses/fdl-1.3.txt][8].
|
||||
|
||||
### 3. Open RPG Creative (ORC) License
|
||||
|
||||
The ORC license doesn't yet exist, but it's being formulated, in the open and with public participation, by well-known game publisher Paizo. This license is aiming to replace the OGL with legal text that recognizes the unique needs of a gaming system, in which trademarks and copyrighted material (such as lore, a fictional pantheon, the names of magic spells, and so on) intermingle. The ORC license seeks to make it possible for game publishers to explicitly allow and foster participation and ownership for its community, while also retaining control of the fictional world in which their own version of the game is set. Once completed, the ORC license will be placed in the trust of a non-profit foundation so that no company, in the future, can claim ownership of it with the aim of revoking or altering it.
|
||||
|
||||
### An open systems reference document
|
||||
|
||||
The right license guarantees that others can build upon what you've created. For tabletop role-playing games, the thing being created is a set of rules. In the context of a game, a "rule" is an agreement all the players make with one another to define constraints for what you're "allowed" to do during the game. Of course, it's just a game so you can literally do whatever you want, but the rules define what you can expect as a result.
|
||||
|
||||
It's generally acknowledged that game rules aren't subject to copyright. They are seen as community property, but the literal words used to describe those rules are written by someone, and so the author of a rulebook does hold the copyright to their personal expression of a rule. But opening up copyright material for re-use is exactly what licenses were created for, and so a rulebook distributed under an open source license means that you can copy and paste text straight from that rulebook into your own publication without betraying anyone's trust.
|
||||
|
||||
The [system-reference-document.org][9] project is working to preserve the D&D 5.1 rules (called the "System Reference Document") and to forge ahead with revisions as developed by the community. Visit the site today to download the open source D&D rules. Read them over, play a few games, and take note of what's confusing and what doesn't seem to work. Think about what you'd change. Maybe you don't like how passive perception works (wouldn't it be better as a codified reaction that could override a surprise effect?), or maybe the character build process is confusing (surely it could be delivered as a linear process of requirements?), or maybe there's something else. Now, thanks to open licensing, and to projects like systems-reference-document.org, you can help change the issues you have with the game.
|
||||
|
||||
### Open means open
|
||||
|
||||
For many of us, open source and open culture are the default. It feels unnecessary and self-important to declare a license for the work we put out into the world. But it's important to remember that not everyone knows your intent. When you release something to the world with the intent for it to be reused, shared, and maybe even remixed, apply an open license to it as a way of reassuring your collaborators-to-be that you support common culture, creativity, and open source. It might seem simple to quickly write your own statement of intent, call it a legal license, and paste it into your document, but if the fight to preserve the OGL has taught us anything, it's that the language of the legal system is not easily learned. Use a trusted license that has a community of stakeholders behind it, so that should it ever be threatened, you have a loud and collective voice to use in its defense.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/what-open-license-means-gamers
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://koboldpress.com/project-black-flag-update-sticking-to-our-principles?utm_source=opensource.com
|
||||
[2]: https://www.dndbeyond.com/attachments/39j2li89/SRD5.1-CCBY4.0License.pdf
|
||||
[3]: https://opensource.com/article/21/3/open-source-streaming
|
||||
[4]: https://opensource.com/article/23/1/why-sysadmins-should-license-code-open-source
|
||||
[5]: http://opensource.org
|
||||
[6]: https://opensource.com/article/20/1/what-creative-commons
|
||||
[7]: https://creativecommons.org/choose/
|
||||
[8]: https://www.gnu.org/licenses/fdl-1.3.txt
|
||||
[9]: https://github.com/system-reference-document/
|
@ -0,0 +1,58 @@
|
||||
[#]: subject: "How open source leaders can foster an inclusive environment"
|
||||
[#]: via: "https://opensource.com/article/23/2/open-source-leaders-inclusive-environment"
|
||||
[#]: author: "Kate Carcia Poulin https://opensource.com/users/kcarcia"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How open source leaders can foster an inclusive environment
|
||||
======
|
||||
|
||||
Open source leaders can foster inclusive communities for newcomers by creating belonging, providing opportunities, and showing support. They understand the intricacies of submitting code and making connections with other community members. In doing so, they build credibility and gain influence. This experience is invaluable to contributors who want to participate but don't know where to start.
|
||||
|
||||
A few years ago, I found myself in this daunting position when I began managing a team active in the Linux kernel community without any experience in kernel myself. The complex code base, expansive email archives, and high-stakes communications intimidated me. When new kernel developers on my team expressed similar feelings, I realized my experience was ubiquitous. For those supporting contributors or those seeking to contribute themselves, the path to entry is not always clear and can feel unattainable.
|
||||
|
||||
### 4 strategies for inclusive leadership
|
||||
|
||||
Open source leaders can have an impact by creating pathways for those looking to integrate into the community. The strategies covered in this article can be applied in formal [mentoring][1] or [coaching][2] relationships but are just as applicable in day-to-day interactions. Seemingly minor exchanges often have the most significant impacts when fostering inclusivity in an environment.
|
||||
|
||||
### Approach with curiosity
|
||||
|
||||
Someone with less experience or coming from a non-traditional background may solve problems in unexpected or different ways. Reacting to those differences with judgment or criticism can create an unsafe environment for learning in communities that often have a steep knowledge curve. For example, long-time contributors to the Linux kernel understand its rich history. This means they have an implied understanding of community decisions and reactions. New contributors must build this knowledge but can only effectively do so if they feel safe taking necessary risks to grow their skill set.
|
||||
|
||||
Open source leaders can support newcomers as they learn by approaching them with curiosity. Consider asking questions like, "Can you help me understand why you took this approach?" rather than declaring proposed solutions "right or wrong". Questions open a dialog for continued learning rather than shutting down ideas that are an important aspect of exploration. This process also broadens the leader's viewpoint, who can learn by considering fresh perspectives.
|
||||
|
||||
### Identify and share learning opportunities
|
||||
|
||||
Open source leaders can identify projects suitable for others to gain technical expertise and learn community processes. In creating opportunities for others, leaders also create more opportunities for themselves. This is because they make more time to explore new endeavors while continuing to advance their work through delegation. As leaders grow, their ability to enable others around them to succeed becomes just as critical as their direct contributions.
|
||||
|
||||
Knowing that [failure][3] is a part of learning, think about identifying projects where newcomers can safely fail without drastic consequences. In the Linux kernel, for example, there are certain parts of the code base where small changes can have disastrous consequences. Consider projects where small wins are achievable to help newcomers build confidence and feel empowered without high stakes. Make these ideas accessible by sharing them at conferences, in email forums, or in any way your community advertises how to become involved.
|
||||
|
||||
### Demonstrate vulnerability
|
||||
|
||||
Having more experience doesn't mean you know everything. More often than not, even the most experienced Linux kernel contributors I've worked with are humbled by new challenges in uncharted subsystems. It's common for community members with less experience to view more experienced community members as having it all figured out. But having experience is about being adept at figuring out what you don't know. If you are in a position of authority and regarded as an expert, demonstrating vulnerability by sharing personal experiences of struggle and perseverance can be encouraging to those dealing with similar feelings.
|
||||
|
||||
### Vouch for others
|
||||
|
||||
Introduce newcomers to your network. Connect them with community members with expertise in areas that pique their interests. Say their name in public forums and call out the excellent work they are doing. As a respected leader, your endorsement can help them build connections and trust within the community.
|
||||
|
||||
We can have rich and diverse communities by building in inclusivity. It is my hope that open source leaders will consider these suggestions because those you lift into the community will someday be able to extend a hand to others.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/open-source-leaders-inclusive-environment
|
||||
|
||||
作者:[Kate Carcia Poulin][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/kcarcia
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/22/8/mentoring-power-multiplier
|
||||
[2]: https://enterprisersproject.com/article/2021/4/it-leadership-how-to-coach?intcmp=7013a000002qLH8AAM
|
||||
[3]: https://opensource.com/article/20/11/normalize-failure
|
@ -1,143 +0,0 @@
|
||||
[#]: subject: "3 steps for managing a beginner-friendly open source community"
|
||||
[#]: via: "https://opensource.com/article/21/8/beginner-open-source-community"
|
||||
[#]: author: "Isabel Costa https://opensource.com/users/isabelcmdcosta"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
3 steps for managing a beginner-friendly open source community
|
||||
======
|
||||
As a member of an open source project, there's a lot you can do to help
|
||||
beginners find a way to contribute.
|
||||
![Working from home at a laptop][1]
|
||||
|
||||
When someone is new to contributing to open source, the best place to start is often beginner-friendly bugs and issues. But before they can do that, they have to be able to find those kinds of issues. As a member of an open source project, there's a lot you can do to help beginners find a way to contribute.
|
||||
|
||||
Bearing this in mind, the [AnitaB.org open source community][2] prioritizes making our community beginner-friendly. We have initiatives to ensure that we're inclusive for contributors at different levels of experience and for different types of contributions that don't only relate to coding.
|
||||
|
||||
I recently presented some of the community work we do at the [AnitaB.org][3] community at [Upstream 2021][4], the Tidelift event, which kicked off Maintainer Week, a weeklong celebration of open source maintainers. I discussed how there are three main parts to our strategy:
|
||||
|
||||
* How we communicate
|
||||
* Projects and issues
|
||||
* Open source programs
|
||||
|
||||
|
||||
|
||||
### How we communicate
|
||||
|
||||
Transparency is such an essential part of open source, and we apply transparency principles to our approach to communication. In practical terms, this means that all our community sessions are run openly, affect how we've set up Zulip chat and how we provide documentation.
|
||||
|
||||
#### **Open sessions**
|
||||
|
||||
Anyone can join our sessions and discuss topics related to our community. They can participate in discussions or just listen. These are available for everyone to see in our community calendar. We usually only use audio in these calls, which we've found can make people feel more comfortable participating.
|
||||
|
||||
We host project-focused sessions and a couple of category-related sessions, where people from different areas can discuss the same project and help improve our processes. Occasionally, we have "Ask Me Anything" sessions, where anyone can come and ask questions about anything related to open source.
|
||||
|
||||
We take notes of all sessions in a shared document and share the summary and a document link in [our Zulip][5].
|
||||
|
||||
#### **Our Zulip chat**
|
||||
|
||||
The open source Zulip chat platform is our primary community communication channel, although we also use the comments section on issues and pull requests on Github. In general, we have disabled private messaging to make sure we are as transparent as possible. We have only a few exceptions to this rule, where we have private streams for admins dealing with the logistics of the programs we run. We've found this approach is more welcoming, and it also enables us to have more visibility into conduct violations in the public chat.
|
||||
|
||||
We share all session summaries on the Zulip chat, including the main points discussed, action items, and documentation. This process might sound like an obvious requirement, but I've been surprised at how many open source projects don't provide notes so that people who did not attend can remain informed.
|
||||
|
||||
On Zulip, we discuss project roadmaps, answer questions and queries from the community, and actively **promote ways for people to contribute and where they can contribute. **Sometimes we celebrate contributors' wins—whether it's to highlight the first PR they have tested, reviewed, or the excellent work our volunteers do.
|
||||
|
||||
#### **Documentation**
|
||||
|
||||
We try to keep **open documentation about our processes**, such as FAQs, so those community members can learn at their own pace and in their own time about the community. This is intended to give them an idea of how we work and what type of work we do before reaching out to us.
|
||||
|
||||
### Projects and issues
|
||||
|
||||
Regarding our projects and issues management, we encourage multiple ways to contribute, create specific issues for first-timers only, and try to have an easy setup for projects.
|
||||
|
||||
#### **Multiple ways to contribute**
|
||||
|
||||
We make an effort to create **issues that require different contributions** such as documentation, testing, design, and outreach. This is to provide ways for anyone to contribute regardless of their experience level and area of interest. It helps the community get involved, and we've found that it enables members to work their way up and contribute to some low-effort but valuable tasks.
|
||||
|
||||
Types of contributions we promote are:
|
||||
|
||||
* Coding tasks that range in complexity.
|
||||
* Quality assurance tasks—where contributors can test our apps or pull requests and report bugs.
|
||||
* Design sessions where members can participate in discussions. Also, opportunities to create mock-ups and redesign parts of our apps, and explore user experience improvements.
|
||||
* Outreach tasks, we primarily promote on Zulip, where we suggest blogging to our Medium publication about their open source experiences and their contributions.
|
||||
* Documentation tasks that can include general community documentation or our project's documentation on Docusaurus.
|
||||
|
||||
|
||||
|
||||
#### **First-timers only issues**
|
||||
|
||||
We label some **issues as "first-timers only."** These are for people who have not contributed yet to the issue's repository. Labeling issues also enable us to have work for people beginning their open source journey during times of contributor influx, for example, during [Google Summer of Code (GSoC)][6].
|
||||
|
||||
Sometimes these might be "low-hanging fruit" that can get them acquainted with the process of contributing and submitting pull requests.
|
||||
|
||||
#### **Easy project setup**
|
||||
|
||||
We also care about having a **beginner-friendly setup **for our projects. We notice that the most active project is generally the easiest to set up. We know that contributing to a project you aren't familiar with can take a lot of effort and make or break the experience of contributing.
|
||||
|
||||
We try to provide instructions on how to run our projects on multiple operating systems. In the past, we had some projects with separate instructions to run on Unix environments, and we noticed contributors having difficulties running these projects on Windows. We've improved since then to avoid confusion among contributors who would ask for help on our Zulip.
|
||||
|
||||
We have been improving the README for one of our most active projects, [mentorship-backend][7], according to contributors' experience. One of the struggles for beginners in this project was setting part of the environment variables related to configuring an email account to enable the backend functionality to send emails. However, because this feature was not critical for local development, by default, we made the email setup optional so that emails, instead of being sent to users, were printed to the terminal. This approach still made the emails visible to the contributor. Similar to this change, we made [the SQLite database][8] the default for local development to avoid additional setup for the Postgres database, even though we use this in our deployed version.
|
||||
|
||||
We have noticed that some contributors have struggled to contribute to one of our projects, [bridge-in-tech-backend][9], where its setup is complicated and includes many more steps than [mentorship-backend][7]. Since we noticed this in one of our open source programs, we have been exploring improving its structure.
|
||||
|
||||
For most of our projects, we also provide a live or bundled version of the apps so that contributors can test the project without setting it up. This helps us provide a way for contributors who are not interested or familiar with the development setup to try the most recent version of our apps and contribute by reporting any bugs found. We have the links to these apps deployed on our [Quality Assurance guide][10].
|
||||
|
||||
### Open source programs
|
||||
|
||||
We organize two main programs in our community: Open Source Hack (a one-month program) and Open Source Ambassadors (a six-month program).
|
||||
|
||||
#### **Open Source Hack (OSH)**
|
||||
|
||||
In this program, we create issues in multiple categories of contributions—Documentation, Coding, Outreach, Testing, and Design (similar to the [Google Code-in][11] contest). Participants can contribute and receive digital certificates for contributing at least once to each category. One issue may include multiple categories, and the pull requests don't need to be merged for their contributions to be valid.
|
||||
|
||||
We select a few projects for this program, then mentors brainstorm and create issues for participants. When the program starts, participants can claim issues and begin contributing. Mentors support and review their contributions.
|
||||
|
||||
This approach encourages diversity of contributions and welcomes anyone, regardless of their coding ability, to contribute in a friendly and fail-safe environment.
|
||||
|
||||
#### **Open Source Ambassadors**
|
||||
|
||||
In this program, we select ambassadors from the community that ideally will cover each category of contributions we aim to promote. We've run this program twice so far.
|
||||
|
||||
The program aims to have members grow in helping manage projects and initiatives by responding to questions from the community, assisting contributors to get involved, and advocating for their assigned category.
|
||||
|
||||
In the first program we ran, we accepted anyone who applied. We assessed where members' interests lay and provided a structure for people who wanted to contribute but were initially uncomfortable with taking that step.
|
||||
|
||||
This edition was very enlightening for us as a community. It required a lot of management from admins, as we had a mix of experienced and inexperienced open source contributors and community members. Some ambassadors were confident in stepping up and leading initiatives, while others needed more support. For our second program, we decided to scale down the initiative. We only accepted contributors who were already familiar with the community and could lead on initiatives and projects and help us train the less experienced.
|
||||
|
||||
The second program became a positive feedback loop. Ambassadors who started as beginners, contributing to the first program we ran, became comfortable leading after learning from their experience with the program.
|
||||
|
||||
This change of approach enabled admins to focus more on supporting the ambassadors' team, helping them propagate our mission and continue making the community beginner-friendly, and mentoring more people to contribute.
|
||||
|
||||
### Summary
|
||||
|
||||
These programs have helped us bring awareness to different ways to contribute and give back to open source. Through these, we've found volunteers helping by managing projects and hosting open sessions, which contributes to managing the community and providing mentorship to our contributors.
|
||||
|
||||
Even though we have had a good response from contributors and helped people make their first contributions, we still have a lot of room for improvement. We will continue to enhance our project's setup and contribution guidelines to improve contributors' experience. We'll also continue to focus on making sure we always have and promote available issues across the organization and in different categories to promote an inclusive environment so that anyone who wishes to can contribute.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/8/beginner-open-source-community
|
||||
|
||||
作者:[Isabel Costa][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/isabelcmdcosta
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop)
|
||||
[2]: https://github.com/anitab-org
|
||||
[3]: https://anitab.org/
|
||||
[4]: https://youtu.be/l8r50jCr-Yo
|
||||
[5]: https://anitab-org.zulipchat.com/
|
||||
[6]: https://summerofcode.withgoogle.com/
|
||||
[7]: https://github.com/anitab-org/mentorship-backend#readme
|
||||
[8]: https://opensource.com/article/21/2/sqlite3-cheat-sheet
|
||||
[9]: https://github.com/anitab-org/bridge-in-tech-backend
|
||||
[10]: https://github.com/anitab-org/documentation/blob/master/quality-assurance.md
|
||||
[11]: https://codein.withgoogle.com/
|
@ -1,115 +0,0 @@
|
||||
[#]: subject: "My favorite LibreOffice productivity tips"
|
||||
[#]: via: "https://opensource.com/article/21/9/libreoffice-tips"
|
||||
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
My favorite LibreOffice productivity tips
|
||||
======
|
||||
Here are some LibreOffice keyboard shortcuts and formatting tips that
|
||||
might save you valuable time.
|
||||
![woman on laptop sitting at the window][1]
|
||||
|
||||
LibreOffice is my productivity application of choice. It's one of the most potent reasons for recommending Linux distributions to educators and students, whether PK-12 or higher education. Now that the school year is upon us, I thought I would recommend some LibreOffice shortcuts and tips that might save you valuable time.
|
||||
|
||||
### Work faster with keyboard shortcuts
|
||||
|
||||
I use a lot of keyboard shortcuts. Here are the most common shortcuts that apply to all LibreOffice applications.
|
||||
|
||||
* **Ctrl**+**N**—Create a new document
|
||||
* **Ctrl**+**O**—Open a document
|
||||
* **Ctrl**+**S**—Save a document
|
||||
* **Ctrl**+**Shift**+**S**—Save as
|
||||
* **Ctrl**+**P**—Print a document
|
||||
|
||||
|
||||
|
||||
Here are some shortcut keys just for LibreOffice Writer:
|
||||
|
||||
* **Home**—Takes you to the beginning of the current line.
|
||||
* **End**—Takes you to the end of a line.
|
||||
* **Ctrl**+**Home**—Takes the cursor to the start of the document
|
||||
* **Ctrl**+**End**—Takes the cursor to the end of the document
|
||||
* **Ctrl**+**A**—Select All
|
||||
* **Ctrl**+**D**—Double Underline
|
||||
* **Ctrl**+**E**—Centered
|
||||
* **Ctrl**+**H**—Find and Replace
|
||||
* **Ctrl**+**L**—Align Left
|
||||
* **Ctrl**+**R**—Align Right
|
||||
|
||||
|
||||
|
||||
Function keys have value too:
|
||||
|
||||
* **F2**—Opens the formula bar
|
||||
* **F3**—Completes auto-text
|
||||
* **F5**—Opens the navigator
|
||||
* **F7**—Opens spelling and grammar
|
||||
* **F11**—Opens styles and formatting
|
||||
* **Shift**+**F11**—Creates a new style
|
||||
|
||||
|
||||
|
||||
### Document formats
|
||||
|
||||
There are lots of document formats out there, and LibreOffice supports a good number of them. By default, LibreOffice saves documents to the Open Document Format, an open source standard that stores stylesheets and data in a ZIP container labeled as ODT for text documents, ODS for spreadsheets, and ODP for presentations. It's a flexible format and is maintained by the LibreOffice community as well as the Document Foundation.
|
||||
|
||||
The Open Document Format is on by default, so you don't need to do anything to get LibreOffice to use it.
|
||||
|
||||
Another open specification for documents is Microsoft's [Office Open XML format][2]. It's an ISO standard and is well supported by all the major office solutions.
|
||||
|
||||
If you work with folks using Microsoft Office (which itself is not open source, but it does use the open OOXML format), then they're definitely used to DOCX, XLSX, and, PPTX formats and probably can't open ODT, ODS, or ODP files. You can avoid a lot of confusion by setting LibreOffice to save to OOXML by default.
|
||||
|
||||
To set OOXML as your preferred format:
|
||||
|
||||
1. Click on the **Tools** menu and select **Options** at the bottom of the menu.
|
||||
|
||||
2. In the **Options** window, click on the **Load/Save** category in the left panel and select **General**.
|
||||
|
||||
![LibreOffice settings panel][3]
|
||||
|
||||
(Don Watkins, [CC BY-SA 4.0][4])
|
||||
|
||||
3. Navigate to the **Default File Format and ODF Settings** section.
|
||||
|
||||
4. Choose _Text document_ for the **Document type** and choose _Open XML (Transitional) (*.docx)_ for the **Always save as **drop-down list.
|
||||
|
||||
5. Click **Apply** and then **OK**.
|
||||
|
||||
6. Deselect the **Warn when not saving in ODF or default format** to avoid confirmation dialogue boxes when saving.
|
||||
|
||||
![LibreOffice save formats][5]
|
||||
|
||||
(Don Watkins, [CC BY-SA 4.0][4])
|
||||
|
||||
|
||||
|
||||
|
||||
Repeat the same process XLSX and PPTX documents by following the same logic.
|
||||
|
||||
### Free your office
|
||||
|
||||
The LibreOffice project is managed by a thriving community of users and developers, in tandem with the Document Foundation. This includes an Engineering Steering Committee, a Board of Directors, independent developers and designers and translators, and more. These teams are always open to your contribution, so if you're eager to participate in a great open source project, don't hesitate to [get involved][6].
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/9/libreoffice-tips
|
||||
|
||||
作者:[Don Watkins][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/don-watkins
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/lenovo-thinkpad-laptop-window-focus.png?itok=g0xPm2kD (young woman working on a laptop)
|
||||
[2]: https://www.iso.org/standard/71691.html
|
||||
[3]: https://opensource.com/sites/default/files/uploads/libreoffice-panel.jpg (LibreOffice settings panel)
|
||||
[4]: https://creativecommons.org/licenses/by-sa/4.0/
|
||||
[5]: https://opensource.com/sites/default/files/uploads/libreoffice-save-format.jpg (LibreOffice save formats)
|
||||
[6]: https://www.libreoffice.org/community/get-involved/
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://www.debugpoint.com/install-use-gnome-boxes/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "void-mori"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,257 +0,0 @@
|
||||
[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]"
|
||||
[#]: via: "https://www.debugpoint.com/systemd-journalctl/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to use journalctl to View and Analyze Systemd Logs [With Examples]
|
||||
======
|
||||
|
||||
**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.**
|
||||
|
||||
### Introduction
|
||||
|
||||
Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem.
|
||||
|
||||
Systemd has three basic components as follows –
|
||||
|
||||
- **systemd**: System and service manager for Linux operating systems.
|
||||
- **systemctl**: Command to introspect and control the state of the systemd system and service manager.
|
||||
- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager
|
||||
|
||||
Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd.
|
||||
|
||||
### journald – systemd journal daemon
|
||||
|
||||
By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files.
|
||||
|
||||
The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs.
|
||||
|
||||
Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems.
|
||||
|
||||
#### The journald Configuration File
|
||||
|
||||
The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing.
|
||||
|
||||
```
|
||||
/etc/systemd/journald.conf
|
||||
```
|
||||
|
||||
#### Where journald stores the binary log files
|
||||
|
||||
The journald stores the logs in binary format. They are stored inside a directory under this path.
|
||||
|
||||
```
|
||||
/var/log/journal
|
||||
```
|
||||
|
||||
For example, in the below path there is a directory that contains all the system logs to date.
|
||||
|
||||
![journalctl log file path][2]
|
||||
|
||||
Do not use cat command or use nano or vi to open these files. They would not be displayed properly.
|
||||
|
||||
### Use journalctl to View and Analyze Systemd Logs
|
||||
|
||||
#### Basic journald command
|
||||
|
||||
The basic command to view logs using journal daemon is –
|
||||
|
||||
```
|
||||
journalctl
|
||||
```
|
||||
|
||||
![journalctl][3]
|
||||
|
||||
This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view.
|
||||
|
||||
#### How to view journal entries for time zones
|
||||
|
||||
By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command.
|
||||
|
||||
```
|
||||
journalctl --utc
|
||||
```
|
||||
|
||||
![journalctl --utc][4]
|
||||
|
||||
#### How to view only errors, warnings, etc in journal logs
|
||||
|
||||
The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command.
|
||||
|
||||
To view emergency system messages use:
|
||||
|
||||
```
|
||||
journalctl -p 0
|
||||
```
|
||||
|
||||
![journalctl -p 0][5]
|
||||
|
||||
Error codes
|
||||
|
||||
```
|
||||
0: emergency
|
||||
1: alerts
|
||||
2: critical
|
||||
3: errors
|
||||
4: warning
|
||||
5: notice
|
||||
6: info
|
||||
7: debug
|
||||
```
|
||||
|
||||
When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0
|
||||
|
||||
```
|
||||
journalctl -p 2
|
||||
```
|
||||
|
||||
#### How to view journal logs for a specific boot
|
||||
|
||||
When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well.
|
||||
|
||||
Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command.
|
||||
|
||||
```
|
||||
journalctl --list-boots
|
||||
```
|
||||
|
||||
![journalctl list-boots][6]
|
||||
|
||||
- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot.
|
||||
- The second number the boot ID which also you can specify in the commands.
|
||||
- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time.
|
||||
|
||||
To view a specific boot number you the first number or the boot ID as below.
|
||||
|
||||
```
|
||||
journalctl -b -45
|
||||
```
|
||||
|
||||
```
|
||||
journalctl -b 8bab42c7e82440f886a3f041a7c95b98
|
||||
```
|
||||
|
||||
![journalctl -b 45][7]
|
||||
|
||||
You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations.
|
||||
|
||||
```
|
||||
journalctl -xb -p 3
|
||||
```
|
||||
|
||||
![journalctl -xb][8]
|
||||
|
||||
#### How to view journal logs for a specific time, date duration
|
||||
|
||||
The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation.
|
||||
|
||||
You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.`
|
||||
|
||||
Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"`
|
||||
|
||||
```
|
||||
journalctl --since "2020-12-04 06:00:00"
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since yesterday
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since 09:00 --until "1 hour ago"
|
||||
```
|
||||
|
||||
![journalctl --since 09:00 --until][9]
|
||||
|
||||
You can combine the above with the error level switches as well.
|
||||
|
||||
#### How to see Kernel specific journal logs
|
||||
|
||||
The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command.
|
||||
|
||||
```
|
||||
journalctl -k
|
||||
```
|
||||
|
||||
#### How to see journal logs for a service, PID
|
||||
|
||||
You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command.
|
||||
|
||||
```
|
||||
journalctl -u NetworkManager.service
|
||||
```
|
||||
|
||||
![journalctl NetworkManager service][10]
|
||||
|
||||
If you do not know the service name, you can use the below command to list the systemd services in your system.
|
||||
|
||||
```
|
||||
systemctl list-units --type=service
|
||||
```
|
||||
|
||||
#### How to view journal logs for a user, group
|
||||
|
||||
If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” –
|
||||
|
||||
```
|
||||
id -u debugpoint
|
||||
```
|
||||
|
||||
Then use that ID with `_UID` switch to view the logs generated by the user.
|
||||
|
||||
```
|
||||
journalctl _UID=1000 --since today
|
||||
```
|
||||
|
||||
![journalctl _UID][11]
|
||||
|
||||
Similarly use `_GID` switch to find out the same for user groups.
|
||||
|
||||
#### How to view journal logs for an executable
|
||||
|
||||
You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command.
|
||||
|
||||
```
|
||||
journalctl /usr/bin/gnome-shell --since today
|
||||
```
|
||||
|
||||
![journalctl gnome-shell][12]
|
||||
|
||||
### Closing notes
|
||||
|
||||
I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/systemd-journalctl/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://freedesktop.org/wiki/Software/systemd/
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg
|
||||
[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg
|
||||
[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg
|
||||
[13]: https://www.debugpoint.com/tag/mx-linux
|
@ -2,7 +2,7 @@
|
||||
[#]: via: "https://itsfoss.com/key-is-stored-in-legacy-trusted-gpg/"
|
||||
[#]: author: "Abhishek Prakash https://itsfoss.com/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
@ -1,149 +0,0 @@
|
||||
[#]: subject: "Top 10 Linux Distributions for Servers in 2023"
|
||||
[#]: via: "https://www.linuxtechi.com/top-10-linux-distributions-for-servers/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " Veryzzj"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Top 10 Linux Distributions for Servers in 2023
|
||||
======
|
||||
|
||||
Linux operating system is a popular choice for servers – and for multiple reasons. First, it’s free (with exception of a few commercial distributions such as RHEL and SUSE Linux Enterprise Server ) and open-source. Its open-source nature implies that developers can view its source code, modify it and redistribute it according to the laid-out license terms. In addition, Linux is generally considered stable, versatile, and more secure than Windows. Furthermore, it can easily be deployed across various platforms such as bare-metal, virtual, and cloud environments.
|
||||
|
||||
In this article, we highlight the top 10 Linux distributions for servers.
|
||||
|
||||
### 1) Red Hat Enterprise Linux (RHEL)
|
||||
|
||||
[Red Hat Enterprise Linux][1], abbreviated as RHEL, is a commercial Linux distribution that was developed specifically for enterprise environments. It is a performance-driven, reliable, and secure operating system that provides enhanced usability and seamless deployment which makes it ideal for server environments.
|
||||
|
||||
RHEL supports a wide range of workloads in bare-metal, virtual, and cloud environments. In fact, it’s the world’s leading open-source solutions provider offering a myriad of products including Red Hat OpenShift, Ansible automation platform, Open hybrid cloud, JBoss Enterprise Application Platform, and SAP to mention a few.
|
||||
|
||||
![Neofetch-Command-Output-RHEL-System][2]
|
||||
|
||||
### 2) Ubuntu Server
|
||||
|
||||
Developed and maintained by Canonical, Ubuntu is one of the most popular and widely used Linux distributions. It is a Debian-based Linux distribution that is absolutely free and open-source and is renowned for Its Desktop edition which is intuitive, user-friendly, and considered ideal for learners and beginners. Ubuntu comes in 3 editions namely; Desktop, Ubuntu Server, and Core.
|
||||
|
||||
While the Desktop Edition enjoys massive global usage, the Server edition also offers a solid platform for server environments. First, it can be deployed in any environment, be it on a physical, virtual, or cloud environment with extensive scale-out functionality. This implies you can add resources on the go to meet evolving demands.
|
||||
|
||||
And since the server version is completely stripped down without any GUI, it’s relatively lightweight leading to low resource overhead. This means low CPU and memory usage. This consequently leads to improved performance and enterprise-grade stability.
|
||||
|
||||
Apart from installing it on physical data centers and virtual servers, Ubuntu server is available in public clouds such as AWS and Azure. According to Canonical, 55% of OpenStack clouds run on Ubuntu. In addition, you can have your own managed Openstack cloud for a fee.
|
||||
|
||||
![][3]
|
||||
|
||||
### 3) Debian
|
||||
|
||||
Debian is one of the earliest Linux distributions that is renowned for its rock-solid stability. It comes in three variants: Stable, Unstable, and Testing.
|
||||
|
||||
The Debian stable branch is the latest officially released distribution of Debian and is the most popular version for servers and desktop PCs. All packages shipped with this branch have undergone rigorous testing and debugging, and are hence considered ready for production workloads.
|
||||
|
||||
Debian server is tailored to be a fast and reliable operating system with an emphasis on security and stability. It’s for this reason that it makes for a perfect choice for server environments. In addition, It provides extensive hardware support with over 59,000 software packages, by far the greatest number of packages provided by any OS.
|
||||
|
||||
Just like Ubuntu Server, Debian is lightweight, versatile, and highly stable for enterprise workloads. In fact, it is considered more stable and easier to manage than Ubuntu.
|
||||
|
||||
![][4]
|
||||
|
||||
##### 4) SUSE Linux Enterprise Server
|
||||
|
||||
Another formidable and worthy contender in providing an excellent platform for servers is SUSE Linux Enterprise Server ( SLES ). The server operating system is created and maintained by SUSE, a German-based organization.
|
||||
|
||||
SLES is a commercial distribution that was built to handle enterprise-grade workloads. It is adaptable to any environment and is optimized for stability, reliability, and security. It is highly scalable and allows IT teams to efficiently deploy their applications and services in response to growing business demands.
|
||||
|
||||
The latest SLES release provides interoperability with ease of administration. It also provides increased support and compatibility with Docker containers, Kubernetes, and geo-clusters. The latter provides flexibility with high availability allowing IT teams to configure replication clusters that span multiple data center regions.
|
||||
|
||||
SUSE Linux Enterprise Server not only supports in-house workloads but is also offered on popular cloud providers including Microsoft Azure, Google Compute Engine, and Amazon Web Services.
|
||||
|
||||
|
||||
##### 5) OpenSUSE Leap
|
||||
|
||||
Developed by the OpenSUSE project, OpenSUSEis a non-commercial RPM-based Linux distribution that is developed and maintained by SUSE. OpenSUSE is free and open-source and provides two editions:
|
||||
|
||||
- OpenSUSE Leap
|
||||
- OpenSUSE Tumbleweed
|
||||
|
||||
OpenSUSE TumbleWeed is the rolling release version of OpenSUSE. It contains the latest stable applications including an updated kernel, git, SAMBA, desktop applications, and many more. It, therefore, makes a perfect distribution of choice for developers or power users who need to leverage the latest software stacks in their workloads. However, due to frequent kernel updates, it’s not the ideal choice for servers since frequent updates can cause inconsistencies with other third-party driver modules.
|
||||
|
||||
OpenSUSE Leap is the preferred OpenSUSE option for servers. It’s an open-source and community-driven distribution that has a slower release cycle and, hence, a better fit than TumbleWeed. It is community-driven and this means that it undergoes rigorous testing before being released.
|
||||
|
||||
Leap is comparatively easy to use and offers high performance and stability ideal for handling enterprise-grade workloads. It is a great alternative to commercial server distributions such as SLES and RHEL and allows companies to deploy their workloads both on bare metal and cloud deployments.
|
||||
|
||||
![][6]
|
||||
|
||||
### 6) Rocky Linux
|
||||
|
||||
Rocky Linux is a Linux distribution that was developed as a replacement for CentOS Linux which reached EOL ( End Of Life ) on 31st, December 2021. It is a free and opensource Linux distribution that is enterprise-ready, providing rock-solid stability, reliability, and regular updates with a 10-year support lifecycle at absolutely no cost
|
||||
|
||||
Rocky Linux is an enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux and is currently under intensive development by the community.
|
||||
|
||||
The distribution has gained massive popularity since the untimely discontinuation of CentOS Linux. It can be installed on both servers, and desktop computers. It’s also available in custom-built images on Public cloud providers such as Amazon AWS, and Google Compute Engine.
|
||||
|
||||
Rocky Linux developers have availed a migration script that allows users to migrate from other enterprise editions such as CentOS Linux and Oracle Linux to Rocky Linux.
|
||||
|
||||
![][7]
|
||||
|
||||
### 7) AlmaLinux
|
||||
|
||||
Another alternative that was developed to plug in the gap left by CentOS Linux is AlmaLinux. This is yet another enterprise operating system that is completely free and opensource.
|
||||
|
||||
AlmaLinux was originally created by CloudLinux but is currently community driven. It offers a production-grade enterprise operating system that is 1:1 binary compatible with Red Hat Enterprise Linux (RHEL). In a nutshell, it’s a clone of RHEL and provides rock-solid stability and benefits that come with RHEL at no cost.
|
||||
|
||||
Being an Enterprise-grade server OS, AlmaLinux can comfortably run heavy and critical workloads. In addition, it provides regular releases that come with long-term support.
|
||||
|
||||
![][8]
|
||||
|
||||
### 8) Oracle Linux
|
||||
|
||||
Developed by Oracle Corporation, Oracle Linux is a secure and high-performance operating system that is compiled from RHEL source code. It is optimized for hybrid and multi-cloud deployments, and just like Rocky and AlmaLinux, Oracle Linux is 100% binary compatible with Red Hat Linux.
|
||||
|
||||
Oracle Linux is a viable option for data centers and certainly a perfect replacement for CentOS which reached EOL. It is rock-solid stable and posts incredible performance ideal for enterprise applications.
|
||||
|
||||
Unlike Commercial Linux distributions such as RHEL and SUSE, Oracle Linux is completely free to download, use and redistribute. It is available under the GNU General Public License (GPLv2).
|
||||
|
||||
### 9) Fedora Server
|
||||
|
||||
Fedora is a free and open-source Linux distribution that is developed and maintained by Fedora Project which is sponsored by Red Hat.
|
||||
|
||||
Fedora serves as the upstream, community distribution of Red Hat Enterprise Linux. All the applications go through rigorous testing before they are pushed to RHEL. As such, it is referred to as a ‘Bleeding Edge’ operating system. This implies is regularly gets the latest software applications and updates.
|
||||
|
||||
For a long time, Fedora has been popular for its Workstation Edition which was built for laptop and desktop computers. Over time, it has expanded to include other editions such as Fedora Server, Fedora IoT, and Fedora CoreOS.
|
||||
|
||||
Fedora Server is a robust, reliable, and flexible operating system that ships with the best and latest data center technologies. As a leading-edge edition, it offers the very latest technologies in the open-source community. It is easy to install, set up, and administer using various tools such as Cockpit web console.
|
||||
|
||||
Fedora is also fast, remarkably stable, and secure. It works just fine for production and enterprise workloads. New releases of Fedora are pushed out once every 6 months.
|
||||
|
||||
![][10]
|
||||
|
||||
### 10) Fedora CoreOS
|
||||
|
||||
Last on our list is Fedora CoreOS. This is a minimal operating system that is optimized specifically for running containerized applications and workloads. According to its home page, it touts itself as “an automatically-updating, minimal operating system for running containerized workloads securely and at scale.”
|
||||
|
||||
By default, it ships with both podman and docker and comes in three release streams namely: Stable, Testing, and Next. You can get images for bare-metal servers and virtualized environments as well as cloud images that are hosted by major cloud providers such as Amazon Web Service (AWS) and Google Cloud Platform (GCP).
|
||||
|
||||
##### Conclusion
|
||||
|
||||
That was a round-up of the best Linux distributions for servers. We hope you found this guide insightful. Any thoughts on our guide? Your feedback is very much welcome.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/top-10-linux-distributions-for-servers/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[zepoch](https://github.com/zepoch)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.redhat.com/en
|
||||
[2]: https://www.linuxtechi.com/wp-content/uploads/2019/10/Neofetch-Command-Output-RHEL-System.png
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/05/Login-Screen-After-Ubuntu-Server-22-04-Installation.png
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2021/08/Login-screen-Debian11.png
|
||||
[6]: https://www.linuxtechi.com/wp-content/uploads/2018/09/openSUSE-Leap15-Installation-Option.jpg
|
||||
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png
|
||||
[8]: https://www.linuxtechi.com/wp-content/uploads/2021/04/AlmaLinux8-Dashboard-After-Installation.jpg
|
||||
[10]: https://www.linuxtechi.com/wp-content/uploads/2016/11/Fedora-Linux-Desktop.png
|
@ -1,91 +0,0 @@
|
||||
[#]: subject: "Open source video captioning on Linux"
|
||||
[#]: via: "https://opensource.com/article/23/2/live-captions-linux"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Open source video captioning on Linux
|
||||
======
|
||||
|
||||
In a perfect world, all videos would have transcripts, and live videos would have captioning. It's not just a requirement for people without hearing to be able to participate in pop culture and video chats, it's a luxury for people with hearing who just prefer to read what's been said. Not all software has captioning built-in though, and some that does relies on third-party cloud services to function. [Live Captions][1] is an application for the Linux desktop that provides instant, local, and open source captioning for video.
|
||||
|
||||
### Install Live Captions
|
||||
|
||||
You can install Live Captions as a [Flatpak][2].
|
||||
|
||||
If your Linux distribution doesn't ship with a software center, install it manually from a terminal. First, add the [Flathub][3] repository:
|
||||
|
||||
```
|
||||
$ flatpak remote-add --if-not-exists flathub \
|
||||
https://flathub.org/repo/flathub.flatpakrepo
|
||||
```
|
||||
|
||||
Next, install the application:
|
||||
|
||||
```
|
||||
$ flatpak install flathub net.sapples.LiveCaptions
|
||||
```
|
||||
|
||||
### Launch Live Captions
|
||||
|
||||
To start Live Captions, launch it from your application menu.
|
||||
|
||||
Alternatively, you can start it from a terminal using the `flatpak` command:
|
||||
|
||||
```
|
||||
$ flatpak run net.sapples.LiveCaptions
|
||||
```
|
||||
|
||||
You can also use a command like [Fuzzpak][4]:
|
||||
|
||||
```
|
||||
$ fuzzpak LiveCaptions
|
||||
```
|
||||
|
||||
When Live Captions first starts, you're presented with a configuration screen.
|
||||
|
||||
![Image showing preferences in Live Captions.][5]
|
||||
|
||||
You can set the font, font size, colors, and more. By default, text that Live Captions isn't 100% confident about is presented in a darker color than your chosen font color. If you're using Live Captions as a convenience, this probably isn't necessary, but if you can't hear the video, then it's good to get an idea of words that may not be correct.
|
||||
|
||||
You can return to the preferences screen anytime, so your choices don't have to be final.
|
||||
|
||||
### Using Live Captions
|
||||
|
||||
Once Live Captions is running, any English words coming through your system sound are printed to the Live Captions window.
|
||||
|
||||
![Image showing Live Captions presenting text from a Jitsi call. ][6]
|
||||
|
||||
This isn't a cloud service. There are no API keys required. There's no telemetry or spying and no data collection. In fact, it doesn't even require network permissions. Live Captions is open source, so there are no proprietary services or libraries in use.
|
||||
|
||||
To change the sound input, click the **Microphone** icon in the top left of the **Live Captions** window. To open the **Preferences** window, click on the **Gear** icon in the bottom left of the **Live** Captions window.
|
||||
|
||||
### Open access
|
||||
|
||||
In my experience, the results of Live Captions are good. They're not perfect, but in small [Jitsi video calls][7], it's excellent. Even with niche videos (rowdy tournaments of Warhammer 40,000, for instance) it does surprisingly well, stumbling over only the most fictional of sci-fi terminology.
|
||||
|
||||
Making open source accessible is vital, and in the end it has the potential to benefit everyone. I don't personally require Live Captions, but I enjoy using it when I don't feel like listening to a video. I also use it when I want help to focus on something that I might otherwise be distracted away from. Live Captions isn't just a fun open source project, it's an important one.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/live-captions-linux
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://github.com/abb128/LiveCaptions
|
||||
[2]: https://opensource.com/article/21/11/install-flatpak-linux
|
||||
[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions
|
||||
[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak
|
||||
[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png
|
||||
[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png
|
||||
[7]: https://opensource.com/article/21/9/alternatives-zoom
|
@ -1,117 +0,0 @@
|
||||
[#]: subject: "Elementary OS 7 Installation Guide with Screenshots"
|
||||
[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Elementary OS 7 Installation Guide with Screenshots
|
||||
======
|
||||
|
||||
Hello techies, in this post, we will cover how to Install Elementary OS 7 step by step with screenshots on laptop or desktop. It is based on latest and stable Ubuntu 22.04 LTS.
|
||||
|
||||
Elementary OS 7 with code name “Horus” released with lot of improvements like :
|
||||
|
||||
- Improved AppCenter and install all application that one need.
|
||||
- Improved sideloading and alt store (Flathub) experience
|
||||
- Latest GNOME Web 43 support for creating web apps.
|
||||
- Getting OS and Applicate Updates quickly
|
||||
- Power Profile Management
|
||||
- Improvement in App Description
|
||||
|
||||
##### System Requirements for Elementary OS 7
|
||||
|
||||
- Dual Core 64-bit processor
|
||||
- 4 GB RAM or more
|
||||
- 32 GB hard disk
|
||||
- Internet Access
|
||||
- Bootable USB Flash Drive ( 4 GB Storage)
|
||||
|
||||
Without any further delay, let’s jump into the installation steps
|
||||
|
||||
### 1) Download Elementary OS 7
|
||||
|
||||
Use below official URL to download ISO file,
|
||||
|
||||
- Download Elementary OS 7 ISO
|
||||
|
||||
Once ISO file is downloaded then burn it into USB flash drive and make it bootable.
|
||||
|
||||
On Windows operating use “Rufus” software to make bootable USB drive using ISO file. In Linux, refer the following URL:
|
||||
|
||||
- How to Create Bootable USB Drive on Ubuntu / Linux Mint
|
||||
|
||||
### 2) Boot the system with bootable media
|
||||
|
||||
Now boot the target system with bootable USB drive. From bios settings change the boot medium from hard disk to USB. When the system boots up with USB drive then we will get the following screen,
|
||||
|
||||
### 3) Select Language for Installation
|
||||
|
||||
Choose your preferred language and then click select,
|
||||
|
||||
### 4) Choose Keyboard Layout
|
||||
|
||||
In this step, you will be requested to choose keyboard layout and then click on ‘Select’
|
||||
|
||||
### 5) Try or Install elementary OS
|
||||
|
||||
We will be presented the beneath screen, where we must our choose installation type. It gives us following options,
|
||||
|
||||
- Try Demo Mode – Try Elementary OS 7 without installing
|
||||
- Erase disk and Install – Installer will erase the whole disk and will create required partitions automatically.
|
||||
- Custom Install (Advanced) – It will give us the option to create custom partitions.
|
||||
|
||||
In this post, I will go with the 2nd option (Erase disk and install).
|
||||
|
||||
Click on “Erase Disk and Install”
|
||||
|
||||
In the following screen, select the drive on which OS will be installed and then click on “Erase and Install”
|
||||
|
||||
If you want to encrypt the device’s drive, then click on “Choose Password” else click on “Don’t Encrypt”.
|
||||
|
||||
### 6) Installation Progress
|
||||
|
||||
As we can see below, installation got started and is in progress.
|
||||
|
||||
Once the installation is completed, installer will prompt to reboot the system.
|
||||
|
||||
Click on “Restart Device” and don’t forget to change boot medium from bios settings so that it boots up with the disk.
|
||||
|
||||
### 7) Create Local User and Set Hostname
|
||||
|
||||
When the system boots up after the installation, you will be prompted to enter local user details and hostname of your system.
|
||||
|
||||
Specify the details as per your requirement,
|
||||
|
||||
Click on “Finish Setup”.
|
||||
|
||||
In the following screen, you will be prompted to enter your local user credentials that you have created above,
|
||||
|
||||
After entering the credentials, hit enter
|
||||
|
||||
### 8) Elementary OS 7 Welcome Screen
|
||||
|
||||
We will get the beneath welcome screen,
|
||||
|
||||
Choose “Skip All”
|
||||
|
||||
Click “Get Started” and then we will get following desktop screen,
|
||||
|
||||
Great, it confirms that you have successfully installed Elementary OS 7 on your system. That’s all from this guide, explore this exciting Linux distribution and have fun 😊.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/elementary-os-7-installation-guide/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
|
@ -0,0 +1,229 @@
|
||||
[#]: subject: "Improve your coding skills with temporal values in MySQL"
|
||||
[#]: via: "https://opensource.com/article/23/2/temporal-values-mysql"
|
||||
[#]: author: "Hunter Coleman https://opensource.com/users/hunterc"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Improve your coding skills with temporal values in MySQL
|
||||
======
|
||||
|
||||
Both new and experienced users of the popular MySQL database system can often get confused about how temporal values are handled by the database. Sometimes users don't bother learning much about temporal value data types. This may be because they think there isn't much to know about them. A date is a date, right? Well, not always. Taking a few minutes to learn how MySQL stores and displays dates and times is beneficial. Learning how to best take advantage of the temporal values in your database tables can help make you a better coder.
|
||||
|
||||
### MySQL temporal data types
|
||||
|
||||
When you are building your tables in MySQL, you choose the proper data type which most efficiently holds the data you intend to insert into the table (`INT`, `FLOAT`, `CHAR`,and so on). MySQL provides you with five data types for temporal values. They are: `DATE`, `TIME`, `DATETIME`, `TIMESTAMP`, and `YEAR`.
|
||||
|
||||
MySQL uses the `ISO 8601` format to store the values in the following formats:
|
||||
|
||||
- **DATE** YYYY-MM-DD
|
||||
- **TIME** HH:MM:SS
|
||||
- **TIMESTAMP** YYYY-MM-DD HH:MM:SS
|
||||
- **YEAR** YYYY
|
||||
|
||||
### Datetime compared to Timestamp
|
||||
|
||||
You may have noticed that the `DATETIME` and `TIMESTAMP` data types hold the same data. You might wonder if there are any differences between the two. There are differences.
|
||||
|
||||
First, the range of dates that can be used differ. `DATETIME` can hold dates between 1000-01-01 00:00:00 and 9999-12-31 23:59:59, whereas `TIMESTAMP` has a much more limited range of 1970-01-01 00:00:01 to 2038-01-19 03:14:07 UTC.
|
||||
|
||||
Second, while both data types allow you to `auto_initialize` or `auto_update` their respective values (with `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` respectively), doing so was not available for `DATETIME` values until version 5.6.5. You can use one of the MySQL synonyms for `CURRENT_TIMESTAMP` if you choose, such as `NOW()` or `LOCALTIME()`.
|
||||
|
||||
If you use `ON UPDATE CURENT_TIMESTAMP` (or one of its synonyms) for a `DATETIME` value, but do not use the `DEFAULT CURRENT_TIMESTAMP` clause, then the column will default to `NULL`. This happens unless you include `NOT NULL` in the table definition, in which case it defaults to zero.
|
||||
|
||||
Another important thing to keep in mind is that although normally neither a `DATETIME` nor a `TIMESTAMP` column have a default value unless you declare one, there is one exception to this rule. The first `TIMESTAMP` column in your table is implicitly created with both `DEFAULT CURRENT_TIMESTAMP` and `ON UPDATE CURRENT_TIMESTAMP` clauses if neither is specified and if the variable `explicit_defaults_for_timestamp` is disabled.
|
||||
|
||||
To check this variable's status, run:
|
||||
|
||||
```
|
||||
mysql> show variables like 'explicit_default%';
|
||||
```
|
||||
|
||||
If you want to turn it on or off, run this code, using 0 for off and 1 for on:
|
||||
|
||||
```
|
||||
mysql> set explicit_defaults_for_timestamp = 0;
|
||||
```
|
||||
|
||||
### Time
|
||||
|
||||
MySQL's `TIME` data type may seem simple enough, but there are a few things that a good programmer should keep in mind.
|
||||
|
||||
First, be aware that although time is often thought of as the time of day, it is in fact elapsed time. In other words, it can be a negative value or can be greater than 23:59:59. A `TIME` value in MySQL can be in the range of -838:59:59 to 838:59:59.
|
||||
|
||||
Also, if you abbreviate a time value, MySQL interprets it differently depending on whether you use a colon. For example, the value 10:34 is seen by MySQL as 10:34:00. That is, 34 minutes past ten o'clock. But if you leave out the colon, 1034', MySQL sees that as 00:10:34. That is, ten minutes and 34 seconds.
|
||||
|
||||
Finally, you should know that `TIME` values (as well as the time portion of `DATETIME` and `TIMESTAMP` columns) can, as of version 5.6.4, take a fractional unit. To use it, add an integer (max value six) in parentheses at the end of the data type definition.
|
||||
|
||||
```
|
||||
time_column TIME(2)
|
||||
```
|
||||
|
||||
### Time zones
|
||||
|
||||
Time zone changes not only cause confusion and fatigue in the real world, but have also been known to cause problems in database systems. The earth is divided into 24 separate time zones which usually change with every 15 degrees of longitude. I say usually because some nations choose to do things differently. China, for example, operates under a single time zone instead of the five that would be expected.
|
||||
|
||||
The question is, how do you handle users of a database system who are in different time zones. Fortunately, MySQL doesn't make this too difficult.
|
||||
|
||||
To check your session time zone, run:
|
||||
|
||||
```
|
||||
mysql> select @@session.time_zone;
|
||||
```
|
||||
|
||||
If it says `System`, that means that it is using the timezone set in your `my.cnf`configuration file. If you are running your MsSQL server on your local computer, this is probably what you'll get, and you don't need to make any changes.
|
||||
|
||||
If you would like to change your session's time zone, run a command such as:
|
||||
|
||||
```
|
||||
mysql> set time_zone = '-05:00';
|
||||
```
|
||||
|
||||
This sets your time zone to five hours behind UTC. (US/Eastern).
|
||||
|
||||
### Getting the day of the week
|
||||
|
||||
To follow along with the code in the rest of this tutorial, you should create a table with date values on your system. For example:
|
||||
|
||||
```
|
||||
mysql> create table test
|
||||
( row_id smallint not null auto_increment primary key,
|
||||
the_date date not null);
|
||||
```
|
||||
|
||||
Then insert some random dates into the table using the ISO 8601 format, such as:
|
||||
|
||||
```
|
||||
mysql> insert into test (the_date) VALUES ('2022-01-05');
|
||||
```
|
||||
|
||||
I put four rows of date values in my test table, but put as few or as many as you'd like.
|
||||
|
||||
Sometimes you may wish to know what day of the week a particular day happened to be. MySQL gives you a few options.
|
||||
|
||||
The first, and perhaps most obvious way, is to use the `DAYNAME()` function. Using the example table, `DAYNAME()` tells you the day of the week for each of the dates:
|
||||
|
||||
```
|
||||
mysql> SELECT the_date, DAYNAME(the_date) FROM test ;
|
||||
+------------+-------------------------------+
|
||||
| the_date | DAYNAME(the_date) |
|
||||
+------------+-------------------------------+
|
||||
| 2021-11-02 | Tuesday |
|
||||
| 2022-01-05 | Wednesday |
|
||||
| 2022-05-03 | Tuesday |
|
||||
| 2023-01-13 | Friday |
|
||||
+------------+-------------------------------+
|
||||
4 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
The other two methods for getting the day of the week return integer values instead of the name of the day. They are `WEEKDAY()`and `DAYOFWEEK()`. They both return numbers, but they do not return the same number. The `WEEKDAY()` function returns a number from 0 to 6, with 0 being Monday and 6 being Sunday. On the other hand, `DAYOFWEEK()` returns a number from 1 to 7, with 1 being Sunday and 7 being Saturday.
|
||||
|
||||
```
|
||||
mysql> SELECT the_date, DAYNAME(the_date),
|
||||
WEEKDAY(the_date), DAYOFWEEK(the_date) FROM test;
|
||||
+------------+------------------+------------------+--------------------+
|
||||
| the_date | DAYNAME(the_date)| WEEKDAY(the_date)| DAYOFWEEK(the_date)|
|
||||
| 2021-11-02 | Tuesday | 1 | 3 |
|
||||
| 2022-01-05 | Wednesday | 2 | 4 |
|
||||
| 2022-05-03 | Tuesday | 1 | 3 |
|
||||
| 2023-01-13 | Friday | 4 | 6 |
|
||||
+------------+------------------+------------------+--------------------+
|
||||
4 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
### When you only want part of the date
|
||||
|
||||
Sometimes you may have a date stored in your MySQL table, but you only wish to access a portion of the date. This is no problem.
|
||||
|
||||
There are several conveniently-named functions in MySQL that allow for easy access to a particular portion of a date object. To show just a few examples:
|
||||
|
||||
```
|
||||
mysql> SELECT the_date, YEAR(the_date), MONTHNAME(the_date),
|
||||
DAYOFMONTH(the_date) FROM test ;
|
||||
+-----------+---------------+-------------------+---------------------+
|
||||
| the_date | YEAR(the_date)|MONTHNAME(the_date)| DAYOFMONTH(the_date)|
|
||||
+-----------+---------------+-------------------+---------------------+
|
||||
| 2021-11-02| 2021 | November | 2 |
|
||||
| 2022-01-05| 2022 | January | 5 |
|
||||
| 2022-05-03| 2022 | May | 3 |
|
||||
| 2023-01-13| 2023 | January | 13 |
|
||||
+-----------+---------------+-------------------+---------------------+
|
||||
4 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
MySQL also allows you to use the `EXTRACT() function` to access a portion of a date. The arguments you provide to the function are a unit specifier (be sure that it's singular), `FROM`, and the column name. So, to get just the year from our test table, you could write:
|
||||
|
||||
```
|
||||
mysql> SELECT EXTRACT(YEAR FROM the_date) FROM test;
|
||||
+----------------------------------------------+
|
||||
| EXTRACT(YEAR FROM the_date) |
|
||||
+----------------------------------------------+
|
||||
| 2021 |
|
||||
| 2022 |
|
||||
| 2022 |
|
||||
| 2023 |
|
||||
+----------------------------------------------+
|
||||
4 rows in set (0.01 sec)
|
||||
```
|
||||
|
||||
### Inserting and reading dates with different formats
|
||||
|
||||
As mentioned earlier, MySQL stores date and time values using the `ISO 8601` format. But what if you want to store date and time values another way, such as MM-DD-YYYY for dates? Well, first off, don't try. MySQL stores dates and times in the `8601 format` and that's the way it is. Don't try to change that. However, that doesn't mean you have to convert your data to that particular format before you enter it into your database, or that you cannot display the data in whatever format you desire.
|
||||
|
||||
If you would like to enter a date into your table that is formatted in a non-ISO way, you can use `STR_TO_DATE()`. The first argument is the string value of the date you want to store in your database. The second argument is the formatting string which lets MySQL know how the date is organized. Let's look at a quick example, and then I'll delve a little deeper into what that odd-looking formatting string is all about.
|
||||
|
||||
```
|
||||
mysql> insert into test (the_date) values (str_to_date('January 13, 2023','%M %d, %Y'));
|
||||
|
||||
Query OK, 1 row affected (0.00 sec)
|
||||
```
|
||||
|
||||
You put the formatting string in quotes, and precede each of the special characters with a percent sign. The format sequence in the above code tells MySQL that my date consists of a full month name `(%M)`, followed by a two-digit day `(%d)`, then a comma, and finally a four-digit year `(%Y)`. Note that capitalization matters.
|
||||
|
||||
Some of the other commonly used formatting string characters are:
|
||||
|
||||
- `%b` abbreviated month name (example: Jan)
|
||||
- `%c` numeric month (example: 1)
|
||||
- `%W` name of day (example: Saturday)
|
||||
- `%a` abbreviated name of day (example: Sat)
|
||||
- `%T` 24-hour time (example: 22:01:22)
|
||||
- `%r` 12-hour time with AM/PM (example: 10:01:22 PM)
|
||||
- `%y` 2-digit year (example: 23)
|
||||
|
||||
Note that for the 2-digit year (`%y`) the range of years is 1970 to 2069. So numbers from 70 through 99 are assumed 20th century, while numbers from 00 to 69 are assumed to be 21st century.
|
||||
|
||||
If you have a date stored in your database, and you would like to display it using a different format, you can use the `DATE_FORMAT()` function:
|
||||
|
||||
```
|
||||
mysql> SELECT DATE_FORMAT(the_date, '%W, %b. %d, %y') FROM test;
|
||||
+-----------------------------------------+
|
||||
| DATE_FORMAT(the_date, '%W, %b. %d, %y') |
|
||||
+-----------------------------------------+
|
||||
| Tuesday, Nov. 02, 21 |
|
||||
| Wednesday, Jan. 05, 22 |
|
||||
| Tuesday, May. 03, 22 |
|
||||
| Friday, Jan. 13, 23 |
|
||||
+-----------------------------------------+
|
||||
4 rows in set (0.00 sec)
|
||||
```
|
||||
|
||||
### Conclusion
|
||||
|
||||
This tutorial should give you a helpful overview of date and time values in MySQL. I hope that this article has taught you something new that allows you to have both better control and a greater understanding into how your MySQL database handles temporal values.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/temporal-values-mysql
|
||||
|
||||
作者:[Hunter Coleman][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/hunterc
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://opensource.com/downloads/mariadb-mysql-cheat-sheet
|
@ -0,0 +1,153 @@
|
||||
[#]: subject: "Learn Tcl by writing a simple game"
|
||||
[#]: via: "https://opensource.com/article/23/2/learn-tcl-writing-simple-game"
|
||||
[#]: author: "James Farrell https://opensource.com/users/jamesf"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Learn Tcl by writing a simple game
|
||||
======
|
||||
|
||||
My path to Tcl started with a recent need to automate a difficult Java-based command-line configuration utility. I do a bit of automation programming using Ansible, and I occasionally use the expect module. Frankly, I find this module has limited utility for a number of reasons including: difficulty with sequencing identical prompts, capturing values for use in additional steps, limited flexibility with control logic, and so on. Sometimes you can get away with using the shell module instead. But sometimes you hit that ill-behaving and overly complicated command-line interface that seems impossible to automate.
|
||||
|
||||
In my case, I was automating the installation of one of my company's programs. The last configuration step could only be done through the command-line, through several ill-formed, repeating prompts and data output that needed capturing. The good old traditional Expect was the only answer. A deep understanding of Tcl is not necessary to use the basics of Expect, but the more you know, the more power you can get from it. This is a topic for a follow-up article. For now, I explore the basic language constructs of Tcl, which include user input, output, variables, conditional evaluation, looping, and simple functions.
|
||||
|
||||
### Install Tcl
|
||||
|
||||
On a Linux system, I use this:
|
||||
|
||||
```
|
||||
# dnf install tcl
|
||||
# which tclsh
|
||||
/bin/tclsh
|
||||
```
|
||||
|
||||
On macOS, you can use [Homebrew][1]to install the latest Tcl:
|
||||
|
||||
```
|
||||
$ brew install tcl-tk
|
||||
$ which tclsh
|
||||
/usr/local/bin/tclsh
|
||||
```
|
||||
|
||||
### Guess the number in Tcl
|
||||
|
||||
Start by creating the basic executable script `numgame.tcl`:
|
||||
|
||||
```
|
||||
$ touch numgame.tcl
|
||||
$ chmod 755 numgame.tcl
|
||||
```
|
||||
|
||||
And then start coding in your file headed up by the usual shebang script header:
|
||||
|
||||
```
|
||||
#!/usr/bin/tclsh
|
||||
```
|
||||
|
||||
Here are a few quick words about artifacts of Tcl to track along with this article.
|
||||
|
||||
The first point is that all of Tcl is considered a series of strings. Variables are generally treated as strings but can switch types and internal representations automatically (something you generally have no visibility into). Functions may interpret their string arguments as numbers ( `expr`) and are only passed in by value. Strings are usually delineated using double quotes or curly braces. Double quotes allow for variable expansion and escape sequences, and curly braces impose no expansion at all.
|
||||
|
||||
The next point is that Tcl statements can be separated by semicolons but usually are not. Statement lines can be split using the backslash character. However, it's typical to enclose multiline statements within curly braces to avoid needing this. Curly braces are just simpler, and the code formatting below reflects this. Curly braces allow for deferred evaluation of strings. A value is passed to a function before Tcl does variable substitution.
|
||||
|
||||
Finally, Tcl uses square brackets for command substitution. Anything between the square brackets is sent to a new recursive invocation of the Tcl interpreter for evaluation. This is handy for calling functions in the middle of expressions or for generating parameters for functions.
|
||||
|
||||
### Procedures
|
||||
|
||||
Although not necessary for this game, I start with an example of defining a function in Tcl that you can use later:
|
||||
|
||||
```
|
||||
proc used_time {start} {
|
||||
return [expr [clock seconds] - $start]
|
||||
}
|
||||
```
|
||||
|
||||
Using `proc` sets this up to be a function (or procedure) definition. Next comes the name of the function. This is then followed by a list containing the parameters; in this case 1 parameter `{start}` and then followed by the function body. Note that the body curly brace starts on this line, it cannot be on the following line. The function returns a value. The returned value is a compound evaluation (square braces) that starts by reading the system clock `[clock seconds]` and does the math to subtract out the `$start` parameter.
|
||||
|
||||
### Setup, logic, and finish
|
||||
|
||||
You can add more details to the rest of this game with some initial setup, iterating over the player's guesses, and then printing results when completed:
|
||||
|
||||
```
|
||||
set num [expr round(rand()*100)]
|
||||
set starttime [clock seconds]
|
||||
set guess -1
|
||||
set count 0
|
||||
|
||||
puts "Guess a number between 1 and 100"
|
||||
|
||||
while { $guess != $num } {
|
||||
incr count
|
||||
puts -nonewline "==> "
|
||||
flush stdout
|
||||
gets stdin guess
|
||||
|
||||
if { $guess < $num } {
|
||||
puts "Too small, try again"
|
||||
} elseif { $guess > $num } {
|
||||
puts "Too large, try again"
|
||||
} else {
|
||||
puts "That's right!"
|
||||
}
|
||||
}
|
||||
|
||||
set used [used_time $starttime]
|
||||
|
||||
puts "You guessed value $num after $count tries and $used elapsed seconds"
|
||||
```
|
||||
|
||||
The first `set` statements establish variables. The first two evaluate expressions to discern a random number between 1 and 100, and the next one saves the system clock start time.
|
||||
|
||||
The `puts` and `gets` command are used for output to and input from the player. The `puts` I've used imply standard out for output. The `gets` needs the input channel to be defined, so this code specifies `stdin` as the source for terminal input from the user.
|
||||
|
||||
The `flush stdout` command is needed when `puts` omits the end-of-line termination because Tcl buffers output and it might not get displayed before the next I/O is needed.
|
||||
|
||||
From there the `while` statement illustrates the looping control structure and conditional logic needed to give the player feedback and eventually end the loop.
|
||||
|
||||
The final `set` command calls our function to calculate elapsed seconds for gameplay, followed by the collected stats to end the game.
|
||||
|
||||
### Play it!
|
||||
|
||||
```
|
||||
$ ./numgame.tcl
|
||||
Guess a number between 1 and 100
|
||||
==> 100
|
||||
Too large, try again
|
||||
==> 50
|
||||
Too large, try again
|
||||
==> 25
|
||||
Too large, try again
|
||||
==> 12
|
||||
Too large, try again
|
||||
==> 6
|
||||
Too large, try again
|
||||
==> 3
|
||||
That's right!
|
||||
You guessed value 3 after 6 tries and 20 elapsed seconds
|
||||
```
|
||||
|
||||
### Continue learning
|
||||
|
||||
When I started this exercise, I doubted just how useful going back to a late 1990s fad language would be to me. Along the way, I found a few things about Tcl that I really enjoyed — my favorite being the square bracket command evaluation. It just seems so much easier to read and use than many other languages that overuse complicated closure structures. What I thought was a [dead language][2] was actually still thriving and supported on several platforms. I learned a few new skills and grew an appreciation for this venerable language.
|
||||
|
||||
Check out the official site over at [https://www.tcl-lang.org][3]. You can find references to the latest source, binary distributions, forums, docs, and information on conferences that are still ongoing.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/learn-tcl-writing-simple-game
|
||||
|
||||
作者:[James Farrell][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jamesf
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://opensource.com/article/20/6/homebrew-mac
|
||||
[2]: https://opensource.com/article/19/6/favorite-dead-language
|
||||
[3]: https://www.tcl-lang.org
|
@ -0,0 +1,129 @@
|
||||
[#]: subject: "Endless OS 5.0 Review: The Best of GNOME with Wayland and Apps"
|
||||
[#]: via: "https://www.debugpoint.com/endless-os-5-0-review/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Endless OS 5.0 Review: The Best of GNOME with Wayland and Apps
|
||||
======
|
||||
|
||||
**A new version of Endless OS 5.0 is out now, bringing more features and stability. Here’s a quick review of this release.**
|
||||
|
||||
Before the immutability became hype, Endless OS provided a productive desktop experience based on [OSTree][1]. It is packaged from Debian and Ubuntu but is being developed independently. Thanks to OSTree-based internals, Endless OS works in its user space while giving you the best desktop experience.
|
||||
|
||||
It’s a perfect distribution for schools, small-scale deployments, labs and offline use cases.
|
||||
|
||||
A new release, i.e. Endless OS 5.0, is now available. Here’s a quick recap of the features with an in-depth review.
|
||||
|
||||
> We believe that access to personal computing is critical for productivity, learning and job skills.We have dedicated the last 10 years to designing and delivering an operating system and tools that give people access to, and control over their technology.With our tools for productivity, creativity, and learning through play and discovery, we help people of all backgrounds engage in the digital economy on more meaningful terms.Endless OS mission statement
|
||||
|
||||
### Endless OS 5.0 Review
|
||||
|
||||
Since this OS aims to provide digital computing access to less privileged folks, it features a Windows installer. You can directly download it and try it out inside the Windows environment.
|
||||
|
||||
Also, it provides a dedicated stand-alone ISO image for installation via a USB stick.
|
||||
|
||||
The last time I reviewed Endless OS in 2021, it didn’t come with an ARM version. I am surprised to find out that it has an ARM image which you can try on Raspberry Pi and other ARM boards.
|
||||
|
||||
During my test install, all went fine. It uses a custom installer, similar to Fedora’s Anaconda installer. However, installation requires a full disk. If you prefer dual-boot, a detailed guide is [present here.][2] However, I feel it’s a little complex setup.
|
||||
|
||||
![Endless OS installation in Windows][3]
|
||||
|
||||
#### Login and first look
|
||||
|
||||
This version is based on [Debian 11 “bullseye”][4] release and features Linux mainline [Ker][5][n][5][el 5.15][5]. Also, separate repo is provided for native apps from the team. The desktop is based on [GNOME 41][6] release.
|
||||
|
||||
A few items were changed on the look-n-feel side of this release. Firstly, the bottom panel is changed to show the basic GNOME-style dock. It is always visible and goes away when you move a window over it. Earlier, it was a fixed standard panel with an application icon, system tray and running apps widgets.
|
||||
|
||||
Secondly, a new top panel is introduced, following the GNOME design. It contains activities, application launchers and the system tray.
|
||||
|
||||
![Look has changed since prior release with dock and top panel in Endless OS 5.0][7]
|
||||
|
||||
##### Endless OS 4.0 look (a lot has changed)
|
||||
|
||||
![Endless OS Desktop version 4.0][8]
|
||||
|
||||
#### Unique customization of GNOME desktop and workspaces
|
||||
|
||||
The default look remains the same, including the desktop application view with a search box. The application at the top panel is a toggle to the running application and desktop view.
|
||||
|
||||
The super key is also a toggle to the running application and workspace view, which is super handy. The windows have the minimize, maximize and close buttons at the top-right; they don’t require tweaks.
|
||||
|
||||
However, one of the liked features is dropped in this version. In [Endless OS 4.0][9], when you click the empty section of the desktop, it immediately minimizes all the open windows and shows you the desktop. However, this feature is no longer available. It was such a handy feature for a smooth workflow.
|
||||
|
||||
#### Introduction of Wayland in Endless OS 5.0
|
||||
|
||||
The modern display server Wayland arrives in Endless OS for the first time in this release. The default login is Wayland. However, you can switch to X.Org from the login screen. You can feel the fluid animations, gestures and performance in Endless OS, thanks to Wayland.
|
||||
|
||||
#### Gesture Support
|
||||
|
||||
Endless OS 5.0 also introduces multi-gesture support. You can now use a three-finger swipe left and right via trackpad/touchpad to browse workspaces. Also, the three-finger swipe-up toggles the app grid and workspaces.
|
||||
|
||||
Pinch-to-zoom is also available for supported apps, including two-finger scrolling.
|
||||
|
||||
This is a much-needed update to further boost your productivity in Endless OS.
|
||||
|
||||
#### App Center, Flatpak and applications
|
||||
|
||||
Endless OS being an immutable distro, all your apps run on a separate userspace. By default, it only supports Flatpak packages. World’s largest Flatpak repo Flathub is configured by default. You can search and install any Flatpak apps directly from AppCenter.
|
||||
|
||||
![Flathub repo is pre-configured for Flatpak apps][10]
|
||||
|
||||
However, by default, almost all the needed apps are pre-installed. A complete LibreOffice package is there if you want to work on documents. Also included Chromium web browser with Ad-Block pre-packaged! In addition, you get Gedit text editor, Shotwell image viewer, Brasero disk burning app, Files as a file manager and Kolibri to manage your school/home workflow.
|
||||
|
||||
All the native GNOME apps are now Flatpak versions by default instead of apt. This is one of the key changes in Endless OS 5.0.
|
||||
|
||||
![Kolibri is one of the amazing app - pre-loaded][11]
|
||||
|
||||
#### Help Center
|
||||
|
||||
One of the great features of Endless OS is the offline help available from the help app. You can also access it via the desktop search function.
|
||||
|
||||
Any student or first-time user can quickly learn the basic functions of a desktop, such as “how to change a password” or “how to create an account”, and many such items. All of these are available as offline help files.
|
||||
|
||||
![Endless OS desktop offline help][12]
|
||||
|
||||
### Wrapping up
|
||||
|
||||
Endless OS 5.0 brings much-needed changes such as Wayland and gesture support while sticking to its principle to be an easy-to-use distribution for the masses. It’s a well-designed and thoughtful distro perfect for offline/remote usage, labs, schools and communities. Linux, when configured right, can impact millions – those who can’t afford pricy software.
|
||||
|
||||
Also, for the average user, this can be a perfect distro if you plan to run it for years. You can save yourself from the hassles of upgrades, system breaks, commands, dependency issues and so on.
|
||||
|
||||
An excellent release from the team for the community. You can download it from the below link.
|
||||
|
||||
[Download Endless OS][13]
|
||||
|
||||
What do you think about this release as a whole? Do let me know in the comment box.
|
||||
|
||||
_[v5.0 release notes][14]_
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/endless-os-5-0-review/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://ostree.readthedocs.io/en/stable/
|
||||
[2]: https://support.endlessos.org/en/installation/windows-installer/dual-boot
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2023/02/Endless-OS-installation-in-Windows.jpg
|
||||
[4]: https://www.debugpoint.com/debian-11-features/
|
||||
[5]: https://www.debugpoint.com/linux-kernel-5-15/
|
||||
[6]: https://www.debugpoint.com/gnome-41-release/
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2023/02/Look-has-changed-since-prior-release-with-dock-and-top-panel-in-Endless-OS-5.0.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/Endless-OS-Desktop-version-4.0.jpg
|
||||
[9]: https://www.debugpoint.com/endless-os-review-2021
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2023/02/Flathub-repo-is-pre-configured-for-Flatpak-apps.jpg
|
||||
[11]: https://www.debugpoint.com/wp-content/uploads/2023/02/Kolibri-is-one-of-the-amazing-app-pre-loaded.jpg
|
||||
[12]: https://www.debugpoint.com/wp-content/uploads/2023/02/Endless-OS-desktop-offline-help.jpg
|
||||
[13]: https://www.endlessos.org/os-windows-installer
|
||||
[14]: https://support.endlessos.org/en/endless-os/release-notes/5
|
@ -0,0 +1,103 @@
|
||||
[#]: subject: "How we hired an open source developer"
|
||||
[#]: via: "https://opensource.com/article/22/2/how-we-hired-open-source-developer"
|
||||
[#]: author: "Mike Bursell https://opensource.com/users/mikecamel"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "XiaotingHuang22"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
我们如何聘请开源开发人员
|
||||
======
|
||||
我的团队不再采用标准的算法编程练习,而是采用一套能够产出更多相关成果的流程。
|
||||
![同一团队里来自不同地方的人][1]
|
||||
|
||||
作为初创安全公司 [Profian][2] 的首席执行官和联合创始人,我参与了我们聘请开发人员从事 [Enarx][3] 的工作。Enarx是一个处理机密信息计算的安全项目,几乎完全用 [Rust语言][4] 编写(少部分用Assembly)。 Profian 现在已经在这次招聘找到了所有要找的人,一些开发人员将在接下来的几周内开始工作。然而,Enarx 绝对欢迎新的贡献者,如果事情继续顺利,公司将来肯定会雇用更多的人。
|
||||
|
||||
招聘人员并不容易,加上Profian还有一系列特别的要求,这让招人变得更加困难。因此我认为分享我们如何解决这个问题应该还蛮有意思的,而且也会对社区有帮助。
|
||||
|
||||
### 我们寻找什么样的人才?
|
||||
|
||||
以下就是我前文提到的特别要求:
|
||||
|
||||
* **系统编程:** Profian主要需要那些喜欢系统层编程的人。这一层面的编程已经处于栈的底层,有很多直接与硬件或操作系统的交互。例如,要创建客户端-服务器部分,我们必须编写相当多的协议、管理加密等等,而这方面的工具还不是很成熟(请参阅下面的“Rust”)。
|
||||
|
||||
* * **Rust:** 几乎所有项目都是用 Rust 语言编写的,那些不是的则是用Assembly写的(目前只有 x86,尽管随着我们添加更多平台情况可能会有所改变)。 Rust是一门很新、很酷同时也令人兴奋的编程语言,但它同时也很年轻,并且一些领域没有你想要的所有支持或者没有你希望的那么成熟——从多线程库的密码学到编译器/构建基本架构。
|
||||
|
||||
* **分散各地的团队:** Profian正在建立一个能够及时通讯联系的团队。 Profian 在德国、芬兰、荷兰、北卡罗来纳州(美国)、马萨诸塞州(美国)、弗吉尼亚州(美国)和乔治亚州(美国)都有开发人员。我在英国,我们的社区经理在巴西,我们有来自印度和尼日利亚的实习生。从一开始我们就知道团队很难聚集在一个地方工作,因此我们需要能够通过视频、聊天和(最不济的情况下)电子邮件与人交流和协作的成员。
|
||||
|
||||
* * **安全:** Enarx 是一个安全项目。虽然我们并不是在寻找安全专家,但我们需要能够将安全放在首位去思考和工作,并设计和编写适用于安全环境的代码的人。
|
||||
|
||||
* * **Git:** 我们所有的代码都存储在 git 中(主要是 [GitHub][5],还有一些存在 GitLab)。我们围绕代码的大部分交互都是围绕git进行的,因此任何加入我们团队的人都需要能自如使用它作为日常工作中的标准工具。
|
||||
|
||||
* **开源:** 开源不仅仅是许可;更是一种心态,同等重要的,这也是一种合作方式。大量开源软件是由不同地域的人创建的,他们甚至可能不认为彼此身处于一个团队。我们需要知道我们招的人不仅能在公司内部凝聚成一个紧密的团队,同时也能够与组织外部的人员协作,并接受 Profian 的“默认开放”文化,这里的开放不仅仅限于代码,还要有开放的讨论、沟通和文档。
|
||||
|
||||
|
||||
|
||||
### 我们是如何找到人才的?
|
||||
|
||||
正如我在其他地方提到的,[招聘很困难][6]。Profian 使用多种方式寻找候选人,它们取得了不同程度的成功:
|
||||
|
||||
* 领英招聘广告
|
||||
* 领英搜索
|
||||
* 特定语言的讨论板和招聘板(例如,Reddit)
|
||||
* 外部招募人员(特别致敬来自[Interstem][7]公司的Gerald)
|
||||
* 口口相传/个人推荐
|
||||
|
||||
|
||||
|
||||
虽然很难从质量方面判断这些来源如何,但如果没有外部招聘人员,我们肯定会在数量上苦苦挣扎(我们也有一些来自该途径的优秀候选人)。
|
||||
|
||||
### 我们如何筛选出想要的人才?
|
||||
|
||||
我们需要按照上述的所有要求衡量所有候选人,但并非所有要求都是同等重要的。例如,虽然我们热衷于雇用 Rust 程序员,但那些在系统级别具有强大 C/C++ 技能的人也能成为团队里有用的一份子,因为她们能够很快掌握 Rust 语言。另一方面,熟悉使用 git 是至关重要的,因为我们无法花时间去培养新团队成员,让他们跟上我们的工作方式。
|
||||
|
||||
你可能会觉得很惊讶,但强大的开源背景并不是必需的要求,但在类似模式中工作的心态是必需的,而任何有开源参与历史的人都可能对 git 有很好的了解。同理,在一个分散各地的团队中工作的能力这一条件上,我们认为有过任意开源社区的参与经历都会是个积极的指标,因为有如此多的开源项目都是由分散各地的人们完成的。至于安全这一条件,我们则一致决定只是一个“锦上添花”的条件。
|
||||
|
||||
我们想让这个过程简单快捷。 Profian没有设置专门的人力资源部门或人力职能,因为我们正忙于编写代码。以下是我们最终使用的招聘流程(实际流程中可能略有不同),我们试图在 1-2 周内完成招聘:
|
||||
|
||||
1. 初审:个人履历/简历/GitHub/GitLab/领英主页,决定是否面试
|
||||
2. 我作为CEO和候选人进行一场30-40分钟的讨论,了解他们是否适合我们团队的文化,同时让他们有机会了解我们,并了解他们是否真的像在初审提交的材料中所说的那样精通技术
|
||||
3. 由 Nathaniel 领导的有关技术方面的深入讨论,通常我也在场
|
||||
4. 与团队其他成员谈话
|
||||
5. 编码练习题
|
||||
6. 快速决策(通常在24小时内)
|
||||
|
||||
|
||||
|
||||
编码练习题很关键,但我们决定不采用通常的方法。 我们的观点是,许多科技公司钟爱的纯“算法编码”练习对我们想要的几乎毫无用处:考察候选人是否可以快速理解一段代码,解决一些问题,并与团队合作完成以上的工作。我们创建了一个 GitHub 存储库,其中包含一些几乎可以正常运行的 Rust 代码(事实上,我们最终使用了两个,其中一个用于技术栈上层的人),然后让候选人修复它,在上面执行一些与 git 相关的过程,并稍作改进,在此过程中添加测试。
|
||||
|
||||
测试中一个必不可少的部分是让候选人通过我们的聊天室与团队互动。我们安排了 15 分钟的视频通话时间用于设置和初始问题,两个小时用于做习题(“开卷”——以及与团队交谈,鼓励候选人使用互联网上所有可用的资源),然后是 30 分钟的总结会议,在这个会议上团队可以提出问题,候选人可以反思任务。这次谈话,结合练习期间的聊天互动,让我们了解了候选人与团队沟通的能力。候选人挂断电话之后我们通常会在5-10分钟内决定是否要雇用他们。
|
||||
|
||||
这种方法通常效果很好。一些候选人在任务上遇到困难,一些人沟通不畅,一些人在git交互方面做得不好——这些是我们没有雇用的人。 这并不意味着他们不是优秀的程序员或者不适合未来的项目或公司,但他们不符合我们现在需要的标准。在我们聘用的开发人员中,他们的Rust经验水平和与团队互动的需求各不相同,但git专业知识水平以及他们在和我们讨论之后的反应始终足以让我们决定接受他们。
|
||||
|
||||
|
||||
### 反思
|
||||
|
||||
总的来说,我认为我们不会对筛选过程进行大量更改——尽管我很确定我们可以在搜寻过程环节做得更好。通过编码习题测试,我们可以筛选掉相当多的候选人,而且很好地帮了我们挑选合适的人。希望通过了这次选拔的每个人都很适合这个项目并且产出出色的代码(以及测试和文档等等)。时间会证明一切!
|
||||
|
||||
* * *
|
||||
|
||||
本文最初出现在 [Alice、Eve 和 Bob – 安全博客][8] 上,经许可后重新发布。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/2/how-we-hired-open-source-developer
|
||||
|
||||
作者:[Mike Bursell][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[XiaotingHuang22](https://github.com/XiaotingHuang22)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/mikecamel
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/connection_people_team_collaboration.png?itok=0_vQT8xV (people in different locations who are part of the same team)
|
||||
[2]: https://profian.com/
|
||||
[3]: https://enarx.dev/
|
||||
[4]: https://opensource.com/article/21/3/rust-programmer
|
||||
[5]: https://github.com/enarx/
|
||||
[6]: https://aliceevebob.com/2021/11/09/recruiting-is-hard/
|
||||
[7]: https://www.interstem.co.uk/
|
||||
[8]: https://aliceevebob.com/
|
@ -0,0 +1,125 @@
|
||||
[#]: subject: "Why Enterprises Should Opt for Platform as a Service"
|
||||
[#]: via: "https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/"
|
||||
[#]: author: "Gopala Krishna Behara https://www.opensourceforu.com/author/gopalakrishna-behara/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "onionstalgia"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
为什么企业应该选择平台即服务(PaaS)
|
||||
======
|
||||
*<ruby>平台即服务<rt>PaaS</rt></ruby> "能够快速、轻松地创建网络应用,而无需购买和维护其下的软件和基础设施。本文解释了它为什么有用。*
|
||||
|
||||
平台即服务(以下简称 PaaS)是一种“免去了建立和维护基础设施的复杂工作,为客户提供开发、运行和管理应用程序的平台”的云计算服务。这是云原生应用和支持系统所依托的核心平台。
|
||||
|
||||
PaaS 通常包括不同的应用基础功能,包括应用平台、集成平台、业务分析平台、事件流服务和移动后端服务。此外,它还包括一套与监控、管理、部署相关的功能。
|
||||
|
||||
开发人员希望他们的开发环境不需要等待,而运营团队则更关心性能和稳定性。这经常引起两方间的冲突。PaaS 为这两方创造了和平的环境。作为服务交付的应用平台,即 PaaS,被用于部署用户代码。Cloud Foundry、Cloudify 和 OpenShift 这些开源环境都可用作 PaaS。
|
||||
|
||||
### PaaS 的采用模式
|
||||
|
||||
云计算必须满足五个基本特征——按需服务、接入网络、资源池化、弹性和可度量的服务。为此,云计算提供了三种服务模式:软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)。
|
||||
|
||||
业务选用 PaaS 的关键驱动力:
|
||||
|
||||
* 减少提供业务的资本支出和运营费用
|
||||
* 通过减少应用程序的交付时间和提高开发和交付质量,最大限度地降低 IT 成本
|
||||
* 增加中间件之间的灵活性和集成度
|
||||
|
||||
**简单 PaaS** 是踏入 PaaS 领域的入门。它可以提供应用程序服务,并将它们暴露在自助服务的目录中,自动部署和计量服务使用的资源。
|
||||
|
||||
*管理 PaaS* 管理已配置应用程序的<ruby>服务级别协议<rt>SLA</rt></ruby>和<ruby>服务质量<rt>QoS</rt></ruby>,例如弹性、应用程序性能、安全性等。
|
||||
|
||||
*编程 PaaS* 允许应用程序与外部应用程序或公共云集成,并实现自动扩展和云爆发场景。
|
||||
|
||||
*<ruby>面向流程<rt>Process-oriented</rt></ruby> PaaS* 允许通过创建持续交付流程来实现<ruby>开发运维<rt>DevOps</rt></ruby>流程,该流程可以自动构建、测试应用程序并将其交付到云环境中。
|
||||
|
||||
除了这些采用模式之外,还有其他的 PaaS 变体如下,这些变化可能与上文的模式有一定重合。
|
||||
|
||||
**<ruby>集成平台即服务<rt>iPaaS</rt></ruby>**是一套能够开发、执行和管理集成流的云服务。集成流可以是个人内部或跨多个组织连接的,可以包含任何企业内部或基于云的流程、服务、应用和数据。这些组合变化可能也符合上述的模式之一,例如 MuleSoft CloudHub 和 BizTalk。
|
||||
|
||||
**<ruby>移动平台即服务<rt>mPaaS</rt></ruby>**是为开发移动应用提供的<ruby>集成开发环境<rt>IDE</rt></ruby>,并且支持多种移动平台。
|
||||
|
||||
**<ruby>数据库平台即服务<rt>dbPaas</rt></ruby>**是一种按需的、安全且可扩展的自助式数据库平台,可自动配置和管理数据库。dbPaaS 使扩展数据库变得更加容易,并使它们更加可靠。
|
||||
|
||||
**<ruby>物联网平台即服务<rt>IoTPaaS</rt></ruby>**提供了实现异构物联网拓扑所需的通信、安全、分析和管理的通用基础架构。它为构建物联网解决方案提供了更简单、更敏捷的模型。
|
||||
|
||||
**<ruby>业务流程管理平台即服务<rt>bpmPaaS</rt></ruby>**是一个完整的预集成业务流程管理平台,托管在云端并作为服务交付。它被用于开发和执行整个企业的业务流程和以工作流程为中心的应用程序。例如 Pega cloud 和 OpenText Cordys cloud。
|
||||
|
||||
PaaS 的一些基本特征:
|
||||
|
||||
* 在同一集成开发环境中开发、测试、部署、托管和维护应用程序的服务
|
||||
* 多租户架构,即多个并发用户使用同样的开发程序
|
||||
* 部署软件的内置可扩展性,包括负载平衡和故障转移
|
||||
* 与异构平台和系统的集成
|
||||
* 支持开发团队的协作
|
||||
* 包含处理帐单和管理订阅的工具
|
||||
|
||||
### 主要的开源 PaaS
|
||||
|
||||
在选择 PaaS 之前,企业主要考虑关注以下几点:
|
||||
|
||||
* 部署灵活性
|
||||
* 操作简便性
|
||||
* 应用堆栈的选择
|
||||
* 语言、数据库和框架支持
|
||||
* 规模的可扩展性
|
||||
* <ruby>服务质量<rt>QoS</rt></ruby>
|
||||
* 开发和运营的工具
|
||||
* 它有多适合你的业务
|
||||
|
||||
现在让我们快速浏览下流行的开源 PaaS。
|
||||
|
||||
**Cloud Foundry:**提供了多种云的选择、开发者框架和应用服务。Cloud Foundry 使构建、测试、部署和扩展应用程序变得更快、更容易。
|
||||
|
||||
它有不同的发行版本,其中比较流行的是 Pivotal 和 IBM。它包含应用<ruby>运行时<rt>runtime</rt></ruby>和容器运行时。在 Pivotal 上包含有应用服务和容器服务。
|
||||
|
||||
**OpenShift:**红帽的云计算 PaaS 产品。这是一个云端的应用平台,应用开发者和团队可以在这里构建、测试、部署和运行他们的应用程序。
|
||||
|
||||
**Cloudify:** 在开放的原则下开发和设计,用以推动 IT 转型革命。它使组织能够在其上设计、建立和提供各种商业应用和网络服务。Cloudify 的最新版本为 4.3,它包含了先进的安全、控制和<ruby>真自服务<rt>true self-service</rt></ruby>等增强功能。Cloudify 4.3 还为 Kubernetes 容器编排引入了全新的概念。
|
||||
|
||||
| 功能 | Cloud Foundry | Cloudify | OpenShift |
|
||||
| :- | :- | :- | :- |
|
||||
| 核心功能 | Cloud controller | Manager | Broker |
|
||||
| 提供第三方数据库服务 | Service broker | Agent | Cartridge |
|
||||
| 传入流量的路由 | Router | Manager | REST API |
|
||||
| 查询应用程序的状态 | Cloud controller | CLI client | Broker |
|
||||
| 消息传递 | Message bus | Manager | Broker |
|
||||
| 应用实例管理 | Droplet execution agent | Agent | Node |
|
||||
| 应用程序状态管理 | Health manager | Manager | Broker |
|
||||
| Broker | Warden | Agent | Gear |
|
||||
| 用户请求的负载平衡 | Droplet execution agent | Manager | Broker |
|
||||
| 框架提供者 | Blob store | Agent | Cartridge |
|
||||
|技术 ||||
|
||||
| 语言 | Java, Ruby, Scala, Node.js, Groovy, Grails, PHP, Go, Python | Java, PHP, Ruby | Java, Ruby, Node.js, PHP, Python, Perl, JavaScript|
|
||||
| 数据库 | MongoDB,MySQL |||
|
||||
|MongoDB、MySQL、PostgreSQL | MySQL、MongoDB | MongoDB、MySQL、PostgreSQL||
|
||||
| 框架 | Spring, Rails, Grails, Play Sinatra | JavaScript, Node.js | Rails, Flask, Django, Drupal, Vertx |
|
||||
| 水平扩展 | 是 | 是 | 是|
|
||||
| 垂直扩展 | 是 | 否 | 是|
|
||||
| 弹性伸缩 | 是 | 是 | 是|
|
||||
|
||||
表 1 列出了 Cloud Foundry、Cloudify 和 OpenShift 的基本功能及其对应的架构组件。以上完全基于个人观点,所支持的功能的真实需求应与云供应商进行验证。
|
||||
|
||||
从行业统计数据中,我们可以清楚地看出 PaaS 的使用率正在迅速上升。PaaS 使企业应用程序可以是<ruby>云无关<rt>cloud-agnostic</rt></ruby>的,它们可以在任何云平台上运行——无论是公共的还是私有的。这意味着一个在亚马逊的 AWS 上开发的应用可以很容易地移植到微软 Azure、VMWare vSphere、Red Hat RHEV 等等其他平台。
|
||||
|
||||
当多个开发人员共同参与一个开发项目,或外部用户需要与开发过程协作时,PaaS 是很有用的。因此,PaaS 尤其适合于敏捷开发,因为它降低了围绕软件快速开发和迭代的难度。
|
||||
|
||||
### 鸣谢
|
||||
|
||||
作者感谢 Kiran M.R. 和 Wipro 有限公司的数字架构实践 Raju Alluri 为本文提供的支持。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.opensourceforu.com/2022/09/why-enterprises-should-opt-for-platform-as-a-service/
|
||||
|
||||
作者:[Gopala Krishna Behara][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[onionstalgia](https://github.com/onionstalgia)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.opensourceforu.com/author/gopalakrishna-behara/
|
||||
[b]: https://github.com/lkxed
|
@ -0,0 +1,260 @@
|
||||
[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]"
|
||||
[#]: via: "https://www.debugpoint.com/systemd-journalctl/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "Chao-zhi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
如何使用 journalctl 查看和分析 Systemd 日志 [附实例] 。
|
||||
======
|
||||
|
||||
**本指南介绍了 [Systemd][1] 的 journalctl 工具及其各种命令的基础知识。你可以使用这些命令对 Linux 中的桌面和服务器日志进行故障诊断。以下是如何使用 journalctl 查看和分析 Systemd 日志的不同例子。**
|
||||
|
||||
### 简介
|
||||
|
||||
很多人说 Systemd 不好,它对系统的影响很大,这也是一个有争议的话题。但你不能否认的是,它提供了一套完善的工具来管理和排除系统故障。想象一下,当你遇到一个没有 GUI 的坏系统时,你可能会把启动和 GRUB 弄得一团糟。在这种情况下,你可以从一个 live 系统启动,挂上你的 Linux 分区,然后浏览 Systemd 的日志,找出问题所在。
|
||||
|
||||
Systemd有三个基本组件,如下所示:
|
||||
|
||||
- **systemd**。Linux 操作系统的系统和服务管理器。
|
||||
- **systemctl**。命令,用于反观和控制 systemd 系统和服务管理器的状态。
|
||||
- **systemd-analyze**。提供系统启动时的性能统计,并从系统和服务管理器中检索其他状态和跟踪信息。
|
||||
|
||||
除了这三个服务外,systemd 还提供其他服务,如 journald、logind、networkd 等。在本指南中,我们将讨论 systemd 的 journald 服务。
|
||||
|
||||
### journald - systemd日志服务
|
||||
|
||||
根据设计,systemd 提供了一个集中的方式来处理所有来自进程、应用程序等的操作系统日志。所有这些日志事件都由 systemd 的 journald 守护进程来处理。journald 守护进程收集所有来自 Linux 操作系统各处的日志,并将其作为二进制数据存储在文件中。
|
||||
|
||||
集中记录事件、系统问题作为二进制数据的好处有很多。例如,由于系统日志是以二进制而不是文本形式存储的--你可以以多种方式进行翻译,如文本、JSON对象,以满足各种需求。另外,由于日志是按顺序存储的,通过对日志的日期/时间操作,超级容易追踪到单个事件。
|
||||
|
||||
请记住,journald 收集的日志文件有几千行,而且每次开机都会对每个事件进行更新。因此,如果你有一个长期运行的 Linux 操作系统--日志的大小应该以 GB 为单位。由于有着数以千计的日志,最好用基本命令进行过滤,以了解更多系统问题。
|
||||
|
||||
#### journald 配置文件
|
||||
|
||||
journald 的配置文件存在于以下路径中。它包含了关于如何进行日志记录的各种标志。你可以看一下这个文件,并进行必要的修改。但我建议不要修改这个文件,除非你知道自己在做什么。
|
||||
|
||||
```
|
||||
/etc/systemd/journald.conf
|
||||
```
|
||||
|
||||
#### journald 存储二进制日志文件的地方
|
||||
|
||||
journald 以二进制格式存储日志。它们被保存在这个路径下的一个目录中。
|
||||
|
||||
```
|
||||
/var/log/journal
|
||||
```
|
||||
|
||||
例如,在下面的路径中,有一个目录包含了迄今为止的所有系统日志。
|
||||
|
||||
![journalctl log file path][2]
|
||||
|
||||
不要使用 cat 命令,也不要使用 nano 或 vi 来打开这些文件。它们将无法正常显示。
|
||||
|
||||
### 使用 journalctl 来查看和分析 systemd 日志
|
||||
|
||||
#### journald 基本命令
|
||||
|
||||
使用 journal daemon 查看日志的基本命令是:
|
||||
|
||||
```
|
||||
journalctl
|
||||
```
|
||||
|
||||
![journalctl][3]
|
||||
|
||||
该命令提供了所有应用程序和进程的日志条目,包括错误、警告等。它显示的列表中,最古老的日志在顶部,当前的日志在底部。你需要不断按回车键来逐行滚动浏览。你也可以使用 PAGE UP 和 PAGE DOWN 键来滚动。按 q 键可以退出这个视图。
|
||||
|
||||
#### 如何以不同时区的时间查看日志条目
|
||||
|
||||
默认情况下,journalctl 显示的是当前系统时区的日志时间。然而,你可以很容易地在命令中提供时区,将同一日志转换为不同的时区。例如,要查看 UTC 的日志,请使用以下命令:
|
||||
|
||||
```
|
||||
journalctl --utc
|
||||
```
|
||||
|
||||
![journalctl --utc][4]
|
||||
|
||||
#### 如何在日志中只查看错误、警告等信息
|
||||
|
||||
系统产生的日志有不同的优先级。有些日志可能是可以忽略的警告,有些可能是重要的错误。你可能想只看错误,不看警告。这也可以用下面的命令来实现。
|
||||
|
||||
要查看紧急系统信息,请使用:
|
||||
|
||||
```
|
||||
journalctl -p 0
|
||||
```
|
||||
|
||||
![journalctl -p 0][5]
|
||||
|
||||
错误代码:
|
||||
|
||||
```
|
||||
0: 紧急情况
|
||||
1: 警报
|
||||
2: 危急
|
||||
3: 错误
|
||||
4: 警告
|
||||
5: 通知
|
||||
6: 信息
|
||||
7:调试
|
||||
```
|
||||
|
||||
当你指定错误代码时,它显示该等级及比他等级更高的所有信息。例如,如果你指定下面的命令,它会显示所有优先级为 2、1 和 0 的信息:
|
||||
|
||||
```
|
||||
journalctl -p 2
|
||||
```
|
||||
|
||||
#### 如何查看特定启动的日志
|
||||
|
||||
当你运行 journalctl 命令时,它会显示当前启动的信息,即你正在运行的会话中的信息。但也可以查看过去启动的信息。
|
||||
|
||||
在每次重启时,日志都会持续更新。journald 会记录不同启动时的日志。要查看不同启动时的日志,请使用以下命令。
|
||||
|
||||
```
|
||||
journalctl --list-boots
|
||||
```
|
||||
|
||||
![journalctl list-boots][6]
|
||||
|
||||
- 第一个数字显示的是 journald 的唯一的启动跟踪号码,你可以在下一个命令中使用它来分析该特定的启动。
|
||||
|
||||
- 第二个数字是 boot ID,你也可以在命令中指定。
|
||||
|
||||
- 接下来的两个日期、时间组合是存储在相应文件中的日志的时间。如果你想找出某个特定日期、时间的日志或错误,这就非常方便了。
|
||||
|
||||
要查看一个特定的启动号码,你可以选择第一个号码或启动 ID,如下所示。
|
||||
|
||||
```
|
||||
journalctl -b -45
|
||||
```
|
||||
|
||||
```
|
||||
journalctl -b 8bab42c7e82440f886a3f041a7c95b98
|
||||
```
|
||||
|
||||
![journalctl -b 45][7]
|
||||
|
||||
你也可以使用 `-x` 选项,在显示屏上添加 systemd 错误信息的解释。在某些情况下,这是个救命稻草。
|
||||
|
||||
```
|
||||
journalctl -xb -p 3
|
||||
```
|
||||
|
||||
![journalctl -xb][8]
|
||||
|
||||
#### 如何查看某一特定时间、日期的日志记录
|
||||
|
||||
journalctl 功能强大,可以在命令中提供类似 "english" 的参数,用于时间和日期操作。
|
||||
|
||||
你可以使用 `--since` 选项与 `“yesterday”, “today”, “tomorrow”, 或 “now”` 组合。
|
||||
|
||||
下面是一些不同命令的例子。你可以根据你的需要修改它们。它们是不言自明的。以下命令中的日期、时间格式为 `"YYYY-MM-DD HH:MM:SS"`
|
||||
|
||||
|
||||
```
|
||||
journalctl --since "2020-12-04 06:00:00"
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since yesterday
|
||||
```
|
||||
|
||||
```
|
||||
journalctl --since 09:00 --until "1 hour ago"
|
||||
```
|
||||
|
||||
![journalctl --since 09:00 --until][9]
|
||||
|
||||
你也可以将上述内容与错误级别开关结合起来。
|
||||
|
||||
#### 如何查看内核特定的日志记录
|
||||
|
||||
Linux 内核信息也可以从日志中提取出来。要查看当前启动时的内核信息,请使用以下命令。
|
||||
|
||||
```
|
||||
journalctl -k
|
||||
```
|
||||
|
||||
#### 如何查看某个服务、PID 的日志
|
||||
|
||||
你可以从 journald 日志中过滤出某个 systemd 服务单元的特定日志。例如,如果要查看 NetworkManager 服务的日志,请使用下面的命令。
|
||||
|
||||
```
|
||||
journalctl -u NetworkManager.service
|
||||
```
|
||||
|
||||
![journalctl NetworkManager service][10]
|
||||
|
||||
如果你不知道服务名称,可以使用下面的命令来列出系统中的systemd服务。
|
||||
|
||||
```
|
||||
systemctl list-units --type=service
|
||||
```
|
||||
|
||||
#### 如何查看用户、组的日志
|
||||
|
||||
如果你正在分析服务器日志,在多个用户登录的情况下,这个命令很有帮助。你可以先用下面的命令从用户名中找出用户的 ID。例如,要找出用户 "`debugpoint`" 的ID:
|
||||
|
||||
```
|
||||
id -u debugpoint
|
||||
```
|
||||
|
||||
然后使用 `_UID` 选项指定该ID与来查看该用户产生的日志。
|
||||
|
||||
```
|
||||
journalctl _UID=1000 --since today
|
||||
```
|
||||
|
||||
![journalctl _UID][11]
|
||||
|
||||
同样地,使用 `_GID` 选项也可以查到用户组的情况。
|
||||
|
||||
#### 如何查看一个可执行文件的日志
|
||||
|
||||
你也可以查看某个特定程序或可执行文件的日志。例如,如果你想找出 gnome-shell 的信息,你可以运行以下命令。
|
||||
|
||||
```
|
||||
journalctl /usr/bin/gnome-shell --since today
|
||||
```
|
||||
|
||||
![journalctl gnome-shell][12]
|
||||
|
||||
### 结束语
|
||||
|
||||
希望本指南能帮助你使用 journalctl 查看分析 Linux 桌面或服务器上的 systemd 日志,排除故障。如果你知道如何使用这些命令,systemd 日志管理的功能非常强大,它能让你在调试时的生活变得轻松一些。现在所有主流的 Linux 发行版都使用 systemd。Ubuntu、Debian、Fedora、Arch--它们都使用systemd 作为其默认的操作系统产品。如果你想了解无 systemd 的Linux发行版,你可能想看看[MX-Linux][13]、Gentoo、Slackware、Void Linux。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/systemd-journalctl/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[Chao-zhi](https://github.com/Chao-zhi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://freedesktop.org/wiki/Software/systemd/
|
||||
[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg
|
||||
[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg
|
||||
[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg
|
||||
[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg
|
||||
[13]: https://www.debugpoint.com/tag/mx-linux
|
@ -0,0 +1,91 @@
|
||||
[#]: subject: "Open source video captioning on Linux"
|
||||
[#]: via: "https://opensource.com/article/23/2/live-captions-linux"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Linux 上的开源视频字幕
|
||||
======
|
||||
|
||||
在一个完美的世界里,所有的视频都会有文字说明,直播视频也会有字幕。这不仅是没有听力的人能够参与流行文化和视频聊天的要求,对于有听力的人来说,这也是一种奢侈,他们只是喜欢阅读所说的内容。但并不是所有的软件都有内置的字幕,有些软件是依靠第三方的云服务来实现的。[Live Captions][1] 是 Linux 桌面上的一个应用,为视频提供即时、本地和开源的字幕。
|
||||
|
||||
### 安装 Live Captions
|
||||
|
||||
你可以通过 [Flatpak][2] 安装 Live Captions。
|
||||
|
||||
如果你的 Linux 发行版没有附带软件中心,请从终端手动安装它。首先,添加 [Flathub][3] 仓库:
|
||||
|
||||
```
|
||||
$ flatpak remote-add --if-not-exists flathub \
|
||||
https://flathub.org/repo/flathub.flatpakrepo
|
||||
```
|
||||
|
||||
接下来,安装应用:
|
||||
|
||||
```
|
||||
$ flatpak install flathub net.sapples.LiveCaptions
|
||||
```
|
||||
|
||||
### 启动 Live Captions
|
||||
|
||||
要启动 Live Captions,从你的应用菜单中启动它。
|
||||
|
||||
或者,你也可以使用 `flatpak` 命令从终端启动它:
|
||||
|
||||
```
|
||||
$ flatpak run net.sapples.LiveCaptions
|
||||
```
|
||||
|
||||
你也可以使用类似 [Fuzzpak][4] 的命令:
|
||||
|
||||
```
|
||||
$ fuzzpak LiveCaptions
|
||||
```
|
||||
|
||||
当 Live Captions 首次启动时,你会看到一个配置页面:
|
||||
|
||||
![Image showing preferences in Live Captions.][5]
|
||||
|
||||
你可以设置字体、字体大小、颜色等。默认情况下,Live Captions 没有 100% 把握的文本会以比你选择的字体颜色更深的颜色呈现。如果你使用实时字幕是为了方便,这可能没有必要,但如果你听不到视频,那么了解一下可能不正确的文字是不错的。
|
||||
|
||||
你可以随时返回偏好页面,所以你的选择不一定是最终的。
|
||||
|
||||
### 使用 Live Captions
|
||||
|
||||
当 Live Captions 开始运行,任何通过系统声音传来的英语单词都会被打印到 Live Captions 窗口中。
|
||||
|
||||
![Image showing Live Captions presenting text from a Jitsi call. ][6]
|
||||
|
||||
这不是一项云服务。不需要 API 密钥。没有遥测或间谍活动,也没有数据收集。事实上,它甚至不需要网络权限。Live Captions 是开源的,所以没有使用专有服务或库。
|
||||
|
||||
要改变声音输入,请点击 **Live Captions** 窗口左上方的**麦克风**图标。要打开**偏好**窗口,请点击 **Live Captions** 窗口左下方的**齿轮**图标。
|
||||
|
||||
### 开放访问
|
||||
|
||||
根据我的经验,Live Captions 的结果是好的。它们并不完美,但在小型的 [Jitsi 视频通话][7]中,它很出色。即使是小众的视频(例如战锤 40,000 的激烈比赛),它也做得出奇地好,只在最虚构的科幻术语上磕磕碰碰。
|
||||
|
||||
让开源代码易于访问是至关重要的,最终它有可能使每个人受益。我个人不需要 Live Captions,但当我不想听视频的时候,我喜欢使用它。当我希望得到帮助以专注于我可能会分心的事情时,我也会使用它。Live Captions 不仅仅是一个有趣的开源项目,它也是一个重要的项目。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/live-captions-linux
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://github.com/abb128/LiveCaptions
|
||||
[2]: https://opensource.com/article/21/11/install-flatpak-linux
|
||||
[3]: https://flathub.org/apps/details/net.sapples.LiveCaptions
|
||||
[4]: https://www.redhat.com/sysadmin/launch-flatpaks-terminal-fuzzpak
|
||||
[5]: https://opensource.com/sites/default/files/2023-01/live-caption-preferences.png
|
||||
[6]: https://opensource.com/sites/default/files/2023-01/Livecaptions%20onJitsiCall.png
|
||||
[7]: https://opensource.com/article/21/9/alternatives-zoom
|
@ -0,0 +1,157 @@
|
||||
[#]: subject: "Elementary OS 7 Installation Guide with Screenshots"
|
||||
[#]: via: "https://www.linuxtechi.com/elementary-os-7-installation-guide/"
|
||||
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Elementary OS 7 安装指南及截图
|
||||
======
|
||||
|
||||
你好,技术人员,在这篇文章中,我们将介绍如何在笔记本电脑或台式机上一步一步地安装 Elementary OS 7,并附有截图。它是基于最新和稳定的 Ubuntu 22.04 LTS。
|
||||
|
||||
Elementary OS 7 的代号为 “Horus”,并带来了很多改进,例如:
|
||||
|
||||
- 改进了 AppCenter 和安装所有需要的应用。
|
||||
- 改进了 Sideload 和可选商店 (Flathub) 的体验。
|
||||
- 最新的 GNOME Web 43,支持创建网络应用。
|
||||
- 快速获得操作系统和应用的更新
|
||||
- 电源配置文件管理
|
||||
- 应用描述的改进
|
||||
|
||||
##### Elementary OS 7 的系统要求
|
||||
|
||||
- 双核 64 位处理器
|
||||
- 4GB 内存或更多
|
||||
- 32GB 硬盘
|
||||
- 互联网接入
|
||||
- 可启动的 USB 驱动器(4GB 存储空间)
|
||||
|
||||
闲话少说,让我们进入安装步骤
|
||||
|
||||
### 1)下载 Elementary OS 7
|
||||
|
||||
使用下面的官方网址来下载 ISO 文件。
|
||||
|
||||
- [下载 Elementary OS 7 ISO][1]
|
||||
|
||||
ISO 文件下载完成后,将其刻录到 USB 驱动器,并使其可启动。
|
||||
|
||||
在 Windows 操作系统中,用 “Rufus” 制作可启动的 USB 驱动器。在 Linux 中,请参考以下网址:
|
||||
|
||||
- [如何在 Ubuntu/Linux Mint 上创建可启动的 USB 驱动器][2]
|
||||
|
||||
### 2)用可启动媒体启动系统
|
||||
|
||||
现在用可启动的 USB 驱动器启动目标系统。从 bios 设置中把启动介质从硬盘改为 USB。当系统用 USB 驱动器启动时,我们将看到以下页面。
|
||||
|
||||
![][3]
|
||||
|
||||
### 3)选择安装语言
|
||||
|
||||
选择你喜欢的语言,然后点击“选择”。
|
||||
|
||||
![][4]
|
||||
|
||||
### 4)选择键盘布局
|
||||
|
||||
在这一步,你将被要求选择键盘布局,然后点击“选择”。
|
||||
|
||||
![][5]
|
||||
|
||||
### 5) 尝试或安装 elementary OS
|
||||
|
||||
我们将看到下面的页面,在这里我们必须选择安装类型。它给了我们以下选项:
|
||||
|
||||
- 试用演示模式 – 试用 Elementary OS 7 而不安装
|
||||
- 擦除磁盘并安装 – 安装程序将擦除整个磁盘并自动创建所需分区。
|
||||
- 自定义安装(高级)– 它将给我们一个选项来创建自定义分区。
|
||||
|
||||
在这篇文章中,我将使用第二个选项(擦除磁盘并安装)。
|
||||
|
||||
![][6]
|
||||
|
||||
点击“擦除磁盘并安装”。
|
||||
|
||||
在下面的屏幕上,选择要安装操作系统的驱动器,然后点击“擦除并安装”。
|
||||
|
||||
![][7]
|
||||
|
||||
如果你想对设备的驱动器进行加密,那么点击“选择密码”,否则点击“不加密”。
|
||||
|
||||
![][8]
|
||||
|
||||
### 6)安装进度
|
||||
|
||||
正如我们在下面看到的,安装已经开始,并且正在进行中。
|
||||
|
||||
![][9]
|
||||
|
||||
安装完成后,安装程序将提示重启系统。
|
||||
|
||||
![][10]
|
||||
|
||||
点击“重启设备”,不要忘记从 bios 设置中改变启动介质,以便用磁盘启动。
|
||||
|
||||
### 7)创建本地用户并设置主机名
|
||||
|
||||
当系统在安装后启动时,系统会提示你输入本地用户的详细信息和系统的主机名。
|
||||
|
||||
根据你的要求指定这些细节。
|
||||
|
||||
![][11]
|
||||
|
||||
点击“完成设置”。
|
||||
|
||||
在下面的页面中,你将被提示输入你在上面创建的本地用户凭证。
|
||||
|
||||
![][12]
|
||||
|
||||
输入凭证后,点击回车。
|
||||
|
||||
### 8)Elementary OS 7 欢迎页
|
||||
|
||||
我们将看到下面的欢迎页。
|
||||
|
||||
![][13]
|
||||
|
||||
选择“跳过所有”。
|
||||
|
||||
![][14]
|
||||
|
||||
点击“开始使用”,然后我们会看到下面的桌面。
|
||||
|
||||
![][15]
|
||||
|
||||
很好,这表明你已经成功地在系统上安装了 Elementary OS 7。这就是本指南的全部内容,请探索这个令人兴奋的 Linux 发行版并享受其中的乐趣吧😊。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.linuxtechi.com/elementary-os-7-installation-guide/
|
||||
|
||||
作者:[Pradeep Kumar][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.linuxtechi.com/author/pradeep/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://elementary.io/
|
||||
[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/
|
||||
[3]: https://www.linuxtechi.com/wp-content/uploads/2023/02/BootScreen-elementaryOS7.png?ezimgfmt=ng:webp/ngcb22
|
||||
[4]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Keyboard-Layout-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22
|
||||
[5]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Keyboard-Layout-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22
|
||||
[6]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Installation-Type-ElementaryOS7.png?ezimgfmt=ngcb22/notWebP
|
||||
[7]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Select-Drive-for-elementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22
|
||||
[8]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Encryption-Drive-ElementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22
|
||||
[9]: https://www.linuxtechi.com/wp-content/uploads/2023/02/ElementaryOS7-Installation-Progress.png?ezimgfmt=ng:webp/ngcb22
|
||||
[10]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Restart-Device-After-elementaryOS7-Installation.png?ezimgfmt=ng:webp/ngcb22
|
||||
[11]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Create-Local-Account-ElementaryOS7.png?ezimgfmt=ng:webp/ngcb22
|
||||
[12]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Login-screen-elementaryos7.png?ezimgfmt=ng:webp/ngcb22
|
||||
[13]: https://www.linuxtechi.com/wp-content/uploads/2023/02/ElementaryOS7-Welcome-Screen.png?ezimgfmt=ng:webp/ngcb22
|
||||
[14]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Get-Started-ElementaryOS7.png?ezimgfmt=ng:webp/ngcb22
|
||||
[15]: https://www.linuxtechi.com/wp-content/uploads/2023/02/Desktop-Screen-ElementaryOS7-After-Installation.png
|
@ -0,0 +1,104 @@
|
||||
[#]: subject: "Start developing for WebAssembly with our new guide"
|
||||
[#]: via: "https://opensource.com/article/23/2/webassembly-guide"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: "geekpi"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
用我们的新指南开始开发 WebAssembly
|
||||
======
|
||||
|
||||
在过去的几十年里,Web 浏览器作为最流行的跨平台应用经久不衰。从另一个角度看浏览器,它是最受欢迎的应用交付平台之一。想想你使用的所有网站,它们取代了你过去用桌面上运行的软件进行的活动。你仍然在使用软件,但你是通过浏览器来访问它,而且是在别人的 Linux 服务器上运行。在优化我们所有人使用的软件的永恒努力中,软件开发世界早在 2019 年就引入了 WebAssembly,作为通过 Web 浏览器运行编译代码的一种方式。应用的性能比以往任何时候都要好,而且编码的选择远远超出了PHP、Python 和 JavaScript 的通常列表。
|
||||
|
||||
### 一个目标和一种语言
|
||||
|
||||
关于 WebAssembly 的一个强大但也最令人困惑的地方是,“webassembly ”这个词既指一种语言,也指一个目标。WebAssembly 是一种汇编语言,但没有多少人选择直接用汇编写代码。即使是汇编语言,最终也会被转换为二进制格式,这也是计算机运行代码的要求。这种二进制格式也被称为 WebAssembly。不过这很好,因为这意味着你可以用你选择的语言来写一些最终以 WebAssembly 交付的东西,包括 C、C++、Rust、Javascript 和其他许多语言。
|
||||
|
||||
进入 WebAssembly 的途径是 Emscripten,这是一个 LLVM 编译器工具链,可以从你的代码中产生 WebAssembly。
|
||||
|
||||
### 安装 Emscripten
|
||||
|
||||
要在你的 Linux 或 macOS 电脑上安装 Emscripten,请使用 Git:
|
||||
|
||||
```
|
||||
$ git clone \
|
||||
https://github.com/emscripten-core/emsdk.git
|
||||
```
|
||||
|
||||
改变目录进入 `emsdk` 目录并运行安装命令:
|
||||
|
||||
```
|
||||
$ ./emsdk install latest
|
||||
$ ./emsdk activate latest
|
||||
```
|
||||
|
||||
Emscripten 工具链中的所有内容都安装在 `emsdk` 目录下,对系统的其他部分没有影响。由于这个原因,在使用 `emsdk` 之前,你必须 source 它的环境:
|
||||
|
||||
```
|
||||
$ source ./emsdk_env.sh
|
||||
```
|
||||
|
||||
如果你打算经常使用 `emsdk`,你也可以在 `.bashrc` 中加入环境设置脚本。
|
||||
|
||||
要在 Windows 上安装 Emscripten,你可以在 WSL 环境下运行 Linux。
|
||||
|
||||
请访问 [Emscripten 网站][1]了解更多安装信息。
|
||||
|
||||
### Hello world
|
||||
|
||||
下面是一个用 C++ 编写的简单的 “hello world” 应用。
|
||||
|
||||
```
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main() {
|
||||
cout << "Hello world";
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
先把它作为你的系统的标准二进制文件来测试:
|
||||
|
||||
```
|
||||
$ g++ hello.cpp -o world
|
||||
$ ./world
|
||||
Hello world
|
||||
```
|
||||
|
||||
看到它像预期的那样工作,用 `emcc` 把它构建为 WebAssembly:
|
||||
|
||||
```
|
||||
$ emcc hello.cpp -o world.html
|
||||
```
|
||||
|
||||
最后,用 `emrun` 运行它:
|
||||
|
||||
```
|
||||
$ emrun ./world.html
|
||||
```
|
||||
|
||||
`emrun` 工具是一个用于本地测试的方便命令。当你在服务器上托管你的应用时,`emrun` 就没有必要了。
|
||||
|
||||
### 学习更多关于 WebAssembly 的知识
|
||||
|
||||
为 WebAssembly 开发可以有很多不同的方向,这取决于你已经知道的东西和你想建立的东西。如果你了解 C 或 C++,那么你可以用这些来写你的项目。如果你正在学习 Rust,那么你可以使用 Rust。甚至 Python 代码也可以使用 Pyodide 模块来作为 WebAssembly 运行。你有很多选择,而且没有错误的开始方式(甚至有 COBOL 到 WebAssembly 的编译器)。如果你渴望开始使用 WebAssembly,[请下载我们免费的电子书][2]。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/23/2/webassembly-guide
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[geekpi](https://github.com/geekpi)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed/
|
||||
[1]: https://emscripten.org/
|
||||
[2]: https://opensource.com/downloads/webassembly-ebook
|
Loading…
Reference in New Issue
Block a user