Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating

This commit is contained in:
geekpi 2022-07-19 08:36:58 +08:00
commit 6af6a67c5f
12 changed files with 1568 additions and 177 deletions

View File

@ -2,57 +2,55 @@
[#]: via: "https://www.debugpoint.com/necessary-ubuntu-apps-2022"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "Donkey"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: translator: "Donkey-Hao"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14841-1.html"
10 大必备 Ubuntu 应用——第三
10 大必备 Ubuntu 应用:必备
======
本文列出了 2022 年可以用于日常工作的 10 个 Ubuntu 必备应用。
我们经常忘记在有成千上万的免费和开源应用能够与同类商业产品相媲美。此外,若你是 Windows 用户并且想完全摆脱 Windows ,你应该提前想到这些应用。
![](https://img.linux.net.cn/data/attachment/album/202207/18/183730r55l353ni64aiiu4.jpg)
因此,在这一“必备 Ubuntu 应用”文章中,我们为急需的 Linux 用户列举了 10 款应用。
> 本文列出了 2022 年可以用于日常工作的 10 个 Ubuntu 必备应用。
我们经常忘记,有成千上万的、可以与同类商业产品相媲美的自由开源应用。此外,若你是 Windows 用户,并考虑完全摆脱 Windows ,你也应该事先了解此类应用程序。
因此,在这篇“必备的 Ubuntu 应用”文章中,我们为急需这些信息的 Linux 用户列举了 10 款应用。
这是这个系列的第三篇文章,如果你错过了之前的文章,可以通过以下链接阅读:
* [Part 1][1]
* [Part 2][2]
* [第一篇][1]
* [第二篇][2]
### Guake
#### Guake
你是否想要在重要工作中使用快捷键打开一个终端?这款自上而下的终端程序 Guake 能够帮你实现。如果你正忙于写文章、剪辑视频、在你最喜欢的代码编辑器中写代码,并想要快速用终端检查一些东西并返回到工作中, Guake 能够帮助你。只用按 F12 终端就会立即出现,再次按 F12 它会消失,不用打开或关闭不同的终端。
你是否想要在处理重要工作时使用快捷键打开一个终端?这款下拉式的终端程序 Guake 能够帮你实现。如果你正忙于写文章、剪辑视频、在你最喜欢的代码编辑器中写代码并想要快速用终端检查一些东西并返回到工作中Guake 能够帮助你。只用按 `F12` 终端就会立即出现,再次按 `F12` 它会消失,不用打开或关闭不同的终端。
![Guake Running in Ubuntu][3]
在 Ubuntu 或其他发行版,你可以使用以下命令安装。如需更多下载选项,请访问 [此页面][4]。
```
sudo apt install guake
```
**关于 Guake 的更多信息:**
浏览以下链接了解 Guake 的更多信息:
* [主页][5]
* [源码][6]
#### Safe Eyes
### Safe Eyes
眼睛很宝贵,如果你是长时间使用平板或电脑的用户,你应该保护好眼睛。这里有一款可以帮助你保护眼睛的应用—— Safe Eyes ,能够帮你减少并预防用眼过度。
眼睛很宝贵,如果你是长时间使用平板或电脑的用户,你应该保护好眼睛。这里有一款可以帮助你保护眼睛的应用 —— Safe Eyes ,能够帮你减少并预防用眼过度。
Safe Eyes 这款应用会在你的工作期间为你提供“顺时针转动眼睛 10 秒”等活动的弹出式指令。
我认为它是每个人都应该尝试使用的一款 Ubuntu 应用。
![Safe Eyes][7]
通过 PPA 很容易在 Ubuntu 上安装 Safe Eyes 。你可以打开终端并使用以下命令安装这款应用。
通过 PPA 可以很容易在 Ubuntu 上安装 Safe Eyes 。你可以打开终端并使用以下命令安装这款应用。
```
sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install safeeyes
@ -60,48 +58,47 @@ sudo add-apt-repository ppa:slgobinath/safeeyessudo apt updatesudo apt install s
更多下载选项,请访问 [此页面][8]。
**关于 Safe Eyes 的更多信息**
浏览以下链接了解 Safe Eyes 的更多信息:
* [主页][9]
* [源码][10]
#### Tusk
### Tusk
笔记应用有很多。虽然,包括 Ubuntu 在内的所有 Linux 发行版,都带有一个基础文本编辑器,但是想要高级的笔记功能,你需要一个专业应用。
笔记应用有很多。虽然,包括 Ubuntu 在内的所有 Linux 发行版,都带有一个基础文本编辑器,但是想要高级的笔记功能,你需要一个专业应用。
Tusk 是适用于 Ubuntu/Linux 的新款印象笔记桌面应用程序。它带有大量主题,例如浅色、深褐色和深色。它具有以下功能:
Tusk 是适用于 Ubuntu/Linux 的新款印象笔记桌面应用程序。它带有大量主题,例如浅色、深褐色和深色。它具有以下功能:
* 局部和全局自定义快捷键
* 更新提示
* 本地和全局自定义快捷键
* 更新通知
* 基于 Electron 的跨平台应用
* 可扩展的界面(放大和缩小)
* 可伸缩的界面(放大和缩小)
* 浅色、深褐色和深色主题
* 焦模式和自动夜间模式
* 焦模式和自动夜间模式
* 将笔记导出为 HTML、PDF 和 Markdown 格式
![Tusk][11]
该应用有 Linux 发行版的 AppImage 、Deb 和 RPM 文件等格式。你可以从以下链接下载 deb 文件并运行它以在 Ubuntu 中安装它。有关其他下载选项,请访问 [此页面][12]。
该应用有用于 Linux 发行版的 AppImage 、Deb 和 RPM 文件等格式。你可以从以下链接下载 deb 文件并运行它以在 Ubuntu 中安装它。有关其他下载选项,请访问 [此页面][12]。
> **[下载 Tusk][13]**
[下载 Tusk][13]
**关于 Tusk 的更多信息**:
浏览以下链接了解 Tusk 的更多信息:
* [主页][14]
* [源码][15]
#### Krita
### Krita
如果你是一个艺术家并学着在 Linux 上绘画,那你一定要用 Krita 。Krita 拥有众多绘画工具,包含诸如压敏绘画等高级模式。此外,你也可以在触屏设备上使 Krita 。它包含一些独特的功能:
如果你是一个艺术家并想在 Linux 上学习绘画,那你一定要用 Krita 。Krita 拥有众多绘画工具,包含诸如压感式绘画等高级模式。此外,你也可以在触屏设备上使 Krita 。它包含一些独特的功能:
* 自定义工具栏和停靠栏
* 将工作区另存为文件
* 明暗主题
* 深浅主题
* 内置矢量引擎,海量画笔
* 带稳定功能的刷子引擎
* 支持 PhotoShop 文件 (PSD)
* 全彩支持
* 带稳定功能的画笔引擎
* 支持 PhotoShop 文件PSD
* 支持全色系
* 支持 Python 脚本扩展
![Krita Drawing Program][16]
@ -118,58 +115,57 @@ sudo apt install krita
* [学习文件][18]
* [源码][19]
#### Foliate
### Foliate
当你想要一个电子书阅读器时,你会情不自禁地想到 Calibre 。不过还有一款杰出的 GNOME 应用—— Foliate 。Foliate 是用 GTK 编写的新颖的电子书阅读器,它带来了令人惊奇的功能,例如页面的自定义颜色、亮度、多列支持等等。此外,它还支持 epub、Amazon Kindle、小说、漫画书存档和 Mobipocket 格式,让你完全控制自己的收藏。
当你想到电子书阅读器时,总是会想到 Calibre 。不过还有一款杰出的 GNOME 应用 —— Foliate 。Foliate 是用 GTK 编写的新颖的电子书阅读器,它带来了令人赞叹的功能,例如自定义页面的颜色、亮度、多栏支持等等。此外,它还支持 Epub、Amazon Kindle、FictionBook、CBA 和 Mobipocket 格式,让你完全控制自己的收藏。
如果你想要一个漂亮而优美的电子书阅读器,非它莫属。
![Foliate][20]
使用 Linux 发行版的 Flatpak 安装 Foliate 很容易。首先,你需要 [设置 Flatpak][21] 并单击下方链接进行安装。
[下载 Foliate][22]
> **[下载 Foliate][22]**
**更多信息**:
浏览以下链接了解 Foliate 的更多信息:
* [主页][23]
* [源码][24]
#### Bitwarden
### Bitwarden
平均每个人至少有十个账号和密码。若你精通技术,那么你管理密码的数量肯定会增加。使用密码管理器能够更好的保护你的数据以及密码。那么接下来这款应用Bitwarden ,是当今管理密码最好的应用
平均而言,每个人至少有十几个在线账号和密码。你越是精通技术,那么你管理密码的数量就会越多。使用密码管理器能够更好的保护你的数据以及密码。那么接下来这款应用Bitwarden是当今最好的管理密码的应用
Bitwarden 是一款免费开源的密码管理器,能够轻松帮助你生成、存储并保存密码。基于 AES-256 加密方案, Bitwarden 能够在不同设备,比如手机和平板自动同步密码。
Bitwarden 是一款自由开源的密码管理器,能够轻松帮助你生成、存储并保存密码。在 AES-256 加密的支持下,Bitwarden 能够在不同设备,比如手机和平板自动同步密码。
![Bitwarden Password Manager desktop client][25]
你可以从 [此页面][26] 下载可执行安装包文件。此外,如果你打算在你最喜欢的浏览器中使用它,也可以在该页面中获取。
你可以从 [此页面][26] 下载可执行安装包文件。此外,如果你打算在你最喜欢的浏览器中使用它,也可以在该页面中获取扩展
关于 Bitwarden 更多信息:
浏览以下链接了解 Bitwarden 更多信息:
* [主页][27]
* [帮助文档][28]
#### Brave Browser
### Brave Browser
Brave 是基于 Chromium 的以隐私为中心的浏览器。它非常适合希望完全控制其在线活动的用户。Brave 带有内置广告拦截器、隐身浏览、VPN 和 Tor 模式,可实现更多匿名浏览。
Brave 是一款基于 Chromium 的以隐私为中心的浏览器。它非常适合希望完全控制其在线活动的用户。Brave 带有内置广告拦截器、隐身浏览、VPN 和 Tor 模式,可实现更多匿名浏览。
最近Brave 推出了电子邮件服务,你可以直接从浏览器访问邮件。此外,它具备一些 Firefox 、 Google Chrome 以及 Safari 没有的优点。
最近Brave 推出了电子邮件服务,你可以直接从浏览器访问邮件。此外,它具备一些 Firefox 、 Chrome 以及 Safari 没有的优点。
![Brave Browser][29]
在 Ubuntu 终端上安装这款浏览器需要额外的命令。你可以 [在此][30] 找到相信的下载教程。
更多详细信息,浏览官方 [主页][31] 。
更多详细信息,浏览官方 [主页][31] 。
#### Mailspring
### Mailspring
如果你在找一款友好的并且高效的 Linux 桌面电子邮件客户端,并且想要它支持所有的电子邮件协议,那你应该试试 Mailspring 。
如果你在找一款好用并高效的 Linux 桌面电子邮件客户端,并且想要它支持所有的电子邮件协议,那你应该试试 Mailspring 。
Mailspring 支持多个账户、统一邮箱并且支持触控和手势。它还支持 Microsoft Office 365 ,这是此电子邮件客户端在 Linux 系统中的最大优势之一。此外,具有快速检索、翻译、取消发送(邮件召回)以及内置的拼写检查等特征,使得它最好的邮件客户端之一。
Mailspring 支持多个账户、统一邮箱,并且支持触控和手势。它还支持微软 Office 365 ,这是此电子邮件客户端在 Linux 系统中的最大优势之一。此外,具有快速检索、翻译、取消发送(邮件召回)以及内置的拼写检查等特征,使得它成为最好的邮件客户端之一。
它还配备了每月最低费用的付费版本和附加功能,例如公司资料创建、链接跟踪、阅读回执、模板和见解。专业版中的洞察功能提供了有关你在白天何时收到更多电子邮件的详细信息。
它还有一个付费版本,只需要每月付出少量费用,即可得到更多功能,例如创建公司简介、链接跟踪、阅读回执、模板和洞察力功能。专业版中的洞察力功能提供了你在一天中何时收到更多电子邮件的详细信息。
![Mailspring Email Client][32]
@ -177,44 +173,42 @@ Mailspring 支持多个账户、统一邮箱并且支持触控和手势。它还
访问官方 [Snapcraft 页面][33] 获取 Snap 包并安装。
点击 [这里] **这里缺少链接(译注)** 下载 deb 包。下载后,你可以双击 deb 文件通过 Ubuntu 应用商店程序安装。
更多信息请参考以下链接:
点击 [这里][33a] 下载 deb 包。下载后,你可以双击 deb 文件通过 Ubuntu 应用商店程序安装。
浏览以下链接了解 Mailspring 更多信息:
* [主页][34]
* [其他下载选项][35] (Fedora Linux, Windows 以及 macOS)
* [其他下载选项][35]Fedora Linux、Windows 以及 macOS
#### Blender
### Blender
确信你听说过 Blender 。 Blender 是一款免费并开源的专业级图形设计软件,几乎可以完成图形项目所需的一切。
肯定你听说过 Blender 。 Blender 是一款自由开源的专业级图形设计软件,几乎可以完成你的图形项目的一切需求
![Blender Video Editor][36]
你可以创建动画电影、视觉效果、艺术作品、3D 打印模型、动态图形、交互式 3D 应用程序和计算机游戏。 Blender 的功能包括 3D 建模、UV 展开、纹理、光栅图形编辑、绑定和蒙皮、流体和烟雾模拟、粒子模拟、柔体模拟、雕刻、动画、匹配移动、渲染、运动图形、视频编辑和合成。
它是一个专业级的应用程序,还是免费和开源的。
你可以创建动画电影、视觉效果、艺术作品、3D 打印模型、动态图形、交互式 3D 应用程序和计算机游戏。 Blender 的功能包括 3D 建模、UV 展开、贴图、光栅图形编辑、套索和蒙皮、流体和烟雾模拟、粒子模拟、柔体模拟、雕刻、动画、匹配移动、渲染、运动图形、视频编辑和合成。
它是一个专业级的应用程序,还是自由开源的。
想要在 Ubuntu 中轻松安装,打开应用商店,搜索 Blender然后点击安装。或者你也可以打开终端窗口并运行以下命令进行安装。
```
sudo apt install blender
```
该软件适用于 Windows、macOS 和其他平台。你可以访问 [官方下载页面][37] 了解更多详情。
**更多信息:**
浏览以下链接了解 Blender 更多信息:
* [主页][38]
* [详细功能亮点][39]
* [文档][40]
#### Ungoogled Chromium
### Ungoogled Chromium
如果你想要一个没有 Google 应用和服务的干净浏览器,你应该尝试使用 Ungoogled Chromium 浏览器。在没有 Google 集成服务的情况下,它可以替代现有的 Chromium 体验
如果你想要一个没有谷歌的应用和服务的干净浏览器,你应该试试 Ungoogled Chromium 浏览器。它是一个没有谷歌集成服务的,提供了原装 Chromium 体验的替代品
例如,它没有代码中的所有预编译二进制文件和所有 Google 集成,并且还禁用了需要手动启用以获得更好控制的功能
例如,它去除了代码中的所有预编译二进制文件和所有谷歌集成,并且还禁用了需要手动启用的功能,以获得更好控制
或许一个合适的浏览器,才会有最好的 Chromium 体验。
@ -225,19 +219,18 @@ sudo apt install blender
```
flatpak install flathub com.github.Eloston.UngoogledChromium
```
浏览 [官方 GitHub 页面][43] 获取该浏览器更多信息。
#### Tilix
### Tilix
![Tilix Terminal Window][44]
必备 Ubuntu 应用程序列表中的最后一个应用程序是 Tilix 。Tilix 是一个基于 GTK 的基于平铺窗口的终端仿真器。它带有自定义标题、附加通知支持(用于命令完成和透明背景图像支持。此外Tilix 还允许你在终端窗口中添加自定义图像背景。最后,你可以在一个窗口中并排创建多个终端窗口。
必备 Ubuntu 应用程序列表中的最后一个应用程序是 Tilix 。Tilix 是一个基于 GTK 的,平铺式的终端仿真器。它带有自定义标题、以及通知支持(用于命令补完和透明背景图像支持。此外Tilix 还允许你在终端窗口中添加自定义图像背景。最后,你可以在一个窗口中并排创建多个终端窗口。
这是一个用 GTK 编写的高级终端,你可能会发现它很有用。
所有 Linux 发行版都有安装包。在 Ubuntu 或相关版本,运行以下命令进行安装:
所有 Linux 发行版上都有它的安装包。在 Ubuntu 或相关发行版,运行以下命令进行安装:
```
sudo apt install tilix
@ -245,15 +238,11 @@ sudo apt install tilix
更多信息请浏览 Tilix [主页][45] 。
### 结语
这是 2022 年 5 篇系列的必备 Ubuntu 应用程序的第 3 篇。我希望你能够在 Ubuntu 或者其他 Linux 发行版上安装,并在你的日常工作中使用这些应用程序。同时,欢迎在下方评论,让我知道你最喜欢哪一款应用。
最后,请继续关注本 Ubuntu 应用程序系列的第 4 部分。如果你错过了其他部分,你可以在这里阅读它们:
* [第一篇][46]
* [第二篇][47]
最后,请继续关注本 Ubuntu 应用程序系列的第 4 部分。
干杯!
@ -266,7 +255,7 @@ via: https://www.debugpoint.com/necessary-ubuntu-apps-2022
作者:[Arindam][a]
选题:[lkxed][b]
译者:[Donkey](https://github.com/Donkey-Hao)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -305,6 +294,7 @@ via: https://www.debugpoint.com/necessary-ubuntu-apps-2022
[31]: https://brave.com
[32]: https://www.debugpoint.com/wp-content/uploads/2022/07/Mailspring-Email-Client.jpg
[33]: https://snapcraft.io/mailspring
[33a]: https://updates.getmailspring.com/download?platform=linuxDeb
[34]: https://getmailspring.com/
[35]: https://getmailspring.com/download
[36]: https://www.debugpoint.com/wp-content/uploads/2019/09/Blender-Video-Editor.jpg

View File

@ -3,22 +3,24 @@
[#]: author: "Julia Evans https://jvns.ca/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14840-1.html"
监测微型网络服务
如何监测微型的网站服务
======
![](https://img.linux.net.cn/data/attachment/album/202207/18/105829gzviausw5wg7wwxb.jpg)
你好! 我最近又开始运行一些服务器([nginx playground][1]、[mess with dns][2]、[dns lookup][3]),所以我一直在考虑监控问题。
最初我并不完全清楚如何监控这些网站,所以我想快速写下我是如何做到的。
我根本不打算谈如何监控大型严肃的关键任务网站,只谈微型的不重要的网站。
我根本不打算谈如何监控大型的、严肃的关键任务网站,只谈微型的不重要的网站。
### 目标:在操作上几乎不花时间
我希望网站大部分时间都能正常工作,但我也希望在持续的运营上几乎不花时间。
我希望网站大部分时间都能正常工作,但我也希望不用在持续的运营上花时间。
我最初对运行服务器非常警惕,因为在我的上一份工作中,我是 24/7 轮流值班,负责一些关键的服务,在我的印象中,“负责服务器”意味着“在凌晨 2 点被叫起来修理服务器”和“有很多复杂的仪表盘”。
@ -32,16 +34,14 @@
### 步骤 1uptime 检查器
第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 [updown.io][4] 和 [uptime robot][5]。我更喜欢 updown 的用户界面和[定价][6]结构(它是按请求而不是按月收费),但u ptime robot 有一个更慷慨的免费套餐。
第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 [updown.io][4] 和 [uptime robot][5]。我更喜欢 updown 的用户界面和 [定价][6] 结构(它是按请求而不是按月收费),但 uptime 机器人有一个更慷慨的免费套餐。
它们会:
1. 检查网站是否正常
2. 如果出现故障,它会给我发电子邮件
我发现电子邮件通知对我来说是一个很好的级别,如果网站宕机,我会很快发现,但它不会唤醒我或任何东西。
我发现电子邮件通知对我来说是一个很好的通知级别,如果网站宕机,我会很快发现,但它不会吵醒我或做其它的什么打扰。
### 步骤 2端到端的健康检查
@ -51,7 +51,7 @@
这倒是挺有用的 它告诉我服务器是启动着的!
但不出所料,我遇到了问题,因为它没有检查 API 是否真的在_工作_ 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。
但不出所料,我遇到了问题,因为它没有检查 API 是否真的在 _工作_ 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。
所以我更新了它,让它真正地发出 API 请求,并确保它成功了。
@ -106,8 +106,6 @@
* 一切又正常了
* 几个小时后再次重复整个传奇
最终,我开始实际修复进程泄漏,但很高兴有一个解决方法可以在我拖延修复 bug 时保持运行。
这些用于决定是否重新启动服务的运行状况检查更频繁地运行:每 5 分钟左右。
@ -129,7 +127,7 @@ via: https://jvns.ca/blog/2022/07/09/monitoring-small-web-services/
作者:[Julia Evans][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -0,0 +1,93 @@
[#]: subject: "Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default"
[#]: via: "https://news.itsfoss.com/tor-browser-11-5-release/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Tor Browser 11.5 Adds Automatic Censorship Detection With HTTPS-Only Mode as Default
======
Tor Browser 11.5 makes it easy to fight censorship, and makes the browser experience more secure.
![tor browser][1]
Tor Browser is the de-facto standard for users looking to utilize Tor network, and want strict privacy settings on their web browsers.
With the latest 11.5 update, Tor Browser made some major improvements to secure the experience for users.
### Tor Browser 11.5: Whats New?
Let me give you a quick overview of the features introduced with this release.
#### Automatic Censorship Detection and Circumvention
Tor Browser helps users fight back against censorship. However, not every user can configure or set it up for a hassle-free experience.
So, to help you with that, Tor Browser 11.5 introduces “**Connection Assist**“, which lets you automatically set a location for the bridge to connect to Tor, resolving any error.
The developers mention more about it in the official blog post:
> Connection Assist works by looking up and downloading an up-to-date list of country-specific options to try using your location (with your consent). It manages to do so without needing to connect to the Tor Network first by utilizing [moat][2]  the same domain-fronting tool that Tor Browser uses to request a bridge from torproject.org.
Sounds good so far! Also, the developers noted that it is just the first version of the feature. So, they will be looking forward to user feedback on this.
#### Redesigned Tor Network Settings
While it is good to make things easy, Tor Browser developers know that improving the manual configuration options is equally important.
![Image Credits: Tor Project Blog][3]
So, with this update, users who prefer to customize their connection can find some improvements in the settings that include:
* Renaming Tor Network Settings to “Connection Settings” for clarity.
* The last known connection status can be found at the top of the tab.
* Ability to test your Internet connection without Tor for troubleshooting.
* Connection Assist.
* New bridge cards for the ease of sharing bridges, with a QR code readable by Tor Browser for Android.
In addition to the bridge cards, you can also notice a new emoji-packed ID to help you identify a bridge
#### HTTPS-Only Mode
Starting with Tor Browser 11.5, you will no longer find HTTPS Everywhere plugin bundled.
Instead, the browser will prefer HTTPS-only connections for every web page, just like Mozilla Firefox.
#### Other Improvements
Every Tor Browser update is crucial for users who rely on it for privacy and security. So, naturally, there are various bug fixes and subtle changes along with this update that include:
* Improved font support.
* Use connection settings in offline mode.
* Manual bundled with the browser for offline viewing.
You can find the full changelog in the [official blog post][4].
### Download Tor Browser 11.5
You can get the latest package from its [official website][5]. If you are curious about installation, refer to the [installation documentation][6].
[Tor Browser 11.5][7]
--------------------------------------------------------------------------------
via: https://news.itsfoss.com/tor-browser-11-5-release/
作者:[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/wp-content/uploads/2022/07/tor-browser-11-5-release.jpg
[2]: https://support.torproject.org/glossary/moat/
[3]: https://news.itsfoss.com/wp-content/uploads/2022/07/connection-settings.png
[4]: https://blog.torproject.org/new-release-tor-browser-115/
[5]: https://www.torproject.org/download/
[6]: https://tb-manual.torproject.org/installation/
[7]: https://www.torproject.org/download/

View File

@ -1,80 +0,0 @@
[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman"
[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Meet Free Software Foundation Executive Director Zoë Kooyman
======
Find out what the Free Software Foundation (FSF) is all about.
![Dandelion zoomed in][1]
Image by: Photo by Rob Tiller, CC BY-SA 4.0
The [Free Software Foundation (FSF)][2] started promoting the idea of sharing code way back in 1985, and since then it's defended the rights of computer users and developers. The FSF says that the terms "open" and "closed" are not effective words when classifying software, and instead considers programs either *freedom-respecting* ("free" or "libre") or *freedom-trampling* ("non-free" or "proprietary"). Whatever terminology you use, the imperative is that computers must belong, part and parcel, to the users, and not to the corporations that owns the software the computers run. This is why the GNU Project, and the Linux kernel, Freedesktop.org, and so many other open source projects are so important.
Recently, the FSF has acquired a new executive director, Zoë Kooyman. I met Zoë in 2019 at an [All Things Open][3] conference. She wasn't yet the executive director of the FSF at that time, of course, but was managing their growing list of major events, including [LibrePlanet][4]. I was captivated by her energy and sincerity as she introduced me to a seemingly nonstop roster of people creating the freedom-respecting software I used on a *daily basis*. I had stumbled into an FSF meetup and ended up hanging out with the people who were actively defining the way I lived my digital life. These were the people who ensured that I had what Zoë Kooyman and the FSF calls the [four essential freedoms][5]:
* The freedom to run the program as you wish, for any purpose (freedom 0).
* The freedom to study how the program works and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
* The freedom to redistribute copies so you can help others (freedom 2).
* The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
When I heard about Zoë's appointment as executive director, I emailed her for an interview and she was kind enough to take some time out of her very busy schedule to have a chat.
**Seth Kenlon: You're the executive director of the FSF! How did you get here?**
**Zoë Kooyman:** In my working life, I started out as an event organizer, traveling the world while producing some of the world's biggest music shows. Working with so many different cultures in ever-changing locations is exciting, as is making all the different elements of production come together, whether that's the show, technique, or the other live elements. It's a juggling game to have everything fall into place at the right moment. I spent a lot of time living and working in different countries, and learning a lot about organization and communication thanks to this work. I also studied, and worked with different forms of media, how they are experienced, and their relationship with society.
It was in university that I first learned about copyleft. About how we can use existing structures to our benefit, and drive change. It was also then that media (as well as the Internet, and software) landscapes started changing rapidly with encroachments on freedom as a consequence. Moving to the US changed things for me. In the US, I developed a much stronger sense of urgency for matters of social responsibility, and so I decided to act on it. I was thankful to John Sullivan (the FSF executive director at that time) for hiring me based on what I knew about free software and my organizing experience, and allowed me to bring the two together.
**Seth: How did you get into Free Software?**
**Zoë:** We tend to expect technical people to be the main people affected by free software, but free software is a movement to defend freedom for anyone using a computer. Actually, software freedom affects members of marginalized communities who are unable to have regular access to a computer. Software shapes their lives as well.
What the concept of copyleft, as well as the GNU Project, has achieved is exceptional. To truly observe the direction society was heading in, and say, "It doesn't have to be this way. We can take matters in our own hands." That changed my outlook on life early on. I started working on the idea of using already existing materials and reintroducing it to different subcultures. In the entertainment industry you see this all the time, the inspiration from and building on other people's work, and the result is a reflection of the time we live in, as well as a nod to history. True progression cannot happen without that freedom.
As a commentary on copyright for film, I spent time working with the National Film Institute in the Netherlands to create a compilation of "orphaned footage" that was shown at a large scale dance event for thousands of young people in an area with a 170m panoramic screen and a live DJ playing to it. They have continued to play it regularly at events like the Dutch *Museumnacht*.
Not being a technical person, I expressed these ideas culturally, but over the years, I was confronted with the ideas of free software more and more, and I realized that with the continued integration of software into our lives (and sometimes our bodies), the fight for free software is becoming more relevant every day. In a world where proprietary software prevails, our society will progress in a way that favors profit and the progression of the few over the freedom of many. Without free software, there are so many aspects of life, so many important social causes that cannot truly succeed.
**Seth:** When did you start with the FSF?
**Zoë:** Early 2019, one week before the last in-person edition of LibrePlanet.
**Seth:** What attracted you to the Executive Director role?
**Zoë:** The FSF is just one organization that is trying to move the needle towards a more equitable, more collaborative, and more software-literate society, but it has been at the core of the movement for a long time. Society is changing rapidly, and most people are not being properly prepared in how to deal with the digital building blocks of today's society i.e. software. This is all incredibly important work, and there are not enough people doing this work. It is important to have an organization that can handle the different challenges that lay ahead.
The executive director role, is in a way, merely a facilitating role for the staff and the community to be able to make significant changes toward free software. I believe it is vitally important that we continue to spread the free software message, and with the team we have at the FSF, I believe we can make a real difference. I believe I can use the lessons of working with so many different cultures and people, organizing really challenging projects globally, to help get the best out of all of us. The support I received from staff, management, the community, and the board in this decision, convinced me it was a good decision to take this on.
**Seth:** What do you see as the biggest challenges in software freedom today? What should the FSF's role be in addressing those challenges?
**Zoë:** As software has integrated itself more and more into the basic fabric of society, it's also become more invisible. Software is now so widespread, and we've been conditioned to overlook it. We focus on what a program can do, not how it does it, let alone if it respects you as a user. And in the meantime, software is proliferating more rapidly than ever before. If people don't understand the fabric out of which a program is made, and all they do, all day, is use these programs, then how can we even begin to explain to them that they are being treated unjustly?
The FSF's role is to bring every conversation back to this logic of user freedom, to remind us that the tools we use are not benign. Education and government adoption are important focus areas for that reason. If we get people to focus on the issue of software freedom in those areas, we will truly make a difference. Education will help make sure future generations have a chance at freedom, and free software in government is about protecting citizens from unjust influences through proprietary software (maintaining digital sovereignty).
We can show people that today's society is teaching us a faulty lesson: that it is normal to be subjected to encroachments on your freedoms for reasons "too complex to understand." If you want convenience, connection, or just to do your job, you need to trust these organizations and abide by their will. That is not true. We have an entire community of people who believe we can have a society that doesn't ask you to surrender your freedoms to function in it. And we have this legal framework that supports our ideas. People of all backgrounds and skill levels join our conversations daily, more and more people care about their freedom, and everyone has their own reasons. We learn new things every day about how we can protect ourselves and others, and I look forward to a freer future.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[Peaksol](https://github.com/TravinDreek)
校对:[校对者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://opensource.com/sites/default/files/dandelion_zoom.jpg
[2]: https://www.fsf.org/
[3]: https://www.allthingsopen.org/
[4]: https://libreplanet.org
[5]: https://www.gnu.org/philosophy/free-sw.en.html

View File

@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/7/listen-music-rhythmbox-linux"
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: translator: "duoluoxiaosheng"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "

View File

@ -0,0 +1,164 @@
[#]: subject: "AppFlowy: An Open-Source Alternative to Notion"
[#]: via: "https://itsfoss.com/appflowy/"
[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
AppFlowy: An Open-Source Alternative to Notion
======
Brief: AppFlowy aims to be an open-source replacement to Notion, providing you with better privacy. Let us explore more about it.
While Notion (project management/note-taking tool) is exceptionally good in what it does, it is not an open-source solution. Moreover, it is not available for Linux as a desktop client.
So, what about an alternative that is more transparent, private, and available for Linux?
Thats where AppFlowy shines!
Build with Rust and Flutter, AppFlowy follows a minimal approach to simplify things yet with enough room for tweaks.
### AppFlowy is a Perfect Blend of Privacy and User Experience
![appflowy][1]
AppFlowy is fairly new. We [reported][2] its development status last year after its initial launch.
It is an open-source project that aims to overcome some limitations of [Notion][3] in terms of security and privacy. It helps you manage tasks, add to-do lists, add due dates, track the events, add pages, and format text for your notes/tasks.
But theres more to it than security; the user experience also matters. And, AppFlowy does a decent job at it, if not better than Notion.
Note that the project is still in its **beta phase**.
Currently, the projects aim is not for better design and functionality but for data privacy, native experience, and community-driven opportunities.
#### Notion vs. AppFlowy: What Are Your Priorities?
While it is meant to replace Notion as an open-source solution, it may not be for everyone.
So, if you are going to choose AppFlowy over Notion, you will get the following benefits:
##### Transparency
AppFlowy is an open-source project, so you are always welcome to view and modify the code.
##### Privacy
Notion can directly access your private data in the cloud as closed-source software. Compared to this, you can host AppFlowy as per your preference.
All your personal data will remain with you, and youre in total control of it. The developers also mention that they are working on offline mode to bring better support for local installations.
##### Performance and Native Experience
AppFlowy is built using Rust and Flutter, which provides a modern user experience while keeping performance in mind.
Not just limited to that, you also get a good native experience on Linux, which you do not get with Notion.
### Features of AppFlowy
![appflowy screenshot 1][4]
AppFlowy may not be superior in terms of functionality, but it does offer several essential features.
You can expect more feature additions as the development continues. Some existing highlights include:
* Native cross-platform support.
* Ability to self-host it or install it on your computer.
* Customizability.
* Data privacy (top priority).
* A single code base for better maintenance.
* Community-driven extensibility.
* Minimalist UI.
* Add to-do list, and manage tasks.
* Highlight texts and essential formatting.
* Keyboard shortcuts for editing cell/grid.
* Dark mode support.
#### Installing AppFlowy on Linux
As this is still in the beta phase, it is unavailable in default repositories and doesnt have any maintained PPAs, nor do you get any Flatpak/Snap packages.
However, you can easily install AppFlowy through the given commands (Only tested on Ubuntu 20.04 LTS and Arch X86_64):
```
wget https://github.com/AppFlowy-IO/AppFlowy/releases/download/0.0.4/AppFlowy-linux-x86.tar.gz
tar -xzvf AppFlowy-linux-x86.tar.gz
cd AppFlowy
```
To run AppFlowy, use the given command:
```
./app_flowy
```
To register AppFlowy in your system menu, you have to perform additional steps as given below:
First, you have to change the default name of the AppFLowy logo:
```
mv flowy_logo.svg app_flowy.svg
```
Now, youve to copy the temporary Linux desktop file to a usable Linux desktop file.
```
cp appflowy.desktop.temp app_flowy.desktop
```
Its time to introduce some changes to the config file.
```
sudo nano appflowy.desktop
```
Here, you have to replace [CHANGE_THIS] with the path where the icon and executable file has been stored.
![add location of icon and exec file][5]
Save changes with CTRL + O and exit with CTRL + X.
Finally, move the desktop file so your system can pick it up.
```
mv app_flowy.desktop ~/.local/share/applications/.
```
And heres what it should look like:
![appflowy in system menu][6]
In either case, you can check AppFlowys [official documentation][7] to build it from the source. Explore more about it on its official website.
[AppFlowy][8]
### Wrapping Up
If you need a simple Notion-like application with a native Linux experience, AppFlowy is an interesting choice.
You should expect bugs/issues considering it is under active development and far from being a complete replacement to Notion.
As an open-source alternative to Notion? It works! You can use it to manage tasks, add notes, and make a to-do list.
--------------------------------------------------------------------------------
via: https://itsfoss.com/appflowy/
作者:[Sagar Sharma][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://itsfoss.com/author/sagar/
[b]: https://github.com/lkxed
[1]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy.png
[2]: https://news.itsfoss.com/appflowy-development/
[3]: https://www.notion.so/
[4]: https://itsfoss.com/wp-content/uploads/2022/07/appflowy-screenshot-1.png
[5]: https://itsfoss.com/wp-content/uploads/2022/07/Add-location-of-icon-and-exec-file-800x524.png
[6]: https://itsfoss.com/wp-content/uploads/2022/07/AppFlowy-in-System-menu-1.png
[7]: https://appflowy.gitbook.io/docs/essential-documentation/contribute-to-appflowy/software-contributions/environment-setup/building-on-linux
[8]: https://www.appflowy.io/

View File

@ -0,0 +1,275 @@
[#]: subject: "Create a JavaScript API in 6 minutes"
[#]: via: "https://opensource.com/article/22/7/javascript-api-express"
[#]: author: "Jessica Cherry https://opensource.com/users/cherrybomb"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Create a JavaScript API in 6 minutes
======
Express yourself by coding a fun API using Express, a NodeJS minimalist web framework.
This article demonstrates creating a base API with Express and JavaScript. Express is a NodeJS minimalist web framework. This combination allows for minimal effort to get an API up and running at the speed of light. If you have six minutes of free time, you can get this API working to do something useful.
### Get started with NodeJS
What you need for this project is the NodeJS version of your choice. In this example, I use [NodeJS][2] and [HTTPie][3] for testing, a web browser, and a terminal. Once you have those available, you're ready to start. Let's get this show on the road!
Set up a project directory and install the tools to get started:
```
$ mkdir test-api
```
The `npm init` command creates the package JSON for our project below. Type `npm init` and press enter several times. The output is shown below:
```
$ npm init
Press ^C at any time to quit.
package name: (test-api)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/cherrybomb/test-api/package.json:
{
  "name": "test-api",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
Is this OK? (yes)
```
This utility walks you through creating a `package.json` file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do.
Use `npm install {pkg}` afterward to install a package and save it as a dependency in the `package.json` file.
Next, install Express using the [npm CLI][4]:
```
$ npm install express Output shown below
npm WARN cherrybomb No description
npm WARN cherrybomb No repository field.
npm WARN cherrybomb No license field.
+ express@4.18.1
added 60 packages from 39 contributors and audited 136 packages in 4.863s
16 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
```
Finally, create your source directory and your `index.js` file, which is where the application code lives:
```
$ mkdir src
$ touch src/index.js
```
Time to code!
### Code an API
For your first act of coding, make a simple "hello world" API call. In your `index.js` file, add the code snippet below:
```
const express = require('express')
const app = express()
const port = 5000
app.get('/', (req, res) => {
  res.send('Hello World!')
})
app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
```
Each of these constant variables is available in the scopes below. Because you're not using the following scopes within the code, these constants are used without too much extra thought.
When you call `app.get`, you define the `GET{rest article needed}` endpoint to a forward slash. This also sets the "hello world" response.
Finally, in the last section, you will start your app on port 5000. The output on your terminal shows your defined message in a file called `console.log`.
To start your application, run the following command, and see the output as shown:
```
$ test-api → node ./src/index.js
Example app listening on port 5000
```
### Test the API
Now that everything is up and running, make a simple call to ensure your API works. For the first test, just open a browser window and navigate to `localhost:5000`.
![Express API Hello World][5]
(Jessica Cherry, CC BY-SA 4.0)
Next, check out what HTTPie says about the API call:
```
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 12
Content-Type: text/html; charset=utf-8
Date: Tue, 21 Jun 2022 14:31:06 GMT
ETag: W/"c-Lve95gjOVATpfV8EL5X4nxwjKHE"
Keep-Alive: timeout=5
X-Powered-By: Express
Hello World!
```
And there you have it! One whole working API call. So what's next? Well, you could try some changes to make it more interesting.
### Make your API fun
The "hello world" piece is now done, so it's time to do some cool math. You'll do some counts instead of just "hello world."
Change your code to look like this:
```
const express = require('express')
const app = express()
const port = 5000
let count = 0;
app.get('/api', (req, res) => {
res.json({count})
})
app.post('/api', (req, res) => {
++count;
res.json({count});
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
```
Aside from a `GET` command in your code, you now have a `POST` to make some changes to your count. With count defined as **0**, the `LET` command allows changes to the `COUNT` variable.
In `app.get`, you get the count, and in `app.post`, you **++count**, which counts upwards in increments of 1. When you rerun the `GET`, you receive the new number.
Try out the changes:
```
test-api → node ./src/index.js
Example app listening on port 5000
```
Next, use HTTPie to run the `GET` and `POST` operations for a test to confirm it works. Starting with `GET`, you can grab the count:
```
test-api → http GET 127.0.0.1:5000/api
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 11
Content-Type: application/json; charset=utf-8
Date: Tue, 21 Jun 2022 15:23:06 GMT
ETag: W/"b-ch7MNww9+xUYoTgutbGr6VU0GaU"
Keep-Alive: timeout=5
X-Powered-By: Express
{
    "count": 0
}
```
Then do a `POST` a couple of times, and watch the changes:
```
test-api → http POST 127.0.0.1:5000/api
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 11
Content-Type: application/json; charset=utf-8
Date: Tue, 21 Jun 2022 15:28:28 GMT
ETag: W/"b-qA97yBec1rrOyf2eVsYdWwFPOso"
Keep-Alive: timeout=5
X-Powered-By: Express
{
    "count": 1
}
test-api → http POST 127.0.0.1:5000/api
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 11
Content-Type: application/json; charset=utf-8
Date: Tue, 21 Jun 2022 15:28:34 GMT
ETag: W/"b-hRuIfkAGnfwKvpTzajm4bAWdKxE"
Keep-Alive: timeout=5
X-Powered-By: Express
{
    "count": 2
}
```
As you can see, the count goes up! Run one more `GET` operation and see what the output is:
```
test-api → http GET 127.0.0.1:5000/api
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 11
Content-Type: application/json; charset=utf-8
Date: Tue, 21 Jun 2022 15:29:41 GMT
ETag: W/"b-hRuIfkAGnfwKvpTzajm4bAWdKxE"
Keep-Alive: timeout=5
X-Powered-By: Express
{
    "count": 2
}
```
### The end and the beginning
I specialize in infrastructure and [Terraform][6], so this was a really fun way to learn and build something quickly in a language I'd never used before. JavaScript moves fast, and it can be annoying to see errors that seem obscure or obtuse. I can see where some personal opinions have judged it harshly as a language, but it's a strong and useful tool. I hope you enjoyed this walkthrough and learned something new and cool along the way.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/javascript-api-express
作者:[Jessica Cherry][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/cherrybomb
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/OSDC_women_computing_2.png
[2]: https://nodejs.org/en/download/
[3]: https://opensource.com/article/19/8/getting-started-httpie
[4]: https://github.com/npm/cli
[5]: https://opensource.com/sites/default/files/2022-07/express-api-hello-world.png
[6]: https://opensource.com/article/20/7/terraform-kubernetes

View File

@ -0,0 +1,464 @@
[#]: subject: "How I configure a DHCP server on my personal network"
[#]: via: "https://opensource.com/article/22/7/configure-dhcp-server"
[#]: author: "David Both https://opensource.com/users/dboth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How I configure a DHCP server on my personal network
======
The Dynamic Host Configuration Protocol (DHCP) provides network configuration data to client hosts on a network, allowing for centralized network configuration management.
![A network diagram][1]
Image by: Opensource.com
The Dynamic Host Configuration Protocol (DHCP) provides a centralized and automated method for configuring the network attributes of hosts when they connect to the network. The DHCP server assigns IP addresses to hosts, along with configuration information such as DNS servers, the domain name used for DNS searches, the default gateway, an NTP (Network Time Protocol) server, a server from which a network boot can be performed if necessary, and more. DHCP eliminates the need to configure each network host individually.
DHCP is also useful for configuring laptops, mobile phones, tablets, and other devices which might connect as unknown guests. This configuration is typical for WiFi access in public places. However, DHCP offers even more advantages when used in a closed, private network to manage static IP address assignments for known hosts using the central DHCP database.
The DHCP server uses a database of information created by the sysadmin. This database is entirely contained in the `/etc/dhcp/dhcpd.conf` configuration file. DHCPD stands for *DHCP Daemon*, which is the background server process. Like all well-designed Linux configuration files, it is a simple ASCII plain text file. This structure means that it is open and knowable. It can be examined by standard, simple text manipulation tools like `cat` and `grep`, and be modified by any text editor such as EMACS or Vim, or a stream editor such as `sed`.
The DHCP client is always installed on Linux hosts—at least on Red Hat-based distros and all other distros I have tried—because of the high probability that they will be connected to a network using DHCP and not with a static configuration.
When a host configured for DHCP boots or its NIC is activated, it sends a broadcast request to the network asking for a DHCP server to respond. The client and the server engage in a bit of conversation, and the server sends the configuration data to the client, which uses it to configure its network connection. Hosts may have multiple NICs connected to different networks. Any or all may be configured using DHCP or a static configuration. I will keep the setup for this article simple with only a few hosts—my own personal network.
### Network description
This article uses my own network for illustration. This is much more interesting and realistic than using a set of virtual machines on a virtual network. Each host on my network has the Fedora 36 [Xfce][2] spin installed. Due to my desire to experiment, my network is smaller but contains more complex network configurations than might be found in a standard home or small business network.
Before setting up DHCP, I created a network address map like the one shown in Figure 1. This diagram includes MAC addresses, IP addresses, and NIC names for each host. The map enabled me to visualize my network's logical structure and determine which hosts needed DHCP configuration and which needed static IP configuration.
| NIC | MAC | Static/DHCP | IP Address | Comments |
| :- | :- | :- | :- | :- |
| wally1 | | | Primary firewall and router |
| eno1 | 04:d9:f5:1c:d5:c5 | Static | N/A | Disabled due to errors |
| enp1s0 | 84:16:f9:03:e9:89 | Static | 192.168.10.1/24 | SSID Linux Boy |
| enp2s0 | 84:16:f9:03:fd:85 | Static | 192.168.0.254/24 | Inside network |
| enp4s0 | 84:16:f9:04:44:03 | Static | 45.20.209.41/29 | WAN connection |
| | | | | |
| yorktown | | | Main server |
| enp0s31f6 | e0:d5:5e:a2:de:a4 | Static | 192.168.0.52/24 | DHCP, NTP, DNS, HTTP, + |
| | | | | |
| david | | | Main workstation |
| enp0s31f6 | b0:6e:bf:3a:43:1f | DHCP | 192.168.0.1/24 | |
| | | | | |
| bunkerhill | | | Testing workstation |
| eno1 | 2c:f0:5d:26:c2:09 | DHCP | 192.168.0.9/24 | |
| | | | | |
| enterprise | | | Workstation |
| eno1 | 30:9c:23:e9:a4:e6 | DHCP | 192.168.0.2/24 | |
| | | | | |
| essex | | | Testing workstation |
| eno1 | e0:69:95:45:c4:cd | DHCP | 192.168.0.6/24 | |
| intrepid | | | Testing workstation |
| enp0s25 | 00:1e:4f:df:3a:d7 | DHCP | 192.168.0.5/24 | |
| | | | | |
| wasp | | | Testing workstation |
| eno1 | e8:40:f2:3d:0e:a8 | DHCP | 192.168.0.8/24 | |
| | | | | |
| hornet | | | Testing workstation |
| enp0s25 | e0:69:95:3c:07:37 | DHCP | 192.168.0.07/24 | |
| | | | | |
| voyager | | | Laptop |
| enp111s0 | 80:fa:5b:63:37:88 | DHCP | 192.168.0.201/24 | |
*Figure 1: Network Address Map*
The **yorktown** server hosts the DHCP service and the rest of my server services. Host **wally** is my firewall and router. The hosts **yorktown** and **wally** both use static network configurations and the rest use DHCP configuration, as shown in Figure 1.
### Install the DHCP server
First, I checked the DHP installation status and then installed the DHCP server, as shown in Figure 2.
```
[root@yorktown ~]# dnf list installed dhcp*
Installed Packages
dhcp-client.x86_64     12:4.3.6-28.fc29           @anaconda
dhcp-common.noarch     12:4.3.6-28.fc29           @anaconda
dhcp-libs.x86_64       12:4.3.6-28.fc29           @anaconda
[root@yorktown ~]#
```
*Figure 2: Check which DHCP packages are installed on my server.*
The DHCP server is not installed by default, so I added it myself. This task must be performed as root. The result shows the DHCP client has been installed along with libraries and supporting files common to the client, server, and possibly the DHCP development packages. The DHCP server is not installed, so I installed it using the command in Figure 3.
```
[yorktown ~]# dnf install -y dhcp-server
Last metadata expiration check: 2:39:06 ago on Wed 26 Dec 2018 12:19:46 PM EST.
Dependencies resolved.
=================================================================================================
 Package                Arch              Version                        Repository         Size
=================================================================================================
Installing:
 dhcp-server            x86_64            12:4.3.6-28.fc29               fedora            431 k
[...]
Installed:
  dhcp-server-12:4.3.6-28.fc29.x86_64                                                            
Complete!
```
*Figure 3: Installing the DHCP server package.*
That was easy, and no reboot of the server was required.
### Configure the DHCP server
With the DHCP server installed, the next step is to configure the server. Having more than one DHCP server on the same network can cause problems because one would never know which DHCP server is providing the network configuration data to the client. However, a single DHCP server on one host can listen to multiple networks and provide configuration data to clients on more than one network.
DHCP can provide DNS names for the gateway and other servers. For example, the NTP server could use that server's hostname (**NTP1**) instead of the IP address. Most of the time, this works well, but this configuration might cause problems if the DNS name services server were to be disabled or my own server does not exist.
The IP addresses specified in Figure 1 are the ones that DHCP will assign to the hosts on my internal network. I have arbitrarily chosen these IP addresses for my network.
The details like the values for hostnames, MAC addresses, and IP addresses will be different for your network, but the basic requirements will be the same.
### The dhcpd.conf file
As root, you can look at the existing `dhcpd.conf` file, which is non-functional when first installed. Make `/etc/dhcp` the PWD and then `cat` the `dhcpd.conf` file to view the contents. There is not much in the file, but it does point to an example file named `/usr/share/doc/dhcp-server/dhcpd.conf.example` that you can read to understand the main components and syntax of the `dhcpd.conf` file. I strongly suggest you read this example file.
I started with a previous version of the example file many years ago when I first decided to move to DHCP configuration for my network. The comment I added in this section indicates that it was probably based on the Fedora 18 version of `dhcpd.conf` and my file is still based on that older file. I have left many of the original comments and commented out the default settings in my final file. Since this file is intended as a guide and the basis for a working `dhcpd.conf` configuration, I decided to leave as much intact as possible in case I needed that information later.
The `dhcpd.conf(5)` man page also has some excellent descriptions of the various configuration statements that are likely to be needed by a DHCP server.
There are two major sections in any `dhcpd.conf` file. The global section contains settings for all subnets for which this server provides DHCP services. The second section is the subnet declaration. You can use multiple subnet declarations if this server provides DHCP services for multiple networks.
#### Syntax
The dhcpd service is very strict in its interpretation of the `dhcpd.conf` file. Each subnet and each host declared within each subnet must begin and end with curly braces (`{}` ), and all statements must end in a semicolon (`;` ). A missing curly brace has caused me much angst and gnashing of teeth more than once in the past. The curly braces for the subnet declaration also surround the host declaration because the host declarations need to be inside the subnet declaration.
#### The global section
This global section, shown in Figure 4, contains global configuration items common to the subnets that DHCP serves. I have only a single subnet, but I still placed these statements in the global section because they are likely to be the same for all subnets. If they were to differ for a given subnet, creating a statement with different values in the subnet declaration overrides the global declaration.
Since I only have one network, I have kept the option declarations found in this section of the sample file because I had no reason to change or delete them.
```
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see dhcpd.conf(5) man page
#
#
# Changes based on the sample dhcpd.conf for Fedora 18.
# option definitions common to all supported networks...
# option domain-name "example.org";
# option domain-name-servers ns1.example.org, ns2.example.org;
#
# All networks get the default lease times
default-lease-time 7200;        # 2 hours
max-lease-time 14400;           # 4 hours
# Use this to enable / disable dynamic dns updates globally.
ddns-update-style none;
#
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
#
# ignore client-updates;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
#
```
*Figure 4: The global section of the dhcpd.conf file.*
I made three changes in this section from that of the original file:
* Default lease time:I set the default lease times in seconds. This setting determines how frequently the client hosts must refresh the lease on the IP address. Shorter times are good if clients connect and disconnect frequently. The default lease time of 10 minutes is pretty short, so I set it for two hours. I also changed the maximum lease time from two hours to four hours.
* Dynamic DNS: I disabled dynamic DNS because I don't use that in my network.
* Authoritative server: I specified that this is the authoritative DHCP server for my network.
#### The subnet section
The subnet section of the `dhcpd.conf` file contains two subsections. The first has the values common to all hosts in the defined subnet. The host declaration subsection includes declarations for all hosts specifically managed by DHCP.
##### The common part of the subnet section
This common subsection of the subnet section, shown in Figure 5, sets numerous common values for all of the hosts declared in the host subsection of this subnet. I define the subnet in the first line as type C range 192.168.0.0 in the old classful notation, with a subnet mask of 255.255.255.0. This translates to 192.168.0.0/24 in the Classless Inter-Domain Routing (CIDR) network notation.
I don't see any indication in any documentation that the `dhcpd.conf` file can use [CIDR notation][3] for IPv4 at this time. The `dhcpd.conf` man page indicates that you can use CIDR notation for IPv6.
This subsection specifies the router IP address and netmask, the domain name, and the DNS domain search name. The domain search name is used when performing searches where no domain name is specified in the query. When a command such as `ping essex` is specified, the DNS search is performed for `essex.both.org` instead.
Since I don't use [NIS domain names][4], I commented out that option.
This section also provides a list of [DNS servers][5] to the clients. Clients search these servers in the order they are listed. I use the Google DNS servers as the backup to my internal DNS server, partly because I registered my domain names with Google Domains.
```
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  192.168.0.254;
        option subnet-mask              255.255.255.0;
#       option nis-domain               "both.org";
        option domain-name              "both.org";
        option domain-search            "both.org";
        option domain-name-servers      192.168.0.52, 8.8.8.8, 8.8.4.4;
        option time-offset              -18000; # Eastern Standard Time
        option ntp-servers              192.168.0.52;
#       option netbios-name-servers     192.168.0.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;
################################################################################
# Dynamic DHCP allocation range for otherwise unknown hosts                    #
################################################################################
        range dynamic-bootp 192.168.0.220 192.168.0.229;
#       default-lease-time 21600;
#       max-lease-time 43200;
```
*Figure 5: The common subsection of the subnet section for my network.*
I specified my local [Network Time Protocol (NTP)][6] server and the offset from GMT. This service synchronizes the time on all of my hosts.
Configuring the network settings for guest hosts such as laptops and other mobile devices is also possible with DHCP. I have no information (such as the MAC address) for these computers but must assign an IP address anyway. In most cases, the guest hosts must trust the DHCP service. I dislike having guests on my network, so I usually relegate guest hosts to a second network subnet. This approach protects my primary network because the guest hosts have no access to it.
The last active line in this part of my `dhcpd.conf` file specifies a small range of IP addresses for devices that might plug into my wired network. For example, I plug laptops and desktop systems into my network when working on them after I have determined that they are not infected—usually only when I have wiped the hard drives and installed Linux. I never, ever connect a Windows computer directly to my network.
The original sample file used different lease times for this first subnet than I specified in the global section, so I have commented them out.
##### The host declaration part of the subnet section
The subnet section shown in Figure 6 is where the individual hosts are declared. Each host requires a name, the MAC address of its NIC, and the fixed address it will always use.
I use comments in this host declaration subsection to help define and document the address structure for my network. I also use comments in my DNS zone file to record the same information.
```
################################################################################
# The range from 192.168.0.1 - 20 is for my personal hosts and workstations.   #
################################################################################
        # david
        host david {
                hardware ethernet b0:6e:bf:3a:43:1f;
                fixed-address 192.168.0.1;
        }
        # bunkerhill
        host alice {
                hardware ethernet 30:9C:23:E9:A4:E6;
                fixed-address 192.168.0.2;
        }
        # intrepid
        host intrepid {
                hardware ethernet 00:1e:4f:df:3a:d7;
                fixed-address 192.168.0.5;
        }
        # essex
        host essex {
                hardware ethernet E0:69:95:45:C4:CD;
                fixed-address 192.168.0.6;
        }
        # Hornet
        host hornet {
                hardware ethernet e0:69:95:3c:07:37;
                fixed-address 192.168.0.7;
        }
        # Wasp
        host wasp {
                hardware ethernet e8:40:f2:3d:0e:a8;
                fixed-address 192.168.0.8;
        }
        # bunkerhill
        host bunkerhill {
                hardware ethernet 2c:f0:5d:26:c2:09;
                fixed-address 192.168.0.9;
        }
################################################################################
# IP Addresses between 192.168.0.50 and 192.168.0.59 are for physical servers  #
# which always use static IP addressing.                                       #
################################################################################
################################################################################
# The range from 192.168.0.70 - 80 is for network printers.                    #
################################################################################
        host brother1 {
                hardware ethernet 30:05:5C:71:F7:7C;
                fixed-address 192.168.0.70;
        }
################################################################################
# The range from 192.168.0.91 - 100 is for various hosts under test            #
################################################################################
        host test1 {
                hardware ethernet 00:1E:4F:B1:EB:78;
                fixed-address 192.168.0.91;
        }
        host admin {
                hardware ethernet 00:22:4d:a6:5c:1b;
                fixed-address 192.168.0.92;
        }
################################################################################
# The range from 192.168.0.100 to 192.168.0.150 is for most virtual machines.  #
################################################################################
        host testvm1 {
                hardware ethernet 08:00:27:7B:A7:0C;
                fixed-address 192.168.0.101;
        }
        host testvm2 {
                hardware ethernet 08:00:27:BE:E1:02;
                fixed-address 192.168.0.102;
        }
        host fedora35vm {
                hardware ethernet 08:00:27:A8:E7:4F;
                fixed-address 192.168.0.135;
        }
        host fedora36vm {
                hardware ethernet 08:00:27:07:CD:FE;
                fixed-address 192.168.0.136;
        }
################################################################################
# The range from 192.168.0.160 - 192.168.0.179 is reserved                     #
################################################################################
################################################################################
################################################################################
################################################################################
# The range from 192.168.0.180 to 192.168.0.189 is for virtual machines used   #
# in book research. These addresses usually connect to a second or third NIC   #
# for those hosts to provide a back-door access.                               #
################################################################################
################################################################################
################################################################################
        # Adapter 2
        host studentvm1 {
                hardware ethernet 08:00:27:C4:6E:06;
                fixed-address 192.168.0.181;
        }
        # Adapter 2
        host studentvm2 {
                hardware ethernet 08:00:27:9F:67:CB;
                fixed-address 192.168.0.182;
        }
################################################################################
# The range from 192.168.190 - 199 is for windows and other strange stuff      #
################################################################################
        # Windows10 VM
        host win10 {
                hardware ethernet 08:00:27:8C:79:E8;
                fixed-address 192.168.0.190;
        }
################################################################################
# The range from 192.168.0.200 - 209 is for mobile and miscellaneous devices   #
################################################################################
        # voyager (System76 Oryx Pro 4)
        host voyager {
                hardware ethernet 80:fa:5b:63:37:88;
                fixed-address 192.168.0.201;
        }
        # voyager2  (System76 Oryx Pro 6)
        host voyager2 {
                hardware ethernet 80:fa:5b:8d:c6:75;
                fixed-address 192.168.0.202;
        }
}
```
*Figure 6: The host declaration section of the dhcpd.conf file.*
Different option declarations can be made for any subnet or any host within a subnet. For example, one subnet may specify a different router than the rest of the subnets, or one host may use a different router than the other hosts in a subnet.
To activate the new DHCP configuration, I started, enabled, and verified the DHCP service, as seen in Figure 7.
```
[yorktown ~]# systemctl start dhcpd
[yorktown ~]# systemctl enable dhcpd
Created symlink /etc/systemd/system/multi-user.target.wants/dhcpd.service → /usr/lib/systemd/system/dhcpd.service.
[yorktown ~]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
     Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/dhcpd.service.d
             └─override.conf
     Active: active (running) since Sun 2022-06-26 15:57:12 EDT; 11s ago
       Docs: man:dhcpd(8)
             man:dhcpd.conf(5)
    Process: 1347205 ExecStartPre=/bin/sleep 60 (code=exited, status=0/SUCCESS)
   Main PID: 1347220 (dhcpd)
     Status: "Dispatching packets..."
      Tasks: 1 (limit: 38318)
     Memory: 4.9M
        CPU: 15ms
     CGroup: /system.slice/dhcpd.service
             └─ 1347220 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Wrote 10 leases to leases file.
Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Listening on LPF/enp0s31f6/e0:d5:5e:a2:de:a4/192.168.0.0/24
Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Sending on   LPF/enp0s31f6/e0:d5:5e:a2:de:a4/192.168.0.0/24
Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Sending on   Socket/fallback/fallback-net
Jun 26 15:57:12 yorktown.both.org dhcpd[1347220]: Server starting service.
Jun 26 15:57:12 yorktown.both.org systemd[1]: Started dhcpd.service - DHCPv4 Server Daemon.
Jun 26 15:57:16 yorktown.both.org dhcpd[1347220]: DHCPREQUEST for 192.168.0.2 from 30:9c:23:e9:a4:e6 via enp0s31f6
Jun 26 15:57:16 yorktown.both.org dhcpd[1347220]: DHCPACK on 192.168.0.2 to 30:9c:23:e9:a4:e6 via enp0s31f6
Jun 26 15:57:17 yorktown.both.org dhcpd[1347220]: DHCPREQUEST for 192.168.0.8 from e8:40:f2:3d:0e:a8 via enp0s31f6
Jun 26 15:57:17 yorktown.both.org dhcpd[1347220]: DHCPACK on 192.168.0.8 to e8:40:f2:3d:0e:a8 via enp0s31f6
```
*Figure 7: Start and verify that the DHCP server started without errors. You can even see a couple of fulfilled requests in this example.*
There should be no errors from the status command, but, like my server above, there may be several statements indicating the DHCP daemon is listening on a specific NIC and the MAC address of the NIC. If this information is not correct, verify that the `dhcpd.conf` file is valid and restart the DHCP server. If there are syntactical errors in the configuration, they will appear in the status report.
I also ran the command shown in Figure 8 on some of my hosts to verify that the network is configured with the correct IP address, router, and DNS servers. This command shows the installed NICs on each host, including the loopback device, lo.
```
[essex ~]# nmcli
eno1: connected to Wired connection 1
        "Intel 82579V"
        ethernet (e1000e), E0:69:95:45:C4:CD, hw, mtu 1500
        ip4 default
        inet4 192.168.0.6/24
        route4 192.168.0.0/24 metric 100
        route4 default via 192.168.0.254 metric 100
        inet6 fe80::3220:6681:4348:71df/64
        route6 fe80::/64 metric 1024
lo: unmanaged
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
        servers: 192.168.0.52 8.8.8.8 8.8.4.4
        domains: both.org
        interface: eno1
```
*Figure 8: Verify DHCP provided the correct data to the hosts.*
### Wrap up
DHCP provides network configuration data to client hosts on a network, allowing for centralized network configuration management. A DHCP server can provide various configuration options to clients, including many required for Windows hosts that might connect to the network. This configuration data includes gateway routers, NTP servers, DNS servers, PXE boot servers, and much more.
I use DHCP for most of my hosts because it is less work in the long run than static configurations on each host. The default setup for NetworkManager on newly installed hosts is to use DHCP.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/configure-dhcp-server
作者:[David Both][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/dboth
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/LAW_fedora_cla.png
[2]: https://opensource.com/article/19/12/xfce-linux-desktop
[3]: https://opensource.com/article/16/12/cidr-network-notation-configuration-linux
[4]: https://en.wikipedia.org/wiki/Network_Information_Service
[5]: https://opensource.com/article/17/4/introduction-domain-name-system-dns
[6]: https://en.wikipedia.org/wiki/Time_server

View File

@ -0,0 +1,213 @@
[#]: subject: "How to Install Rocky Linux 9 Step by Step with Screenshots"
[#]: via: "https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/"
[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Install Rocky Linux 9 Step by Step with Screenshots
======
In this guide, we will cover how to install Rocky Linux 9 step by step with screenshots.
Rocky Enterprise Software Foundation has released its latest operating system Rocky Linux 9. Rocky Linux is free and open-source operating system for workstation and servers. It is considered as drop-in replacement for CentOS Linux.
Blue Onyx is the Code name for Rocky Linux 9, it is the clone of RHEL 9. The main difference between Rocky Linux and RHEL is that it has its own open-source build system called Peridot.
##### New Updates and Features of Rocky Linux 9
* Gnome 40 is the default Desktop Environment.
* Support for Direct Access (DAX) operations on XFS file system
* Updated runtime and compilers like GCC 11.2.1, LLVM (13.0.1), Rust (1.58.1), and Go (1.17.1).
* Updated development tool chain like Python 3.9, Node.js 16, Ruby 3.0.3, Perl 5.32 & PHP 8.0
* By Default, root user authentication disabled over ssh.
* Updated OpenSSL 3.0 and improved cockpit web console.
* Community support till May 31st, 2032.
##### Prerequisites
* 2 GB RAM or more
* 2 CPU Core (1.1 GHz Processor or higher)
* 20 GB hard disk space
* Boot Media (USD or DVD)
* Internet Connectivity (Optional)
Without any delay, lets jump into Rocky Linux 9 installation steps,
### 1) Download Rocky Linux 9 ISO File
Use the following official URL to download ISO file,
* [Rocky Linux 9 ISO][1]
Once you have downloaded the iso file, make a bootable media (USB/DVD) using the downloaded iso.
In Windows, you can use Rufus software to make bootable USB drive using ISO file. In Linux, refer the following
* [How to Create Bootable USB Drive on Ubuntu / Linux Mint][2]
### 2) Boot System with Bootable Media
Head to the system on which you are planning to install Rocky Linux 9, reboot it and change the boot medium from hard disk to USB from its bios settings.
Once the system boots up with bootable media then we will get the following screen,
![Select-Install-Rocky-Linux-9-option][3]
Choose the first option, Install Rocky Linux 9.0 and hit enter.
### 3) Choose Preferred Language
Select your preferred language for the installation and then click on Continue,
![Preferred-Language-for-RockyLinux9-Installation][4]
### 4) Installation Summary
In this step, we will get the following initial installation summary. To begin the installation, first we must complete marked items like Installation Destination and User settings.
Apart from the marked items, we can also change the existing items, just click on them and change it as per your requirement.
![Initial-Installation-Summary-Rocky-Linux9][5]
##### Configure Installation Destination
In this item, we will specify the partition scheme for Rocky Linux. Click on Installation Destination.
Here we can choose either automatic or custom option for storage configuration or partition scheme.
In automatic option, partitions will be created automatically by installer on the disk whereas custom option allows us to create manual partitions on disk.
![Choose-custom-Storage-Configuration-Rocky-Linux9][6]
In this guide, I am going with Custom option, Click on Done
![Standard-Partition-Scheme-RockyLinux9][7]
On the 40 GB disk, we will create following partitions,
* /boot          :  2GB   (xfs file system)
* /                 : 10 GB  (xfs file system)
* /home         : 25 GB (xfs file system)
* Swap           : 2 GB
To start creating partitions, choose Standard Partition scheme and then click on + symbol.
Create first partition as /boot of size 2 GB,
![Boot-Partition-RockyLinux9-Installation][8]
Click on Add mount point
Similarly create next two partitions / and /home of size 10 GB and 25 GB respectively.
![Slash-Partition-Rocky-Linux9-installation][9]
![Home-Partition-Rocky-Linux9-Installation][10]
Now create last partition as swap of size 2GB,
![Swap-Partition-RockyLinux9-Installation][11]
Once you are done with manual partitioning, click on Done to finish this item.
![Finish-Manual-Partitioning-RockyLinux9-Installation][12]
Choose Accept Changes to write changes to the disk. It will also take back to installation summary screen.
![Accept-Changes-to-Write-on-Disk-RockyLinux9][13]
##### Configure User Settings
Under User Settings, Click on Root Password.
![Set-Root-Password-RockyLinux9-Instalation][14]
Set the root password and then click on Done,
From User Settings again , click on User Creation, Specify the local user details like username and password.
![Local-User-Create-During-RockyLinux9-Installation][15]
Click on Done, it will take back to installation summary.
Now, we are ready to initiate the installation, click on Begin Installation.
![Begin-Installation-Option-RockyLinux9][16]
### 5) Installation Started
In this step, installation got started and is in progress,
![RockyLinux9-Installation-Progress][17]
Once the installation is completed, installer will instruct to reboot the system.
![Reboot-System-after-RockyLinux9-Installation][18]
Click on Reboot System.
Note: Dont forget to change the boot medium from USB to hard disk from bios settings.
### 6) Login Screen and Desktop Environment Post Installation
When the system boots up after the successful installation, we will get following login screen,
![RockyLinux9-Loginscreen-Post-Installation][19]
Use the same users credentials that we have created during the installation, press enter to login.
![Desktop-Env-RockyLinux9][20]
Open the terminal, run following commands one after the another,
```
$ sudo dnf install epel-release -y
$ sudo dnf install neofetch -y
```
Now, to verify the system details, run neofetch command,
```
$ neofetch
```
![neofetch-rockylinux9-post-installation][21]
Thats all from this guide, I hope you found it useful. Kindly do post your queries and feedback in below comments section.
--------------------------------------------------------------------------------
via: https://www.linuxtechi.com/how-to-install-rocky-linux-9-step-by-step/
作者:[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
[1]: https://rockylinux.org/download
[2]: https://www.linuxtechi.com/create-bootable-usb-disk-dvd-ubuntu-linux-mint/
[3]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Select-Install-Rocky-Linux-9-option.png
[4]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Preferred-Language-for-RockyLinux9-Installation.png
[5]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Initial-Installation-Summary-Rocky-Linux9.png
[6]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Choose-custom-Storage-Configuration-Rocky-Linux9.png
[7]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Standard-Partition-Scheme-RockyLinux9.png
[8]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Boot-Partition-RockyLinux9-Installation.png
[9]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Slash-Partition-Rocky-Linux9-installation.png
[10]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Home-Partition-Rocky-Linux9-Installation.png
[11]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Swap-Partition-RockyLinux9-Installation.png
[12]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Finish-Manual-Partitioning-RockyLinux9-Installation.png
[13]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Accept-Changes-to-Write-on-Disk-RockyLinux9.png
[14]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Set-Root-Password-RockyLinux9-Instalation.png
[15]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Local-User-Create-During-RockyLinux9-Installation.png
[16]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Begin-Installation-Option-RockyLinux9.png
[17]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Installation-Progress.png
[18]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Reboot-System-after-RockyLinux9-Installation.png
[19]: https://www.linuxtechi.com/wp-content/uploads/2022/07/RockyLinux9-Loginscreen-Post-Installation.png
[20]: https://www.linuxtechi.com/wp-content/uploads/2022/07/Desktop-Env-RockyLinux9.png
[21]: https://www.linuxtechi.com/wp-content/uploads/2022/07/neofetch-rockylinux9-post-installation.png

View File

@ -0,0 +1,112 @@
[#]: subject: "How to Make LibreOffice Look Like Microsoft Office"
[#]: via: "https://www.debugpoint.com/libreoffice-like-microsoft-office/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
How to Make LibreOffice Look Like Microsoft Office
======
We attempted to make the LibreOffice suite look like Microsoft Office. Is it possible? Lets find out.
[LibreOffice][1] is a free and open-source office productivity suite that provides you with a complete collection of applications. It consists of a Word processor (Writer), a spreadsheet program (Calc), Presentation (Impress), and a drawing program (Draw). It also gives you a stand-alone database system LibreOffice Base while LibreOffice Math is a program that helps students and researchers write formulas and equations.
While the widely used [Microsoft Office][2] is a paid office productivity suite that gives you excellent programs to perform almost all tasks related to study, office, and enterprise usage.
Adopting LibreOffice is sometimes difficult compared to Microsoft Office although most of the menu items and tools are the same. Both programs are different, but their objective is the same in terms of functionality. Due to its popularity, Microsoft office is used widely and is well known to users. However, many users prefer the free LibreOffice for their work and activities.
That said, if you can make LibreOffice look like Microsoft Office, it is much easier for first-time users to adopt mostly coming from a Microsoft Office background. The look and feel play a big part in users minds, including their muscle memory, familiarity with colours, and menu items.
Of course, you can not make it exactly like Microsoft Office because of different icons, fonts, etc. However, you can make it look up to a certain amount.
### Make LibreOffice Look Like Microsoft Office
#### 1. User Interface changes
LibreOffice has a “Ribbon” style toolbar called Tabbed Bar. However, it has many toolbar options (see below). For this guide, I have used the Tabbed bar option.
* Open LibreOffice and go to `Menu > View > User Interface`.
* Select `Tabbed` from the UI Section.
![tabbed bar option][3]
* Click on Apply to All.
* LibreOffice also provides an option to apply the toolbar type-specific to Writer or Calc. If you want a different toolbar type, you can choose that way. But I would recommend using the Apply to All to make it consistent.
* Now you should have the Microsoft Office-style Ribbon. Although they are not precisely the same, you get the feel of it.
#### 2. Microsoft Office Icons for LibreOffice
The Icons in the toolbar play a big part in your workflow. LibreOffice provides some nice icons for your toolbar. The best ones are the
* Karasa Jaga
* Colibre
* Elementary
For this guide, we will use Office 2013 icon set, which an author develops. It is available in Devian Art.
* Go to the below link and download the LibreOffice extension file (*.oxt). For the newer versions of LibreOffice, you need to use extension files to install icon sets.
[download office 2013 icon sets for libreoffice][4]
* After downloading, double-click the .oxt file to open. Or, press CTRL+ALT+E to open the Extension Manager and select the downloaded .oxt file using the Add button. Close the window once done.
![Import icon sets in Extension Manager][5]
* Now go to `Tools > Options > View`. From the Icon style, choose Office 2013.
* Change the icon size via `Icon Size > Notebookbar > Large`. If you feel the icons are small, you can change them. However, I think to make it more Office-like, the large settings work better.
![Change icons in Options][6]
And thats it. Your LibreOffice installation should look like this.
![Making LibreOffice look like Microsoft Office in KDE Plasma][7]
![Making LibreOffice look like Microsoft Office in Windows 10][8]
![Making LibreOffice look like Microsoft Office in GNOME][9]
Remember, if you are using Ubuntu, KDE Plasma, or any Linux distribution, the looks may be different. But in my opinion, it looks closer to Microsoft Office in KDE Plasma than GNOME. LibreOffice doesnt look good in GTK-based systems at the moment.
In Windows, however, it looks better because it uses a system font and colour palette.
These are some settings that you can use. However, you can play around with more customizations, icons, and themes as you wish. If you fancy dark mode in LibreOffice, you may want to read our tutorial on [how to enable dark mode in LibreOffice][10].
### Closing Notes
Microsoft Office is undoubtedly the market leader in the Office productivity space. There is a reason for it, it comes with decades of development, and its not a free product. The latest Office 365 Home usage price is around ~7 USD per month for 3 to 4 devices, which is a bit pricy if you ask me.
Whereas LibreOffice is free and community-developed and headed by The Document Foundation. It is not trying to be Microsoft Office, but it allows millions of users, schools, non-profits, colleges, and students to work and learn using a free office suite. Hence, the development is slower, and features arrive late.
Hence, it is beneficial if it can mimic the basic look and feel to make it like Microsoft Office to increase LibreOffices adoption. And I hope this guide serves a little purpose in that direction.
[Link: Official Feature comparison between LibreOffice and Microsoft Office.][11]
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/libreoffice-like-microsoft-office/
作者:[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]: http://libreoffice.com
[2]: http://office.com
[3]: https://www.debugpoint.com/wp-content/uploads/2021/06/tabbed-bar-option.jpg
[4]: https://www.deviantart.com/users/outgoing?https://1drv.ms/u/s!ArgKmgFcmBYHhSQkPfyMZRnXX5LJ
[5]: https://www.debugpoint.com/wp-content/uploads/2021/06/Import-icon-sets-in-Extension-Manager.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2021/06/Change-icons-in-Options-1024x574.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-KDE-Plasma.jpg
[8]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-Windows-10.jpg
[9]: https://www.debugpoint.com/wp-content/uploads/2021/06/Making-LibreOffice-look-like-Microsoft-Office-in-GNOME.jpg
[10]: https://www.debugpoint.com/2020/01/how-to-enable-dark-mode-libreoffice/
[11]: https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office

View File

@ -0,0 +1,82 @@
[#]: subject: "Monitor your Linux firewall with nftwatch"
[#]: via: "https://opensource.com/article/22/7/nftwatch-linux-firewall"
[#]: author: "Kenneth Aaron https://opensource.com/users/flyingrhino"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
Monitor your Linux firewall with nftwatch
======
I created the Linux nftwatch command to watch firewall traffic stats.
Netfilter tables ([nftables][4]) is the default firewall shipped with modern Linux distros. It's available on Fedora and RHEL 8, the latest Debian, and many others. It replaces the older iptables that was bundled in earlier distro releases. It's a powerful and worthy replacement for iptables, and as someone who uses it extensively, I appreciate its power and functionality.
One of the features of nftables is the ability to add counters to many elements, such as rules. These are enabled on demand. You need to explicitly ask for it on a per line basis using the "counter" argument. I have them enabled for specific rules in my firewall, which gives me visibility into those rules.
This got me thinking. How can I look at these counters in real time? At first I tried "watch" which allows things like refresh rate, but I didn't like the default format and it wasn't scrollable. I found using `head` and `tail` and `awk` less than ideal. A user-friendly solution didn't exist. So I wrote my own, which I'd like to share with the open source community.
### Introducing nftwatch on Linux
My solution, which I call nftwatch, does a few things:
* It reorders and reformats the nftables output to make it more readable.
* It allows scrolling the output up or down.
* Its user-defined refresh rate (can be changed in real time).
* It can pause the display.
Instead of a dump of a table, you get output that shows activity for each rule:
![Image of nftwatch][5]
(Kenneth Aaron, CC BY-SA 4.0)
You can download it here from its [Git repository][6].
It is 100% python, 100% open source, and 100% free. It ticks all the boxes for free, quality programs.
### Install nftwatch on Linux
Here are the manual install instructions:
1. Clone or download the project from the git repository.
2. Copy `nftwatch.yml` to `/etc/nftwatch.yml`.
3. Copy `nftwatch` to `/usr/local/bin/nftwatch` and grant it executable permissions using `chmod a+x`.
4. Use `nftwatch` with no args to run it.
5. See `nftwatch -m` for the man page.
You can also run nftwatch without the [YAML][7] config file, in which case it uses builtin defaults.
### Usage
The nftwatch command displays nftables rules. Most of the controls are designed for this purpose.
Arrow keys and the equivalent Vim keypresses control scrolling. Use the **F** or **S** key to change the refresh speed. Use the **P** key to pause the display.
Run `nftwatch -m` for full instructions, and a list of interactive key controls.
### A new view of your firewall
Firewalls can seem obtuse and vague even if you spend time to configure them. Aside from extrapolating indicators from log entries, it's hard to tell what kind of activity your firewall is actually seeing. With nftwatch, you can see your firewall at work, and ideally gain a better understanding of the kind of traffic your network has to deal with on a daily basis.
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/nftwatch-linux-firewall
作者:[Kenneth Aaron][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/flyingrhino
[b]: https://github.com/lkxed
[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_laptop_computer_work_desk.png
[2]: https://unsplash.com/@jonasleupe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[3]: https://unsplash.com/s/photos/tea-cup-computer?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
[4]: https://developers.redhat.com/blog/2016/10/28/what-comes-after-iptables-its-successor-of-course-nftables?extIdCarryOver=true&sc_cid=701f2000001OH79AAG#getting_started
[5]: https://opensource.com/sites/default/files/2022-07/nftwatch-sample.png
[6]: https://github.com/flyingrhinonz/nftwatch](https://github.com/flyingrhinonz/nftwatch
[7]: https://opensource.com/article/21/9/yaml-cheat-sheet

View File

@ -0,0 +1,80 @@
[#]: subject: "Meet Free Software Foundation Executive Director Zoë Kooyman"
[#]: via: "https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
采访自由软件基金会执行董事 Zoë Kooyman
======
了解自由软件基金会FSF的一切。
![Dandelion zoomed in][1]
图片署名:由 Rob Tiller 拍摄,以 CC BY-SA 发布
早在 1985 年,[自由软件基金会FSF][2]就开始提倡源代码共享的理念并从此打响了为计算机用户和开发者捍卫权利的斗争。FSF 认为,用“开源”和“闭源”这两个词来划分软件,十分具有局限性;于是,在为程序分类时,转而使用了以下词语:*尊重自由*(“自由”)或*践踏自由*“非自由”或“专有”。不管用语如何关键之处在于计算机必须受用户控制而不是任由开发了计算机软件的公司来摆布。正因如此GNU 工程、Linux 内核、Freedesktop.org 等众多自由软件项目,才会如此重要。
最近FSF 新上任了一位执行董事,她叫 Zoë Kooyman。我初见 Zoë 时,是在 2019 年的一个 [All Things Open][3] 大会上。当然,那个时候她还不是 FSF 的执行董事,不过已经在管理 FSF 的重大活动列表了——那份列表的活动包括了 [LibrePlant][4], 并且还在不断地增长。她之前递给我了一份自由软件作者的名单,名单长得一眼望不尽,而且那些软件都是我*每天*在用的。由此,我也很受她那充沛的精力和诚恳的态度所打动。我只是偶然参加了一次 FSF 的聚会,但最后却和那些人成了朋友。是他们让我的数字生活有了意义,是他们保障了我能够拥有 Zoë 和 FSF 所说的[四项基本自由][5]
* 无论用户出于何种目的,用户必须可以按照自己的意愿,自由地运行该软件(自由之零)。
* 用户可以自由地学习并修改该软件,这样程序的计算过程才是可控的(自由之一)。作为前提,用户必须可以得到该软件的源代码。
* 用户可以自由地分发该软件的副本,这样就可以帮助别人(自由之二)。
* 用户可以自由地分发该软件修改后的副本(自由之三)。借此,用户可以把改进后的软件分享给整个社区,令他人也从中受益。作为前提,用户必须可以得到该软件的源代码。
听说了 Zoë 受任为执行董事后,我给她发了一封邮件,提出想和她进行一次采访。她十分热心,在百忙之中抽出了一点时间来和我畅谈。
**Seth Kenlon你当上 FSF 的执行董事了!你是怎么走到今天的呢?**
**Zoë Kooyman** 在我的工作生涯中,我最开始是一位活动组织者。我环游世界,举办着一些世界上最大的音乐节目。在不断变更的地点、各具特色的文化中工作,是十分有趣的,因为不管是演出、技艺还是别的现场元素,所有各异的制作元素都结合在一起了。让一切事物都在恰当时候安排到位,就像是耍杂技一样。很多时候,我都是在不同的国家生活和工作。多亏了我的工作,我才能学到这么多的组织和交流技巧。我也对不同形式的媒体有过研究和工作,了解它们的经历,以及它们与社会的关系。
大学时期,我第一次了解到了 copyleft译注一种分享软件的思想和方法简而言之其目的是保障一款软件对其每一位接收者来说都是自由的它是关于我们如何才能使用现有的结构来造福自己并推动变革的。也正是在那时媒体以及互联网和软件的格局开始迅速变化而这种变化却是以自由为代价的。搬到美国后我变了许多。在美国我对社会责任问题有了更加强烈的紧迫感因此我决定为此付诸行动。我很感激 John Sullivan当时 FSF 的执行董事),他根据我对自由软件的了解以及我在活动组织方面的经验, 把我招了进来,由此我也得以把这两方面的能力结合到一起。
**Seth你是如何了解到自由软件的**
**Zoë** 我们常常会觉得,自由软件主要影响的是懂技术的人。但是,自由软件运动的目的是捍卫每一位计算机用户的自由。其实,软件自由影响着边缘化社区(译注:因条件受限或受到排斥等,落后于主流社会的发展,而被置于社会边缘的群体)的成员,他们很少有机会使用计算机。而软件也塑造了他们的生活。
GNU 工程和 copyleft 的概念,取得的成就是十分卓越的。去真正观察社会发展的方向,然后说:“不一定非得那样才行,我们可以把事情掌握在自己手中。”这在早期改变了我的人生观。我开始有了一种想法,把现有的材料用起来,再把它重新引入不同的亚文化之中。在娱乐行业,这已是家常便饭。从他人的作品中得到灵感,并基于此创造新的作品,其结果就是对我们所处时代的反映,同时也是对历史的致敬。没有这般自由,也不会有真正的进步。
谈谈我对电影版权的看法吧。我曾经与荷兰电影研究所合作,做了一个由许多“孤立的电影片段”组合而成的混剪。然后,在一次有几千名年轻人参加的大型舞蹈活动中,那个混剪就在一个 170 米的全景屏幕上播放了,而且还有现场 DJ 在配合演奏。他们之后也经常在别的活动中播放它,比如说荷兰的 *Museumnacht*
我并不懂技术,于是我通过文化来表达了这些观点。但这些年来,我接触自由软件的思想,接触得越来越频繁了。我于是意识到,随着软件不断融入我们的生活(有时还是身体),自由软件斗争的重要性正日益凸显。在当今的世界,专有软件处于称霸地位,我们社会的发展呈现出以利益驱动、为少数人着想的趋势,而这种趋势是以多数人的自由为代价的。如果没有自由软件,生活中的许多方面、社会的许多重要事业,就不可能真正取得成功。
**Seth** 你是什么时候加入 FSF 的?
**Zoë** 在 2019 年初LibrePlanet 最后一期现场版的前一周译注LibrePlant 之后因为疫情而改成了线上活动)。
**Seth** 是什么吸引了你去担任执行董事这一职位?
**Zoë** 有许多组织都致力于让社会更加公平、更加协作、更加理解软件。FSF 只是其中之一,但它长期以来一直是这场运动的核心。社会正在迅速变化,而许多人却还没准备好如何应对当今社会的数字产物,例如软件。这是一项十分重要的工作,但是去担任这项工作的人还是太少了。能有一个组织来应对未来的各种挑战,这是十分重要的。
执行董事这一职位,在某种程度上,不过是辅助了工作人员和社区而已,好让他们为自由软件作出关键的改变。我相信,我们继续传播自由软件的思想,是非常重要的;并且,有了 FSF 的团队协助,我也相信,我能利用好工作在不同文化和人群中的经验,以及组织高挑战性的全球项目的经验,来使我们发挥出最大的潜能。我的这项决定,得到了来自工作人员、管理层和社区的支持,由此我相信,这个决定是正确的。
**Seth** 你认为当今的软件自由面临的最大的挑战是什么FSF 在应对这些挑战的时候,应该承担怎样的使命?
**Zoë** 随着软件越来越多地融入了社会的基本结构,软件也更加无形了。如今,软件存在如此广泛,我们却习惯性地忽视它。我们只关注着程序的功能,却无视了实现这种功能的手段,更别说它尊不尊重你作为一位用户的自由了。而与此同时,软件的发展速度又比以往任何时候都要快。如果人们无法理解程序是如何构成的,而只是整天地用着这些程序,那我们该怎么向他们解释,他们正遭受着不公呢?
FSF 的职责就是,让每个人重新谈起用户自由,并提醒人们,我们所使用的工具并没有那么好。因此,教育行业和政府的认可是十分重要的。如果我们让人们关注软件自由在这些领域的问题,那我们必将取得成效。通过教育,我们可以确保后代也有选择自由的权利;而政府采用自由软件,可以保护公民免遭专有软件的不正影响(维护数字主权)。
我们可以告诉人们,当今社会给我们灌输了错误的观点:你的自由受到侵犯是正常的,毕竟事情“太复杂,你理解不了”。如果你想要图个便利,想要相互联系,或者就是想要满足你的需求,那你就得相信这些组织,按照他们的意愿来。这是不对的。我们整个社区都相信,我们能构建一个无需抛弃自由也能处在其中的社会。并且我们也有这样的法律框架来支持我们的观点。每天,不同背景、不同能力的人都加入我们的对话,越来越多的人关心自己的自由,并且每个人都是出于真心的。我们每天都在学习如何去保护自己以及他人,并且我也希望,未来能够更加自由。
--------------------------------------------------------------------------------
via: https://opensource.com/article/22/7/meet-fsf-executive-director-zoe-kooyman
作者:[Seth Kenlon][a]
选题:[lkxed][b]
译者:[Peaksol](https://github.com/TravinDreek)
校对:[校对者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://opensource.com/sites/default/files/dandelion_zoom.jpg
[2]: https://www.fsf.org/
[3]: https://www.allthingsopen.org/
[4]: https://libreplanet.org
[5]: https://www.gnu.org/philosophy/free-sw.en.html