15 个最佳 GTK 主题

Summary: 我们为各种 Linux 发行版提供了一个全新的最佳 GTK 主题列表。

似乎所有基于 Materia 主题的 GTK 主题，与 MATE 桌面环境的兼容性都不怎么好，有时候会出现个别应用按钮错位的情况。更多的是 MATE Panel 兼容性的问题，比如，用某些主题时，面板背景是黑色的，但面板文字也是黑色的，很难看清。

相较之下，所有基于 Arc 主题的 GTK 主题在 MATE、XFCE 等桌面环境上的表现都很不错。另外，文中提到的 Nordic 主题在 MATE 桌面环境中的表现也很好。

既然提到了 Arc 主题，我觉得还有两个主题值得推荐：一是 Qogir，有三种颜色差分（蓝灰色色、蓝绿色和橙色），颜色偏冷；二是 Matcha，有四个颜色差分（

Matcha 和 Qogir 两个主题与文中提到的 Orchis、Vimix、Fluent 等主题一样，都是国人设计师 vinceliuice 的作品，可以到他的 Github 主页下载。

我们为各种 Linux 发行版提供了一个全新的最佳 GTK 主题列表。

![](/data/attachment/album/202307/07/183102d63s364i225tpwho.jpg)

>
> 我们为各种 Linux 发行版提供了一个全新的最佳 GTK 主题列表。
>
>
>

桌面外观在你的 Linux 整体体验中起着重要作用。GTK 主题提供了一种简单而强大的方式来定制你的桌面环境的外观。应用 GTK 主题使你可以更改颜色、窗口装饰和整体样式，以适应你的喜好。

除了 KDE Plasma 和 LXQt 之外，大多数受欢迎的桌面环境都基于 GTK。因此，了解当今最好的 GTK 主题是很重要的。

在 Linux 上安装 GTK 主题相对简单。安装说明通常在主题的官方网站上。通常，它包括下载主题文件并将它们（提取后）放置在主目录下的 `~/.themes` 文件夹中。

让我们深入了解在 2023 年最流行的前 15 个 GTK 主题。

### 2023 年最佳 GTK 主题

#### Orchis

Orchis 是一款备受推崇的 GTK 主题，因其清新独特的设计而广受欢迎。受到 macOS Big Sur 外观的启发，Orchis 为 Linux 桌面带来了流畅而现代的外观。

Orchis 因其将 macOS Big Sur 的优雅引入 Linux 生态系统而受到认可。通过结合现代设计和 Fluent Design 语言的元素，Orchis 提供了一个视觉吸引力和一致性的用户界面，增强了整体桌面体验。无论你喜欢浅色还是深色变体，Orchis 都为你的 Linux 桌面提供了一种清新而精致的外观。

![Orchis 主题](/data/attachment/album/202307/07/183431vffnrnfbff0cnek4.jpg)

>
> **注意**：该主题支持 libadwaita/GTK4 主题。因此，适用于 GNOME 40+ 桌面。
>
>
>

你可以从下面的页面下载并获取安装说明。

>
> **[下载 Orchis 主题](https://github.com/vinceliuice/Orchis-theme)**
>
>
>

#### WhiteSur

WhiteSur 是一个受到 macOS Big Sur 流畅设计启发的 GTK 主题。以下是其主要特点：

* 采用了 macOS Big Sur 的美学设计，带有圆角和半透明窗口。
* 提供了浅色和深色模式以满足不同偏好。
* 在基于 GTK 的应用程序中保持一致的设计。
* 注重细节，具有平滑动画和清晰的阴影。
* 可自定义选项，包括强调色、窗口装饰和按钮样式。

![WhiteSur GTK 主题](/data/attachment/album/202307/07/183441zxccpni7fmk77znp.jpg)

WhiteSur 兼容多种 Linux 桌面环境，如 GNOME、Xfce 和 Cinnamon，使其能够受到广大用户的喜爱。通过 WhiteSur 干净统一的界面，在你的 Linux 桌面上体验 macOS Big Sur 的优雅。

>
> **注意**：该主题还支持 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面下载主题并获取安装说明。

>
> **[下载 WhiteSur 主题](https://github.com/vinceliuice/WhiteSur-gtk-theme)**
>
>
>

#### Vimix

Vimix 是一款受欢迎的 GTK 主题，为 Linux 桌面环境提供时尚现代的外观。以下是它的主要特点：

* Vimix 采用了时尚现代的设计风格，具有扁平界面、简洁线条和细微渐变。
* 该主题提供了多种颜色变体，包括浅色的 Vimix Light 和深色的 Vimix Dark。
* Vimix 兼容多种 Linux 桌面环境，包括 GNOME、Xfce、Cinnamon 等，适用于各种 Linux 用户。

![Vimix 主题](/data/attachment/album/202307/07/183454gxt6uhq8i9dbnd33.jpg)

Vimix 通过现代设计元素的结合、颜色的多样性以及与各种桌面环境的兼容性而受到欢迎。其时尚的外观和自定义选项使其成为寻求视觉上愉悦和一致用户界面的 Linux 用户的绝佳选择。

>
> **注意**：它支持现代的 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面下载 Vimix 主题。

>
> **[下载 Vimix 主题](https://github.com/vinceliuice/vimix-gtk-themes)**
>
>
>

#### Prof-GNOME-theme

Prof-GNOME-theme 是一个著名的 GTK 主题，为 Linux 桌面环境（特别是 GNOME）带来了专业而精致的外观。以下是其主要特点：

* Prof-GNOME-theme 采用了简洁而专业的设计，呈现出极简主义的风格、优雅的线条和精致的美学。
* 该主题采用了细腻而优雅的调色板，专注于中性色调和柔和的变化，营造出宁静而专业的氛围。
* 该主题确保在基于 GTK 的应用程序中保持一致，为整个桌面环境提供了协调和和谐的体验。

![Prof-GNOME 主题 - 2022 年 GNOME 主题](/data/attachment/album/202307/07/183507sm0bq7yyjoxmvfoo.jpg)

Prof-GNOME-theme 受到专业人士和欣赏干净精致桌面环境的用户的青睐。它注重细节，专注于专业主义，使它成为那些寻求精致而优雅外观的 Linux 桌面用户的绝佳选择。

你可以从下面的页面下载该主题并获取安装说明：

>
> **[下载 Prof-GNOME 主题](https://www.gnome-look.org/p/1334194)**
>
>
>

#### Ant

Ant 是一款受欢迎的 GTK 主题，以其简洁和极简主义的设计而闻名。其主要特点包括：

* 清爽而扁平的美学，带有微妙的阴影。
* 一致且清晰的图标。
* 色彩平衡而悦目。
* 支持浅色和深色变体。
* 与 GNOME 桌面环境无缝集成。

![Ant 主题](/data/attachment/album/202307/07/183520f3sqj8613ja6liq8.jpg)

用户可以在其 Linux 系统上享受到 Ant 主题带来的现代且视觉上愉悦的体验。其简约和优雅外观，使其成为寻求 GTK 应用程序和桌面的精致外观的人士的首选。

你可以从下面的页面下载 Ant 主题。

>
> **注意**：该主题**不支持** GTK4/libadwaita。
>
>
>

>
> **[下载 Ant 主题](https://www.gnome-look.org/p/1099856/)**
>
>
>

#### Flat Remix

Flat Remix 是一款备受赞誉的 GTK 主题，为 Linux 桌面提供了清新现代的外观。它的主要特点包括：

* 扁平和极简主义的设计，色彩鲜明。
* 在基于 GTK 的应用程序中保持一致和统一的外观。
* 全面的图标集，提供精细的视觉体验。
* 支持浅色和深色变体。

![Flat Remix 主题](/data/attachment/album/202307/07/183537ld6w7pd49b76dd9d.jpg)

Flat Remix 为 Linux 桌面环境带来了愉悦的触感，提升了整体美学和用户体验。其鲜明的色彩和协调的设计使其受到喜欢清洁和现代界面的用户的欢迎。

>
> **注意**：该主题**不支持** GTK4/libadwaita。
>
>
>

你可以从下面的页面下载 Flat Remix 主题。

>
> **[下载 Flat Remix 主题](https://drasite.com/flat-remix-gnome)**
>
>
>

#### Fluent

Fluent GTK 主题是一款现代时尚的主题，受到了微软的 Fluent Design System 的启发。以下是其主要特点：

* 光滑和精致的外观，融入了 Fluent Design 的深度、动态和透明度原则。
* 基于 Fluent 的图标提供了一致和统一的外观。
* 与基于 GTK 的应用程序无缝集成，提供一致的用户体验。
* 支持浅色和深色模式，允许用户个性化他们的桌面。
* 持续开发和定期更新，确保与最新的 GTK 版本兼容。

![Fluent GTK 主题](/data/attachment/album/202307/07/183555q6txcfjfci7izmsr.jpg)

Fluent GTK 主题为 Linux 桌面带来了微软设计的优雅风采，吸引了欣赏现代和精致视觉体验的用户。其遵循 Fluent Design 指南并持续发展，使其成为寻求现代和精致 GTK 主题的人士的理想选择。

>
> **注意**：该主题支持 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面下载 Fluent GTK 主题并获取安装说明。

>
> **[下载 Fluent GTK 主题](https://github.com/vinceliuice/Fluent-gtk-theme)**
>
>
>

#### Grvbox

Grvbox 是一款受 Vim 著名配色方案 [gruvbox](https://github.com/morhetz/gruvbox) 启发的热门 GTK 主题。以下是其主要特点：

* 温暖复古的调色板让人想起老式终端界面。
* 经过精心设计，提供舒适和愉悦的视觉体验。
* 提供浅色和深色变体，让用户选择其喜好的风格。
* 与基于 GTK 的应用程序无缝集成，确保一致和统一的外观。
* 定期更新和社区支持，确保与最新的 GTK 版本兼容。

![Gruvbox GTK 主题](/data/attachment/album/202307/07/183608cotn4zihsaro1s2x.jpg)

Grvbox 主题为 Linux 桌面带来了怀旧的魅力，唤起了熟悉和简约的感觉。其精心选择的颜色和注重细节，使其受到那些欣赏基于 GTK 的应用程序和桌面环境的复古魅力的爱好者的喜爱。

>
> **注意**：该主题支持 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面获取 Grvbox 主题的下载和安装说明：

>
> **[下载 Grvbox 主题](https://github.com/Fausto-Korpsvart/Gruvbox-GTK-Theme)**
>
>
>

#### Graphite

Graphite 是适用于基于 GTK 的桌面环境的深色主题。它旨在简约而优雅，非常适合希望拥有干净、无干扰界面的用户。

Graphite 主题基于 Adwaita 主题，并拥有许多相同的功能。但是，Graphite 具有更暗的色彩调色板和更加简约的设计。

![Graphite GTK 主题](/data/attachment/album/202307/07/183621nzzx3fu15xwwed1s.jpg)

如果你正在寻找一款既简约又优雅的深色主题，那么 Graphite 主题是一个很好的选择。它易于安装和使用，并与许多桌面环境兼容。

几个月前，我对该主题进行了评估，你可能会对此感兴趣：[Graphite 主题概述](https://www.debugpoint.com/graphite-theme-gnome/)。

**注意**：该主题支持 GTK4/libadwaita。

你可以使用下面页面上的说明安装此主题。

>
> **[Graphite GTK 主题](https://github.com/vinceliuice/Graphite-gtk-theme)**
>
>
>

#### Material

Material 是一款受到 Material for Neovim 和 Graphite 主题（上面有提到）启发的广为人知的 GTK 主题。以下是其主要特点：

* 清爽现代的美学，采用扁平设计元素和鲜明色彩。
* 一致且协调的图标设计，符合 Material Design 的指南。
* 提供浅色和深色变体，让用户自定义视觉体验。
* 与基于 GTK 的应用程序无缝集成，确保统一的外观和感觉。
* 定期更新和社区支持，确保与最新的 GTK 版本兼容。

![Material GTK 主题](/data/attachment/album/202307/07/183636zot9rnerrpne09vn.jpg)

Material 主题将流行的 Material Design 风格带到了 Linux 桌面，提供了视觉上令人愉悦且直观的用户体验。凭借其时尚的设计和与各种 GTK 环境的兼容性，Material 主题受到喜欢现代和和谐界面的用户的欢迎。

>
> **注意**：该主题支持现代的 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面下载并安装 Material 主题：

>
> **[下载 Material 主题](https://github.com/Fausto-Korpsvart/Material-GTK-Themes)**
>
>
>

#### Arc

Arc 主题是 Linux 社区中受欢迎的 GTK 主题，以其流线型和现代的设计而闻名。它提供了干净、简约的外观，与各种桌面环境（特别是 GNOME）相得益彰。以下是 Arc 主题的一些主要特点：

* 美观的设计，拥有平滑曲线和扁平界面
* 多种颜色变体，包括 Arc、Arc-Darker 和 Arc-Dark
* 可更改按钮样式、标题栏布局和窗口边框的选项

Arc 主题将美学和功能性融为一体，成为许多寻求视觉上愉快和一致用户界面的 Linux 用户的首选。

![Ubuntu GNOME 中的 Arc Darker 主题](/data/attachment/album/202307/07/183652c2jp6nj4v10j7fli.jpg)

>
> 然而，当前版本的主题**不支持**现代的 GTK4/libadwaita。
>
>
>

你可以从下面的官方仓库中下载 Arc 主题（这是原始 Arc 主题的另一个分支）：

>
> **[下载 Arc 主题](https://github.com/jnsh/arc-theme)**
>
>
>

此外，在 Ubuntu 及相关发行版上，你可以使用以下命令进行安装：

```
sudo apt install arc-theme

```

#### Nordic

Nordic 是一款备受赞誉的 GTK 主题，受到北欧地区宁静景色的启发。以下是其主要特点：

* 细腻而舒缓的调色板让人想起极光和雪景。
* 浅色和深色元素的和谐组合，提供最佳的对比度和可读性。
* 高度精心设计的图标完美地补充了整体美学。
* 跨平台兼容，使用户可以在各种基于 GTK 的环境中享受 Nord 主题。
* 定期更新和社区支持，确保持续的改进和兼容性。

![Nordic 主题](/data/attachment/album/202307/07/183702uzhy7zt7ym2qgx6x.jpg)

Nordic 主题为 Linux 桌面带来了宁静和优雅的氛围，让用户沉浸在一个视觉上迷人的环境中。其精心选择的颜色和对细节的关注，使其在寻求视觉上愉快和放松的 GTK 主题的 Linux 系统用户中广受欢迎。

它还附带了一个适用于 Firefox 的主题，以获得更好的外观和集成。

>
> **注意**：该主题支持现代的 GTK4/libadwaita 主题。
>
>
>

你可以从下面的页面下载 Nordic 主题：

>
> **[下载 Nordic 主题](https://github.com/EliverLara/Nordic)**
>
>
>

#### Adapta

Adapta 是一款备受赞誉的 GTK 主题，以其多功能性和现代设计而闻名。

Adapta 主题增强了 Linux 桌面的时尚和适应性风格，允许用户在保持精致和统一外观的同时个性化他们的界面。它的灵活性和持续发展使其成为那些寻求现代且可定制的 GTK 主题的人们的首选。

然而，这个优秀主题的开发已经**停止**了多年。你仍然可以从下面的官方页面下载并使用该主题：

>
> **[下载 Adapta 主题](https://github.com/adapta-project/adapta-gtk-theme)**
>
>
>

#### Equilux

Equilux 是一款适用于基于 GTK+ 的桌面环境的暗色主题。它的设计旨在中性且不分散注意力，非常适合在低光环境下使用或对亮色敏感的人士。

Equilux 主题基于 Materia 主题，并拥有许多相同的功能。然而，Equilux 使用了更柔和的调色板，使其更适合于暗环境。

![Equilux 主题](/data/attachment/album/202307/07/183717s9rwww9regcwuvfr.jpg)

如果你正在寻找一款既中性又不分散注意力的暗色主题，那么 Equilux 主题是一个很好的选择。它易于安装和使用，并且与各种桌面环境兼容。

>
> **注意**：该主题的开发已经 [停止](https://github.com/ddnexus/equilux-theme)。不会有进一步的更新。
>
>
>

你可以在下面的页面上找到该主题的当前版本：

>
> **[下载 Equilux 主题](https://www.gnome-look.org/p/1182169/)**
>
>
>

#### Paper

Paper 是一款广为人知的 GTK 主题，以其简约而优雅的设计而闻名。以下是其主要特点：

* 干净而扁平的视觉风格，具有微妙的阴影效果。
* 精心设计的图标提供了一致且精致的外观。
* 提供多种颜色变体，包括浅色和深色主题。
* 维护良好且积极开发，确保与最新的 GTK 版本兼容。
* 支持 GNOME、Xfce 和 Unity 等流行的桌面环境。

![GNOME 中的 Paper 主题](/data/attachment/album/202307/07/183727ye5iixexe1nb4re4.jpg)

Paper 以其极简的风格和注重细节的特点，为用户提供了视觉上愉悦和和谐的桌面体验。其多样的颜色选项和与多种桌面环境的兼容性，使其成为寻求时尚和现代外观的 Linux 爱好者的热门选择。

>
> **注意**：该主题的开发在 2016 年已**结束**。不支持现代的 GTK4+。
>
>
>

>
> **[下载 Paper 主题](https://github.com/snwh/paper-gtk-theme)**
>
>
>

### 关于 Adwaita 的说明

流行的 Adwaita 主题是最好和最稳定的 GTK 主题之一。我之前没有将其列入上述列表的原因是它已经作为默认主题包含在许多发行版中，用户已经在其系统中安装了该主题。

### 总结

上述 GTK 主题代表了各种风格的不同口味，从现代设计到充满活力和丰富多彩的美学。无论你偏好极简的外观还是视觉上惊艳的界面，都可以找到适合你口味的 GTK 主题。我鼓励你尝试上述主题并搭配各种图标和鼠标主题，以获得更好的体验。

部分图片来源归属于各自的作者。

*（题图：MJ/cf5c27f6-ea23-4d9b-a311-168c45d9ea92）*

---

via: <https://www.debugpoint.com/best-gtk-themes/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1055 5G 并没有影响飞行安全

Summary:
? 5G 并没有影响飞行安全
? 法官裁定表情符号 ? 表示签署合同
? Threads 不到 24 小时内突破 3000 万注册用户
»
»

Threads大概率会是另一个腾讯微博。。。

校内、QQ空间没干掉新浪微博，facebook也一样。。。

![](/data/attachment/album/202307/07/203520zoayqwwaygugzxy1.jpg)

![](/data/attachment/album/202307/07/203529iccja5p87ixmm5ij.jpg)

### 5G 并没有影响飞行安全

2021 年末，就在 Verizon 计划在其持有的新 C 波段频谱上开通 5G 网络之前，美国航空业开展了一场大型公关活动，以 [阻止](/article-13945-1.html) 该网络的推出。航空业认为 5G 频段会对飞机上的高度计形成“重大干扰”，这种高度计对于飞机在雨天和其他可能影响能见度的情况下安全着陆至关重要。一些国际航空公司开始 [减少](/article-14202-1.html) 飞往美国的航班，航空业认为这甚至会导致“国家的商业陷入停滞”。这场对峙在去年夏天达到了高峰。经过公开的辩论后，Verizon 和 AT&T 同意将他们在一些机场附近的 5G 推广工作推迟到 7 月 1 日，以使航空业有时间将一些飞机高度计更新为不会受到 5G 影响的高度计。而到了最后期限 7 月 1 日，仅达美航空就预计约还有 190 架飞机需要加装新高度计。但这一天就这样悄然过去了，一家航班追踪公司称并没有发生“任何专门与 5G 有关的干扰”。

>
> **[消息来源：Light Reading](https://www.lightreading.com/ossbsscx/the-5g-threat-to-airplanes-quietly-recedes/d/d-id/785546?)**
>
>
>

>
> 老王点评：所以，飞机上使用手机影响飞行安全吗？
>
>
>

![](/data/attachment/album/202307/07/203541bnfin22pekzwwvfo.jpg)

### 法官裁定表情符号 ? 表示签署合同

一位谷物买家在 2021 年 3 月向一位农民发送了一条短信，称该公司希望购买 86 吨亚麻，在秋季交付。双方后来通了电话，买家发来一张 11 月交付亚麻的合同图片，还说 “请确认亚麻合同”。这位农民发回了一个竖起大拇指（?）的表情符号。但当 11 月到来时，亚麻并没有交付，而且价格已经上涨。一位加拿大法官说，“（竖起大拇指）表情符号是一种非传统的文件‘签名’方式，但在这种情况下，这是一种传达‘签名’的两个目的的有效方式”，因此裁定农民违反了合同，并命令农民支付超过 82,000 美元违约金。农民辩称，这个表情符号只表明他在短信中收到了合同。

>
> **[消息来源：The Globe and Mail](https://www.theglobeandmail.com/canada/article-farmer-ordered-to-pay-after-judge-says-thumbs-up-emoji-amounts-to/)**
>
>
>

>
> 老王点评：看看你以后还敢随便发表情符号吗？
>
>
>

![](/data/attachment/album/202307/07/203551mk2nfgfkqoovg2o0.jpg)

### Threads 不到 24 小时内突破 3000 万注册用户

Meta 的新 Twitter 竞争对手 Threads 在 AppStore 上线的头两个小时就超过了 200 万注册人数，并且没有放缓的迹象。在前 7 个小时突破 1000 万注册人数后，又在不到 24 小时内达到 3000 万注册人数。Threads 现在也是最快突破 100 万用户大关的应用，打破了 ChatGPT 的记录。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/07/05/threads-passes-2-million-downloads-in-2-hours/)**
>
>
>

>
> 老王点评：虽然有 Instagram 的加成作用，但是也与马斯克的不断折腾有不少关系。
>
>
>


云服务架构完全指南

![](/data/attachment/album/202307/08/203631cnch79wfocbwtwhh.jpg)

>
> 经过大约 16 年的演变，云计算已经成为一种几乎所有网民都在使用的技术。它可以作为一种服务，用于满足各类企业和消费者的需求。因此，在云计算中正在使用多种服务架构，旨在根据最新的需求来定制所需技术。本文就如今使用的所有服务架构，提供一份完全指南。
>
>
>

尽管在全球范围内建立互相协同的计算机网络的构想在 20 世纪 60 年代初就提出了，但直到 2006 年，谷歌的首席执行官 <ruby> 埃里克·施密特 <rt>  Eric Schmidt </rt></ruby> 在当时的背景下引入了“<ruby> 云计算 <rt>  cloud computing </rt></ruby>”一词，这种构想才成为一种正式的概念。

云计算可以简单理解为遍布于世界各地的远程服务器网络，通过互联网共享数据和协同工作，从而为企业和消费者提供服务。虽然这样的定义比较武断，但它包含了云计算背后的核心思想。促成这项技术发展的主要因素是对“数据粘性”的需求，就是令数据更容易被各种设备访问，同时也要减少数据丢失的风险。如果用户甲只在一台服务器上保存了数据，对于用户甲来说，只要有一台服务器中断，数据就很有可能永久性丢失。这种做法无异于“把所有鸡蛋放在同一个篮子里”，从来都不是一个好办法，特别是当你在处理对公司和消费者具有重要意义的数据时。但如果你在多台服务器上备份了用户甲的数据，将有两个主要好处：其一，即使一台服务器中断，用户甲仍然可以正常获取数据；其二，云服务可以从负荷最小的、离他最近的那台正常运作的服务器获取数据。这使用户甲可以在不同设备上更快、更容易地获取数据。

历经大约 16 年的发展，云计算从起初只是一种用于备份图片的工具，变为了互联网的骨干。如今几乎所有的应用，从 Office 到 Asana 以及 Todolist，都利用云计算来实现实时访问和数据共享。几乎任意一款你能想像到的应用都在使用云计算。从 Gmail 和 YouTube，到Instagram，一切都使用云计算，以提供快速、便捷、可靠的数据访问功能。

提供云计算服务的公司称为云服务提供商。亚马逊、谷歌、微软、Salesforce、Cloud9 等都是 B2B 和 B2C 领域的云服务提供商。

在早期，云服务供应商通常指提供三类服务：

* <ruby> 软件即服务 <rt>  Software as a Service </rt></ruby>（SaaS）
* <ruby> 平台即服务 <rt>  Platform as a Service </rt></ruby>（PaaS）
* <ruby> 基础设施即服务 <rt>  Infrastructure as a Service </rt></ruby>（IaaS）

然而，随着行业需求不断发展，区块链和 AI 等新技术的出现，云服务提供商也开发了新的模式，用于更好地满足客户的各种需求。本文将详细论述如今大众普遍使用的那些云计算模式。

### 云端的架构

我们已经了解了什么是云计算，以及它是如何发展成一个高达 4450 亿美元产值的行业，现在我们从技术视角来理解云计算。通常一个云端架构都由两个主要部件组成 —— <ruby> 前台 <rt>  front-end </rt></ruby>和 <ruby> 后台 <rt>  back-end </rt></ruby>。

![Figure 1: The architecture of a cloud (Courtesy: TechVidvan)](/data/attachment/album/202307/08/203649fzccs8jc0g6qt4at.jpg)

前台包含客户端基础设施，有终端设备和用于与云端通信的应用程序界面。在现实世界里，你的智能手机和谷歌云端硬盘就是前台，它们用于访问谷歌云。

后台包含云端基础设施，包括运行云计算服务所需的一切设备。服务器、虚拟机、服务和存储都是由云端基础设施提供的。为了对它们有个全局的概念，现在我们来了解一下后台的每个组件。

* <ruby> 应用 <rt>  Application </rt></ruby>：用户或企业使用的、通过互联网与云端互动的任何应用程序的后台。
* <ruby> 服务 <rt>  Service </rt></ruby>：云端提供的服务型基础设施。本文将详细论述各种不同的服务。
* <ruby> 运行时 <rt>  Runtime </rt></ruby>：提供给虚拟机的运行时和执行系统。
* <ruby> 存储 <rt>  Storage </rt></ruby>：具有灵活的伸缩性的用户/企业数据获取和管理系统。
* <ruby> 基础设施 <rt>  Infrastructure </rt></ruby>：运行云端所需的硬件和软件。
* <ruby> 安全 <rt>  Security </rt></ruby>和<ruby> 管理 <rt>  Management </rt></ruby>：建立安全机制，保护用户/企业数据，管理各个云服务单元，避免过载和服务停机。

### 软件即服务（SaaS）

“软件即服务”是一种云计算模式，通过互联网将软件和应用程序作为一种服务提供。谷歌云端硬盘或谷歌工作空间都是比较典型的例子。谷歌云端硬盘内的所有应用，例如文档、工作表、幻灯片、表格等，它们都可以通过使用浏览器访问，并自动保存于云端。你可以在任意设备上获取文件的最新版本。你唯一需要做的就是登录你的账户。这就是“软件即服务”模式的优点。你不需要在你的设备上安装任何东西，也不需要使用你的本地存储空间，你可以直接访问云端的应用程序，并省略了使用本地软件时的很多繁杂操作。SaaS 一般遵循“按需付费”法则，你只要为你需要的服务支付费用。你总是可以通过支付更多的费用来购买更多的存储和/或功能，或者根据你的要求来降低你的套餐。

#### SaaS 的好处

1. SaaS 具有高度的可伸缩性，这归功于它的“按需付费”思想。你可以根据自身需求增加/减少存储空间或程序功能。
2. 考虑到它提供的特性，如通过任何操作系统的任何设备进行实时访问，它是非常合算的。
3. 它在客户端涉及的工作很少。不需要安装或进行复杂的步骤，就可以完成软件的初始化。你可以从你的浏览器和/或应用程序中舒适地使用它。
4. 不必手动安装，软件会自动更新，而且更新过程中你也不必等待。

### 平台即服务（PaaS）

并不是每家科技初创公司都有必要的资源来维护自己的基础设施，以便在云端运行他们的应用程序。公司（尤其是创业型公司）通常更倾向于把应用部署于云端，这样就不必处理后台基础设施了。这就是“平台即服务”这种模式的用武之地了。Heroku 等公司提供了基于“平台即服务”的云端解决方案，令公司和个人可以在不需要直接与硬件交互的情况下就能部署并运行他们的应用程序。跟“软件即服务”类似，这种模式也提供了灵活性，你只需选择所需的服务，同时也从基础设施的角度提供了可伸缩性和安全性。

#### PaaS 的好处

1. 省去了操作云端基础设施的麻烦。你将其外包给在其云中托管你的应用程序的公司。这令你能专注于应用程序开发工作的各个生命周期。
2. PaaS 是可扩展的。你可以根据需要增加或减少存储需求、附加服务等。
3. 你设置的唯一安全参数是针对你自己的应用程序。云安全是由你的云服务提供商处理的。
4. 对公司和个人来说，把应用程序托管在云端，在时间和成本上都是合算的，特别是那些无法承担基础设施建设成本的创业型公司。

### 基础设施即服务（IaaS）

IaaS 相对于 PaaS 更进一步，给予用户更多的自主权。在 IaaS 模式中，云服务提供商让你对云端的底层基础设施进行操控。简而言之就是你可以根据公司需要自行设计云端环境，从专用服务器和虚拟机，到运行于服务器的操作系统，你还可以设置带宽，创建自己的安全协议，以及创建云基础设施所需的其他项目。亚马逊 AWS 和谷歌计算引擎（GCE）都是使用 IaaS 模式的很好的例子。鉴于此模式还可以实现用户对硬件的自主操控，它也被称为硬件即服务（HaaS）。

#### IaaS 的好处

1. “按需付费”模式中的细粒度灵活性。你可以自行决定运行多少台虚拟机以及使用多少时间。你还可以按小时付费。
2. 以“按需付费”为核心思想，它具有高度的可伸缩性。
3. 完全的自主权，对基础设施中的一切事项的控制，省去了在公司所在地点驻场维护服务器的麻烦。
4. 大多数公司保证正常运行时间、安全性和 24/7 的现场技术支持，这对企业来说非常重要。

### 存储即服务（StaaS）

谷歌云端硬盘、OneDrive、Dropbox 和 iCloud 是 <ruby> 存储即服务 <rt>  Storage as a Service </rt></ruby> 行业内大名鼎鼎的产品。StaaS 就像它听起来那么简单。如果你需要的只是通过任意设备可以实时访问的云端存储空间，StaaS 就是可用的选项之一。很多公司和个人都使用这样的服务来备份自己的数据。

#### StaaS 的好处

1. 借助内置的版本控制系统，实时访问最新数据。
2. 可以使用安装任意操作系统的任何设备访问数据。
3. 随着你创建、编辑和删除文件，实时备份你的数据。
4. 遵循“按需付费”模式，你可以根据需要自行确定存储空间大小。

### 一切即服务（XaaS）

IaaS、PaaS、SaaS 和 StaaS 的混合版，就是所谓的“<ruby> 一切即服务 <rt>  Anything/Everything as a Service </rt></ruby>”模式，它在云计算相关社区内快速引发关注。客户可能有多种多样的需求，这些需求可能是各种不同模式的混合。在这种场景下，应当为用户提供自由选择所需服务的功能，让他们从各种不同的层级选择服务，从而创建自定义的“按需付费”模式。这种方式的好处在于，让用户根据自身需求自由选择相应的云服务。

#### XaaS 的好处

1. 可以选择你喜欢的东西和你喜欢的方式。
2. 只需要为你需要的服务支付费用，而且不需要支付任何基于层级系统的基本费用。
3. 选择你的基础设施、平台和功能的粒度水平。
4. 只要使用得当，无论在时间、成本、效用上，XaaS 都是非常有效的。

### 功能即服务（FaaS）

在某些情况下，公司或个人需要 PaaS，但不是所有的功能都需要。例如，基于触发器的系统，如定时任务，只需要在无服务器系统上运行一段代码或一个函数，就可以实现一个特定的目标。例如某客户需要创建一个网站的流量监测系统，在页面下载量达到一定数量时发送通知。这样的需求简而言之就是在云端运行一段持续检查要执行的触发器的代码。使用 PaaS 的成本较高。此时就是“<ruby> 功能即服务 <rt>  Function as a Service </rt></ruby>”发挥作用的时候了。许多公司，例如 Heroku，向客户提供 FaaS，它只存储一段代码或一个方法，只会在被触发的情况下运行。

#### FaaS 的好处

1. 你只需要支付代码运行的费用。托管代码通常是不收费的，除非计算成本很高。
2. 它不会有使用 PaaS 的那些麻烦，却让你享受所有好处。
3. 无论如何，你都不必关心底层基础设施。因此，你只需要上传代码，而不必关心任何虚拟机维护相关事宜。
4. FaaS 让你的开发更加敏捷，即编写函数式代码。

### 区块链平台即服务（BPaaS）

近年来，区块链席卷了科技行业。它是目前最受欢迎的技术之一，比它更受欢迎的只有人工智能和数据科学相关技术。区块链如此吸引人的原因是它提供了安全、可伸缩和透明的开放式账本架构。这些功能对于许多应用程序都是必要的，例如银行、选举系统，甚至社交媒体也需要这些功能。随着如此广泛的应用，有必要能够在云上托管这样的产品，其模式专门满足这种技术的需求。这就是<ruby> 区块链平台即服务 <rp>  （ </rp> <rt>  Blockchain Platform as a Service </rt> <rp>  ） </rp></ruby>（BPaaS）发挥作用的地方。如今，包括亚马逊 AWS 和微软 Azure 在内的许多公司，都在为专门寻求在云中托管基于区块链的应用程序的客户提供BPaaS解决方案。

#### BPaaS 的好处

1. 它满足了区块链行业的特定需求，例如支持用于编写智能合约的专用语言。
2. 通过提供 API 桥接，支持与区块链（如以太坊）集成。
3. 支持在区块链技术的应用中使用自定义数据库。
4. 云的所有优点它也同样具备，即“按需付费”功能、可扩展性、安全性和访问便捷性。

*（题图：MJ/db8225c1-e970-4bc4-80db-514368955af2）*

---

via: <https://www.opensourceforu.com/2022/09/a-complete-guide-to-cloud-service-architectures/>

作者：[Mir H.S. Quadri](https://www.opensourceforu.com/author/shah-quadri/) 选题：[lkxed](https://github.com/lkxed) 译者：[cool-summer-021](https://github.com/cool-summer-021) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1056 Denuvo 想让你相信它的 DRM 不是“邪恶的”

Summary:
? Denuvo 想让你相信它的 DRM 不是“邪恶的”
? 旧金山的抗议者用交通锥桶使自动驾驶出租车失效
? 去年公共云服务收入突破 5000 亿美元
»
»

支持Denuvo!!!

作为一个开发者，我也不想自己开发的付费软件被破解。知识付费是可持续发展的前提，不然谁补偿我的损失，开发者也是人，也要吃饭。

加密解密必然损耗性能，给数据读取带来延迟。

可是，先有破解技术，然后才有的加密技术，本就是相辅相成。

我支持反盗版，支持诸如iLok等不影响体验的技术。但，我不支持Denuvo。

任何反盗版都不能像Denuvo一样牺牲消费者的体验，否则得不偿失。

假如能有合理精确的游戏盗版统计方法，让正版玩家为纵容盗版而“多付费”他们能接受吗？或者是额外付费购买专用解密算法硬件来专门执行游戏DRM解密呢？

假如主流计算机硬件性能已经强大到可以无视加密算法造成的性能负担，估计Denuvo会是众望所归的主流。

支持Denuvo是因为当下(似乎)没有更好的方案,人家是专业的，是想赚钱的，不傻。

保护的只是正版用户的权益。

这好比iPhone iOS update，更新带来新功能，但也会出现比如耗电增加，卡顿的问题。

在没有更好的方案前，这就是最好的方案。

![](/data/attachment/album/202307/08/213147mhzzo3zee41b8ytp.jpg)

![](/data/attachment/album/202307/08/213156k1p41i6sli14np51.jpg)

### Denuvo 想让你相信它的 DRM 不是“邪恶的”

只要对游戏玩家们提到 “Denuvo” 这个名字，相信就能立即看到他们强烈的反应。关于 Denuvo 的报道下面的评论是大量对他们的 DRM 反盗版技术的抱怨。该公司的电子游戏首席运营官在一次采访中强调，他认为 Denuvo 是整个游戏界的积极力量。他说：“反盗版技术对游戏发行商有利，（但也）对玩家有利，因为它保护了（发行商）的投资，这意味着发行商可以投资于下一个游戏。……无论人们是否愿意相信，我们都是游戏玩家，我们热爱游戏，我们热爱成为游戏的一部分，我们开发技术的目的是为了让这个行业变得更好、更强大。”

>
> **[消息来源：Ars Technica](https://arstechnica.com/gaming/2023/07/denuvo-wants-to-convince-you-its-drm-isnt-evil/)**
>
>
>

>
> 老王点评：我要是说 Denuvo 臭名昭著，不过分吧。
>
>
>

![](/data/attachment/album/202307/08/213207jxzr6egv00mln1gw.jpg)

### 旧金山的抗议者用交通锥桶使自动驾驶出租车失效

在旧金山，一群反对自动驾驶出租车的人发现，他们可以通过在车辆的引擎盖上放置一个交通锥桶来禁用 Cruise 和 Waymo 自动驾驶出租车。该组织称这是一种抗议自动驾驶出租车服务在该市蔓延的形式，它似乎得到了居民的支持，他们对这些车辆的故障和阻塞交通感到厌烦。加州公用事业委员会计划于 7 月中旬批准扩大旧金山的自动驾驶出租车数量。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2023/07/06/robotaxi-haters-in-san-francisco-are-disabling-waymo-cruise-traffic-cones/)**
>
>
>

>
> 老王点评：这些交通锥桶“真正”发挥了阻挡汽车的作用，但是，真能阻挡自动驾驶技术的发展吗？
>
>
>

![](/data/attachment/album/202307/08/213225n21wocpono1gnvwd.jpg)

### 去年公共云服务收入突破 5000 亿美元

IDC 的一份新报告称，去年公共云服务市场的价值跃升了近 23 个百分点，全球收入达到 5458 亿美元。该市场的所有部分去年都有增长，其中软件即服务（SaaS）应用占总收入的 45% 以上。此外，微软去年以16.8% 的总市场份额占据了第一，AWS 以 13.5% 排名第二。

>
> **[消息来源：Silicon Republic](https://www.siliconrepublic.com/enterprise/public-cloud-services-revenue-idc-microsoft)**
>
>
>

>
> 老王点评：今天正好发了一篇云计算的文章，之前的数据是 4450 亿美元。
>
>
>


Nobara 38 发布，提供增强的游戏和内容创作体验

>
> 探索 Nobara 38 版本的新功能，该版本随 Fedora 38 一起发布。
>
>
>

基于 [Fedora 38](https://debugpointnews.com/fedora-38-release/) 的预期版本 Nobara 38 终于发布了，它带来了一系列用户友好的修复和功能增强。Nobara 是 Fedora Linux 的修改版本，旨在解决用户面临的常见问题，并提供开箱即用的顺滑的游戏、流媒体和内容创建体验。凭借一系列附加软件包和自定义功能，Nobara 38 将 Fedora 提升到了新的高度。

Nobara 38 中值得注意的改进之一是为视频调色软件 Davinci Resolve 实施了一个临时方案。当 Davinci Resolve 的安装程序从终端运行时，会提示用户执行一个向导，执行必要的操作以确保顺利运行。这包括将它的 glib2 库移动到一个备份文件夹中，详见官方 Davinci Resolve 论坛。

![Nobara 38 桌面](/data/attachment/album/202307/09/160954ql01lala1isltul7.jpg)

在游戏领域，Nobara 38 引入了 Payday 2 原生 Linux 版本的临时方案。鉴于 OpenGL 实现目前已损坏且对原生版本的官方支持已被放弃，该版本利用 zink 驱动程序来确保无缝游戏。据 GamingOnLinux 报道，这确保了 Linux 用户可以继续使用 Payday 2，不会出现任何问题。

此外，Nobara 38 合并了 Udev 规则来增强控制器支持。具体来说，添加了一条规则，强制对 045e:028e “Xbox 360” 控制器设备使用内核 xpad 驱动程序。这使得 GPD Win Max 2 和 GPD Win 4 等在报告为该设备的控制时，能够保持控制器兼容性，同时仍然允许安装可选的 xone/xpadneo 驱动程序以实现无线适配器，并改进对 Xbox One 控制器的蓝牙支持。

为了优化不同设备类型的性能，Nobara 38 引入了特定的 I/O 调度程序。NVMe 设备将使用 “none”，SSD 将使用 “mq-deadline”，HDD/机械驱动器将使用 “bfq”。这些规则可确保每种设备类型以其最佳效率运行。

在桌面环境方面，Nobara 38 默认提供自定义主题的 GNOME 桌面，但用户也可以选择标准 GNOME 和 KDE 版本。这种灵活性允许用户根据自己的喜好个性化他们的计算体验。

Nobara 38 还对几个关键组件进行了更新。值得注意的是，GNOME 44 融入了基于 Mutter 44 更新和重新构建的可变刷新率（VRR）补丁，提供了更流畅的视觉体验。GStreamer 1.22 已修补了 AV1 支持，可实现更好的多媒体播放，并且 OBS-VAAPI 和 AMF AV1 支持也已启用，尽管后者需要 AMD 的专业编码器。

Mesa 图形库基于 LLVM 15 构建，而不是 Fedora 当前的 LLVM 16，以避免与 Team Fortress 2 的兼容性问题。此外，Mesa 还进行了修补以启用 VAAPI AV1 编码支持，从而增强了视频编码功能。

Nobara Package Manager（现在称为 yumex）在 Nobara 38 中得到了重大改进。它现在拥有管理 Flatpak 的能力，为用户提供了更全面的软件管理解决方案。此外，软件包更新也得到了简化，引入了“更新系统”按钮，方便系统更新。

Blender 是流行的开源 3D 创建套件，已在 Nobara 38 中进行了修补，以使用 `WAYLAND_DISPLAY=""` 环境变量启动。这解决了菜单在 Wayland 下渲染不正确并妨碍可用性的问题，确保用户获得流畅的 Blender 体验。

Nautilus 是 GNOME 中的默认文件管理器，现在允许用户直接从右键菜单中以管理员身份执行文件和打开文件夹。此功能提供了一种执行管理任务的便捷方法，无需执行其他步骤。

在 Flatpak 方面，Nobara 38 删除了 Fedora Flatpak 仓库，因为它们基本上未使用。建议升级到 Nobara 38 的用户删除从 Fedora 仓库安装的所有 Flatpak，然后从 Flathub 仓库重新安装它们。Flathub flatpak 仓库现在是 Nobara 38 中的默认仓库，为系统和用户安装提供了更广泛的应用选择。此外，还实施了一种临时方案来解决最近与用户更新相关的崩溃问题。

为了增强整体用户体验，Nobara 欢迎应用现在将 Davinci Resolve 向导作为可选步骤提供。这简化了 Davinci Resolve 的设置过程，并确保用户可以轻松地将软件集成到他们的工作流程中。

除了这些显著的变化之外，Nobara 38 还包括 Fedora 38 中存在的所有其他软件包更新和改进。

要下载 Nobara 38 并探索其新功能，请访问 Nobara Project 官方网站。

>
> **[下载 Nobara 38 – KDE](https://nobara-images.nobaraproject.org/Nobara-38-KDE-2023-06-25.iso)**
>
>
>

>
> **[下载 Nobara 38 – GNOME](https://nobara-images.nobaraproject.org/Nobara-38-GNOME-2023-06-25.iso)**
>
>
>

参考自官方 [通告](https://nobaraproject.org/2023/06/25/june-25-2023/)。

---

via: <https://debugpointnews.com/nobara-38/>

作者：[arindam](https://debugpointnews.com/author/dpicubegmail-com/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


最佳开源电子邮件服务器

Summary: 这是一份可以用于发送/接收电子邮件并存储邮件的开源邮件服务器列表。

这是一份可以用于发送/接收电子邮件并存储邮件的开源邮件服务器列表。

![](/data/attachment/album/202307/09/191748lhcbs9syshhdszbg.jpg)

>
> 这是一份可以用于发送/接收电子邮件并存储邮件的开源邮件服务器列表。
>
>
>

无论你使用何种 [电子邮件客户端](https://itsfoss.com/best-email-clients-linux/)，使用像 Gmail、Proton Mail 和 Outlook 这样的电子邮件服务非常方便。

为了实现这一切，你利用的是它们的邮件服务器进行电子邮件传输。因此，你的电子邮件的安全性、可靠性和隐私性取决于他人。

但是，如果你希望拥有自己的电子邮件基础设施并控制数据，那么你需要一个开源电子邮件服务器来解决这个问题。

让我解释得更清楚一些，电子邮件服务器可以让你：

* 构建自己的邮件后端以存储电子邮件帐户
* 通过自托管来掌控安全性和可靠性
* 在你首选的服务器架构上进行托管
* 让你能够创建无限数量的帐户

当然，这些并不适用于终端用户。中小型企业的系统管理员和自托管者才能用得上这些软件。

考虑到你现在对开源电子邮件服务器的好处有了一定了解，下面是一些你可以找到的最佳选项：

>
> ? 这个列表包括邮件服务器和一些能够构建/创建邮件服务器的解决方案。其中一些可能提供托管服务，而另一些可以进行自托管。
>
>
>

### 1、Postal

[Postal](https://github.com/postalserver/postal) 是一个功能丰富的邮件服务器，可供网站和服务器使用。它专为**出站邮件**而设计，没有邮箱管理功能。（LCTT 译注：出站邮件指外发邮件，入站邮件指接收邮件供邮件客户端收取。）

它的 [文档](https://docs.postalserver.io/) 对于入门非常有帮助。你可以使用 Docker 在服务器上配置 Postal。

使用 Postal，你可以为多个组织创建邮件服务器/用户，访问出站/入站消息队列，实时的递交信息，并使用内置功能确保电子邮件能够传递。

主要亮点：

* 实时的递交信息
* 点击和打开追踪
* 专为出站邮件设计

>
> ? 维护和配置你的电子邮件服务器并非易事。只有在全面了解可靠地发送/接收电子邮件所需的一切情况下，才应继续设置邮件服务器。
>
>
>

### 2、mailcow

![mailcow 用户界面](/data/attachment/album/202307/09/191831t61hohoyvz60hhyd.jpg)

[mailcow](https://mailcow.email/) 是一个邮件服务器套件，其中包含帮助你构建 Web 服务器、管理邮箱等工具。

如果你不打算发送交易性电子邮件，mailcow 可以助你一臂之力。你可以将其视为一个团队协作工具。

（LCTT 译注：交易性电子邮件是指促进商业交易或关系的电子邮件，或提供关于正在进行的商业交易的最新信息。常见的例子包括： 订单确认、通知电子邮件等，例如，运输确认和更新，或订单退款。）

与其他邮件服务器一样，它与 Docker 搭配使用，每个容器是一个应用程序，它们之间相互连接。

mailcow 的 Web 用户界面可让你在一个地方完成所有操作。你可以在其 [GitHub 页面](https://github.com/mailcow/mailcow-dockerized) 或 [文档](https://docs.mailcow.email/) 中了解更多关于该项目的信息。

主要亮点：

* 易于管理和更新
* 可提供经济实惠的付费支持
* 如果需要，可以与其他邮件服务器配合使用

### 3、Cuttlefish

![Cuttlefish](/data/attachment/album/202307/09/191832r14matfztttvmezy.png)

想要一个简单的交易性邮件服务器吗？[Cuttlefish](https://cuttlefish.io/) 是一个简单易用的开源邮件服务器。

你可以通过简单的 Web 用户界面查看统计数据，监控出站邮件。

与一些完整的电子邮件服务（如 SendGrid 或 Mailgun）相比，Cuttlefish 在功能方面可能没有那么全面，**它目前仍处于测试阶段（beta）**。如果你需要超级简单且可靠的解决方案，可以选择它。

在其 [GitHub 页面](https://github.com/mlandauer/cuttlefish) 上了解更多信息。

主要亮点：

* 简单的交易性邮件服务器
* 简单易用

### 4、Apache James

![Apache James](/data/attachment/album/202307/09/191832thuz9ys65xy9uu64.jpg)

[James](https://james.apache.org/) 是 “Java Apache Mail Enterprise Server” 的缩写。

顾名思义，James 是一个使用 Java 构建的面向企业的开源邮件服务器。根据需求，你可以将该邮件服务器用作 SMTP 中继或 IMAP 服务器。

与其他邮件服务器相比，James 可能不是最容易配置或安装的。但是，你可以查看其 [文档](https://james.apache.org/server/install.html) 或 [GitHub 页面](https://github.com/apache/james-project) 来自行评判。

主要亮点：

* 配置完成后易于管理
* 可靠，并被开源企业使用
* 分布式服务器

### 5、Haraka

[Haraka](https://haraka.github.io/) 是一个使用 Node.js 构建的现代开源 SMTP 服务器。如果你可以为你的业务/网站构建它，你就不需要寻找其他 [SMTP 服务](https://linuxhandbook.com/smtp-services/)。

这个邮件服务器专为提供最佳性能而设计。Haraka 的一个亮点是，它具有模块化插件系统，允许程序员根据需要更改服务器的行为。

你可以将其视为一款出色的可扩展的出站邮件递交服务器。一些知名的网站如 Craigslist 和 DuckDuckGo Email Protection 就使用了 Haraka。

在其 [GitHub 页面](https://github.com/haraka/Haraka) 上可以了解更多信息。

主要亮点：

* 使用 Node.js 构建
* 插件系统以扩展功能

### 6、Modoboa

![](/data/attachment/album/202307/09/191832t804w000mssw2nh0.jpg)

[Modoboa](https://modoboa.org/en/) 是一个多合一的开源解决方案。

它可以帮助你构建邮件服务器，并为你管理电子邮件帐户。你可以创建日历，无限制添加域名，创建过滤规则和访问 Webmail。如果你希望获得专业帮助来设置和管理系统，Modoboa 还提供付费维护选项。

除了是一个多功能解决方案外，它还提供了一种快速入门的方式来构建你的电子邮件基础架构。

主要亮点：

* 全能选项
* 提供付费帮助
* 内置监控功能

### 7、Postfix

Postfix 是一种 <ruby> 邮件传输代理 <rt>  Mail Transfer Agent </rt></ruby>（MTA）。它本身可能不是一个独立的服务器，但它可以与其他一些解决方案配合使用来构建电子邮件服务器。

虽然 mailcow 包含了 [Postfix](https://www.postfix.org/)（你可以将其配置与类似的解决方案一起使用），但你也可以根据你的使用情况选择单独使用它。在 Ubuntu 服务器中，Postfix 也是默认的邮件传输代理。

Postfix 可以用作外部 SMTP。不要忘记，你还可以设置 Postfix 与 Gmail [配合使用](https://www.linode.com/docs/guides/configure-postfix-to-send-mail-using-gmail-and-google-workspace-on-debian-or-ubuntu/)。Postfix 容易配置，并且其文档对于使用它非常有用。

主要亮点：

* 易于配置
* 灵活

### 8、Maddy

[Maddy](https://maddy.email/) 是一个轻量级邮件服务器实现的不错选择。官方描述称它是一款“*可组合的一体化邮件服务器*”。

与 mailcow 相比较，你会发现 Maddy 提供了一些与 mailcow 相同的功能，也就是说它不仅仅局限于出站邮件等功能。

Maddy 在使用场景上非常受欢迎，它可以用单一实现替代多个选项，如 Postfix。你可以通过 SMTP 和 IMAP 使用 Maddy 进行发送、接收和存储消息。文章撰写时，存储功能仍处于测试阶段（beta）。

主要亮点：

* 轻量级
* 替代多种用例，比如 Postfix 等选项
* 不依赖 Docker

### 9、Dovecot

[Dovecot](https://www.dovecot.org/) 是一个开源的 IMAP 服务器，作为 <ruby> 邮件传递代理 <rt>  Mail Delivery Agent </rt></ruby>（MDA）发挥作用。它可以与 Postfix 一起工作，因为它们执行不同的任务。

与其他解决方案相比，Dovecot 提供了易于管理、可靠的电子邮件发送功能和自我修复能力。

对于大型基础设施，Dovecot 提供了专业支持的高级方案。

主要亮点：

* 易于管理
* 自我修复能力
* 专注于性能

### 10、[Poste.io](http://Poste.io)

![Poste.io 邮件服务器](/data/attachment/album/202307/09/191833pkcc16z122qzkb40.png)

[Poste.io](https://poste.io/) 使用了邮件服务器解决方案，如 Haraku、Dovecot 和其他开源组件。从垃圾邮件过滤工具到防病毒引擎，应有尽有。

如果你想使用其中一些组件设置一个开源邮件服务器，并能够轻松管理和保护系统，[Poste.io](http://Poste.io) 是一个很好的选择。

主要亮点：

* 使用多个开源邮件服务器组件进行易管理和构建
* 管理面板界面

### 11、iRedMail

[iRedMail](https://www.iredmail.org/) 类似于 mailcow，它帮助你使用各种开源组件构建邮件服务器。你还可以使用创建的邮件服务器管理你的日历。

尽管你可以自行设置，但如果需要，它也提供付费的专业支持。

你将获得一个 Web 面板，在支持的 Linux 发行版上进行托管，并能够创建无限数量的账户。

主要亮点：

* 简单易用
* Web 面板进行易管理

### 12、Mailu

![Mailu 邮件服务器](/data/attachment/album/202307/09/191833zldfwc22dyfc3hkq.png)

[Mailu](https://mailu.io/2.0/) 是一个基于 Docker 的邮件服务器，可以为你提供最好的服务，同时限制了一些功能。

这并不意味着它不好；Mailu 的目标是专注于必要功能，而不添加对大多数人无用的许多功能。即便如此，它仍然通过添加 ARM 支持、Kubernetes 支持和其他一些功能而脱颖而出。

你将获得一个标准的邮件服务器、高级电子邮件功能、Web 管理界面和注重隐私的功能。

主要亮点：

* 简单的界面
* 关注于功能而不是花俏的解决方案
* ARM 支持

### 准备构建和管理你的邮件服务器了吗？

使用开源工具和邮件服务器，你可以掌握你的数据，并为你的业务或网站管理/优化电子邮件通信。

正如我所提到的，这需要很多工作。因此，如果你希望拥有定制化的体验并且有一个可以负责的团队，那么开源自托管的邮件服务器是可行的选择。

? 当然，还有很多其他选项可供选择，比如 [mail in a box](https://mailinabox.email/)，可以帮助你快速部署邮件服务器。

在这里，我们尝试为你挑选最佳选择以供参考。你最喜欢的开源邮件服务器是什么？

*（题图：MJ/f85c5c41-a598-4382-8821-73c701fc842b）*

---

via: <https://itsfoss.com/open-source-email-servers/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1057 谷歌再次重申“量子霸权”，声称制造了 70 个量子比特的量子超级计算

Summary:
? 谷歌再次重申“量子霸权”，声称制造了 70 个量子比特的量子超级计算机
? Linux 内核发现特权提升重大漏洞 StackRot
? Reddit 对使用 NSFW 抗议策略的子区发出最后通牒
»
»

![](/data/attachment/album/202307/09/205802z9lwnonmzxpioo4p.jpg)

![](/data/attachment/album/202307/09/205143sgh7l60hfz7k8h00.jpg)

### 谷歌再次重申“量子霸权”，声称制造了 70 个量子比特的量子超级计算机

“量子霸权” 是指量子计算机超越现有机器的一个里程碑点。四年前，谷歌制造了有 53 个量子比特的量子计算机，声称自己是第一家实现 “量子霸权” 的公司。据谷歌最新发表的论文，其新的量子计算机有 70 个量子比特，增加更多的量子比特可以成倍地提高量子计算机的功率，这意味着新机器比 2019 年的机器强大 2.41 亿倍！这台量子计算机可以瞬间完成目前最好的超级计算机 Frontier 需要 47 年才能完成的计算。研究人员还声称，他们最新的量子计算机比被视为该领域领导者的中国实验室演示的量子计算机更加强大。

>
> **[消息来源：telegraph](https://www.telegraph.co.uk/business/2023/07/02/google-quantum-computer-breakthrough-instant-calculations/)**
>
>
>

>
> 老王点评：想想都非常可怕，如果量子计算机能投入实用，几乎可以颠覆整个信息世界。
>
>
>

![](/data/attachment/album/202307/09/205156j8lt3hq9gbel9ljj.jpg)

### Linux 内核发现特权提升重大漏洞 StackRot

该漏洞被称为 “StackRot”，CVSS 评分为 7.8，影响 Linux 6.1 至 6.4 版本，可以使用户在目标主机上获得提升的权限。迄今为止，没有证据表明该漏洞已经在野外被利用。StackRot 漏洞出现在内存管理子系统中，它几乎影响到所有的内核配置，只需要最小的<ruby> 权能 <rt>  capability </rt></ruby>即可触发。在 6 月 15 日负责任的披露之后，经过 Linux 内核团队两周努力，截至 2023 年 7 月 1日，它已经在新的内核版本中得到解决。

>
> **[消息来源：The Hacker News](https://thehackernews.com/2023/07/researchers-uncover-new-linux-kernel.html)**
>
>
>

>
> 老王点评：无论如何，打补丁升级就是了。不过一般生产服务器都应该还没升级到 6.x 呢吧。
>
>
>

![](/data/attachment/album/202307/09/205216qwgghgi2kecf6iaz.jpg)

### Reddit 对使用 NSFW 抗议策略的子区发出最后通牒

始于上个月中旬的 Reddit 子区 [抗议](/article-15895-1.html)，到现在仍有两千多个子区闭版。为了杜绝任何剩余的抗议活动，Reddit 正在向那些决定允许 NSFW（非工作安全）内容作为破坏公司广告业务的方式的子区发出“最后通牒”。Reddit 称，“这是对你的社区不准确的 NSFW 标签的最后通牒，这违反了《版主行为守则》第 2 条。你的子区历来不被认为是 NSFW，在我们目前的政策下也不属于。”如果不取消该标签，将导致参与这一活动的子区管理员们将被从管理团队中删除。

>
> **[消息来源：PC Mag](https://www.pcmag.com/news/reddit-gives-final-warning-to-subreddits-using-nsfw-protest-tactic)**
>
>
>

>
> 老王点评：在 Reddit 看来，这些不听话的管理员们就是既得利益的“地主阶级”，需要剔除才行。
>
>
>


在不到 30 分钟内构建一个树莓派监控仪表盘

![](/data/attachment/album/202307/10/102705vfe3pb0wbqnf0see.jpg)

>
> 使用 Python 制作一个 API 来监控你的树莓派硬件，并使用 Appsmith 建立一个仪表盘。
>
>
>

如果你想知道你的树莓派的性能如何，那么你可能需要一个树莓派的仪表盘。在本文中，我将演示如何快速构建一个按需监控仪表盘，以实时查看你的树莓派的 CPU 性能、内存和磁盘使用情况，并根据需要随时添加更多视图和操作。

如果你已经使用 Appsmith，你还可以直接导入 [示例应用程序](https://github.com/appsmithorg/foundry/tree/main/resources/blogs/Raspberry%20Pi%20Dashboard) 并开始使用。

### Appsmith

Appsmith 是一个开源的 [低代码](https://www.redhat.com/architect/low-code-platform?intcmp=7013a000002qLH8AAM) 应用构建工具，帮助开发人员轻松快速地构建内部应用，如仪表盘和管理面板。它是一个用于仪表盘的很好选择，并减少了传统编码方法所需的时间和复杂性。

在此示例的仪表盘中，我显示以下统计信息：

* CPU
	+ 占用百分比
	+ 频率或时钟速度
	+ 计数
	+ 温度
* 内存
	+ 占用百分比
	+ 可用内存百分比
	+ 总内存
	+ 空闲内存
* 磁盘
	+ 磁盘使用百分比
	+ 绝对磁盘空间使用量
	+ 可用磁盘空间
	+ 总磁盘空间

### 创建一个端点

你需要一种从树莓派获取这些数据并传递给 Appsmith 的方法。[psutil](https://psutil.readthedocs.io/en/latest/) 是一个用于监控和分析的 Python 库，而 [Flask-RESTful](https://flask-restful.readthedocs.io/en/latest/) 是一个创建 [REST API](https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM) 的 Flask 扩展。

Appsmith 每隔几秒钟调用 REST API 以自动刷新数据，并以 JSON 对象作为响应，其中包含所有所需的统计信息，如下所示：

```
{ "cpu_count": 4,
"cpu_freq": [
600.0,
600.0,
1200.0 ],
"cpu_mem_avail": 463953920,
"cpu_mem_free": 115789824,
"cpu_mem_total": 971063296,
"cpu_mem_used": 436252672,
"cpu_percent": 1.8,
"disk_usage_free": 24678121472,
"disk_usage_percent": 17.7,
"disk_usage_total": 31307206656,
"disk_usage_used": 5292728320,
"sensor_temperatures": 52.616 }

```

#### 1、设置 REST API

如果你的树莓派尚未安装 Python，请在树莓派上打开终端并运行此安装命令：

```
$ sudo apt install python3

```

现在为你的开发设置一个 [Python 虚拟环境](https://opensource.com/article/20/10/venv-python)：

```
$ python -m venv PiData

```

接下来，激活该环境。你必须在重新启动树莓派后执行此操作。

```
$ source PiData/bin/activate
$ cd PiData

```

为了安装 Flask、Flask-RESTful 和以后需要的依赖项，请在你的 Python 虚拟环境中创建一个名为 `requirements.txt` 的文件，并将以下内容添加到其中：

```
flask
flask-restful
gunicorn

```

保存文件，然后使用 `pip` 一次性安装它们。你必须在重新启动树莓派后执行此操作。

```
(PyData)$ python -m pip install -r requirements.txt

```

接下来，创建一个名为 `pi_stats.py` 的文件来存放使用 `psutil` 检索树莓派系统统计信息的逻辑。将以下代码粘贴到 `pi_stats.py` 文件中：

```
from flask import Flask
from flask_restful import Resource, Api
import psutil
app = Flask(__name__)

api = Api(app)
class PiData(Resource):
    def get(self):
        return "RPI Stat dashboard"

api.add_resource(PiData, '/get-stats')

if __name__ == '__main__':
    app.run(debug=True)

```

这段代码的作用如下：

* 使用 `app = Flask(name)` 来定义嵌套 API 对象的应用程序。
* 使用 Flask-RESTful 的 [API 方法](https://flask-restful.readthedocs.io/en/latest/api.html#id1) 来定义 API 对象。
* 在 Flask-RESTful 中将 `PiData` 定义为具体的 [Resource 类](https://flask-restful.readthedocs.io/en/latest/api.html#flask_restful.Resource) ，以公开每个支持的 HTTP 方法。
* 使用 `api.add_resource(PiData, '/get-stats')` 将资源 `PiData` 附加到 API 对象 `api`。
* 每当你访问 URL `/get-stats` 时，将返回 `PiData` 作为响应。

#### 2、使用 psutil 读取统计信息

要从你的树莓派获取统计信息，你可以使用 `psutil` 提供的这些内置函数：

* `cpu_percentage`、`cpu_count`、`cpu_freq` 和 `sensors_temperatures` 函数分别用于获取 CPU 的占用百分比、计数、时钟速度和温度。`sensors_temperatures` 报告了与树莓派连接的所有设备的温度。要仅获取 CPU 的温度，请使用键 `cpu-thermal`。
* `virtual_memory` 函数可返回总内存、可用内存、已使用内存和空闲内存的统计信息（以字节为单位）。
* `disk_usage` 函数可返回总磁盘空间、已使用空间和可用空间的统计信息（以字节为单位）。

将所有函数组合到一个 Python 字典中的示例如下：

```
system_info_data = {
'cpu_percent': psutil.cpu_percent(1),
'cpu_count': psutil.cpu_count(),
'cpu_freq': psutil.cpu_freq(),
'cpu_mem_total': memory.total,
'cpu_mem_avail': memory.available,
'cpu_mem_used': memory.used,
'cpu_mem_free': memory.free,
'disk_usage_total': disk.total,
'disk_usage_used': disk.used,
'disk_usage_free': disk.free,
'disk_usage_percent': disk.percent,
'sensor_temperatures': psutil.sensors_temperatures()['cpu-thermal'][0].current,
}

```

下一节将使用该字典。

#### 3、从 Flask-RESTful API 获取数据

为了在 API 响应中看到来自树莓派的数据，请更新 `pi_stats.py` 文件，将字典 `system_info_data` 包含在 `PiData` 类中：

```
from flask import Flask
from flask_restful import Resource, Api
import psutil
app = Flask(__name__)
api = Api(app)

class PiData(Resource):
    def get(self):
        memory = psutil.virtual_memory()
        disk = psutil.disk_usage('/')
        system_info_data = {
            'cpu_percent': psutil.cpu_percent(1),
            'cpu_count': psutil.cpu_count(),
            'cpu_freq': psutil.cpu_freq(),
            'cpu_mem_total': memory.total,
            'cpu_mem_avail': memory.available,
            'cpu_mem_used': memory.used,
            'cpu_mem_free': memory.free,
            'disk_usage_total': disk.total,
            'disk_usage_used': disk.used,
            'disk_usage_free': disk.free,
            'disk_usage_percent': disk.percent,
            'sensor_temperatures': psutil.sensors_temperatures()['cpu-thermal'][0].current, }

    return system_info_data

api.add_resource(PiData, '/get-stats')

if __name__ == '__main__':
    app.run(debug=True)

```

你的脚本已经就绪，下面运行 `PiData.py`：

```
$ python PyData.py
 * Serving Flask app "PiData" (lazy loading)
 * Environment: production
 WARNING: This is a development server. Do not run this in a production environment.

 * Debug mode: on
 * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!

```

你有了一个可以工作的 API。

#### 4、将 API 提供给互联网

你可以在本地网络中与 API 进行交互。然而，要在互联网上访问它，你必须在防火墙中打开一个端口，并将传入的流量转发到由 Flask 提供的端口。然而，正如你的测试输出建议的那样，在 Flask 中运行 Flask 应用程序仅适用于开发，而不适用于生产。为了安全地将 API 提供给互联网，你可以使用安装过程中安装的 `gunicorn` 生产服务器。

现在，你可以启动 Flask API。每次重新启动树莓派时都需要执行此操作。

```
$ gunicorn -w 4 'PyData:app'
Serving on http://0.0.0.0:8000

```

要从外部世界访问你的树莓派，请在网络防火墙中打开一个端口，并将流量定向到你树莓派的 IP 地址，端口为 8000。

首先，获取树莓派的内部 IP 地址：

```
$ ip addr show | grep inet

```

内部 IP 地址通常以 10 或 192 或 172 开头。

接下来，你必须配置防火墙。通常，你从互联网服务提供商（ISP）获取的路由器中嵌入了防火墙。通常，你可以通过网络浏览器访问家用路由器。路由器的地址有时会打印在路由器的底部，它以 192.168 或 10 开头。不过，每个设备都不同，因此我无法告诉你需要点击哪些选项来调整设置。关于如何配置防火墙的完整描述，请阅读 Seth Kenlon 的文章 《[打开端口并通过你的防火墙路由流量](https://opensource.com/article/20/9/firewall)》。

或者，你可以使用 [localtunnel](https://theboroer.github.io/localtunnel-www/) 来使用动态端口转发服务。

一旦你的流量到达树莓派，你就可以查询你的 API：

```
$ curl https://example.com/get-stats
{
   "cpu_count": 4,
   "cpu_freq": [
      600.0,
      600.0,
      1200.0 ],
   "cpu_mem_avail": 386273280,
   ...

```

如果你已经执行到这一步，那么最困难的部分已经过去了。

#### 5、重复步骤

如果你重新启动了树莓派，你必须按照以下步骤进行操作：

* 使用 `source` 重新激活 Python 环境
* 使用 `pip` 刷新应用程序的依赖项
* 使用 `gunicorn` 启动 Flask 应用程序

你的防火墙设置是持久的，但如果你使用了 localtunnel，则必须在重新启动后启动新的隧道。

如果你愿意，可以自动化这些任务，但那是另一个教程的内容。本教程的最后一部分是在 Appsmith 上构建一个用户界面，使用拖放式小部件和一些 JavaScript，将你的树莓派数据绑定到用户界面。相信我，从现在开始很容易！

### 在 Appsmith 上构建仪表盘

![硬件监控仪表盘](/data/attachment/album/202307/10/102926j2mkk9aak9n92rxk.png)

要制作一个像这样的仪表盘，你需要将公开的 API 端点连接到 Appsmith，使用 Appsmith 的小部件库构建用户界面，并将 API 的响应绑定到小部件上。如果你已经使用 Appsmith，你可以直接导入 [示例应用程序](https://github.com/appsmithorg/foundry/tree/main/resources/blogs/Raspberry%20Pi%20Dashboard) 并开始使用。

如果你还没有，请 [注册](https://appsmith.com/sign-up) 一个免费的 Appsmith 帐户。或者，你可以选择 [自托管 Appsmith](https://docs.appsmith.com/getting-started/setup)。

### 将 API 作为 Appsmith 数据源连接

登录到你的 Appsmith 帐户。

* 在左侧导航栏中找到并点击 “<ruby> 查询或 JS <rt>  QUERIES/JS </rt></ruby>” 旁边的 “+” 按钮。
* 点击 “<ruby> 创建一个空白 API <rt>  Create a blank API </rt></ruby>”。
* 在页面顶部，将你的项目命名为 “PiData”。
* 获取你的 API 的 URL。如果你使用的是 localtunnel，则是一个 `localtunnel.me` 地址，总是在末尾添加 `/get-stats` 以获取统计数据。将其粘贴到页面的第一个空白字段中，然后点击 “RUN” 按钮。

确保在 “<ruby> 响应 <rt>  Response </rt></ruby>” 面板中看到成功的响应。

![Appsmith 界面](/data/attachment/album/202307/10/103200q8rrrn082ar0rrwr.jpg)

### 构建用户界面

Appsmith 的界面非常直观，但如果你感到迷失，我建议你查看 [在 Appsmith 上构建你的第一个应用程序](https://docs.appsmith.com/getting-started/start-building) 教程。

对于标题，将 “<ruby> 文本 <rt>  Text </rt></ruby>”、“<ruby> 图像 <rt>  Image </rt></ruby>” 和 “<ruby> 分隔线 <rt>  Divider </rt></ruby>” 小部件拖放到画布上。将它们排列如下：

![设置项目标题](/data/attachment/album/202307/10/103210gz1ksff34zn66n11.jpg)

“<ruby> 文本 <rt>  Text </rt></ruby>” 小部件包含你页面的实际标题。键入比“Raspberry Pi Stats”更酷的内容。

“<ruby> 图像 <rt>  Image </rt></ruby>” 小部件用于展示仪表盘的独特标志。你可以使用你喜欢的任何标志。

使用 “<ruby> 开关 <rt>  Switch </rt></ruby>” 小部件来切换实时数据模式。在 “<ruby> 属性 <rt>  Property </rt></ruby>” 面板中进行配置，以从你构建的 API 获取数据。

对于主体部分，使用来自左侧的小部件库的以下小部件创建一个 CPU 统计信息区域，使用以下小部件：

* <ruby> 进度条 <rt>  Progress Bar </rt></ruby>
* <ruby> 统计框 <rt>  Stat Box </rt></ruby>
* <ruby> 图表 <rt>  Chart </rt></ruby>

对于内存和磁盘统计信息部分，重复相同的步骤。磁盘统计信息部分不需要图表，但如果你能找到用途，那也可以使用它。

你的最终小部件布局应该类似于以下：

![Appsmith 中的属性设置](/data/attachment/album/202307/10/103222zc4h4yb8h4fog2wx.jpg)

最后一步是将 API 的数据绑定到你的小部件上。

### 将数据绑定到小部件上

返回到画布，并在三个类别的部分中找到你的小部件。首先设置 CPU 统计信息。

要将数据绑定到 “<ruby> 进度条 <rt>  Progress Bar </rt></ruby>” 小部件：

* 单击 “<ruby> 进度条 <rt>  Progress Bar </rt></ruby>” 小部件，以打开右侧的 “<ruby> 属性 <rt>  Property </rt></ruby>” 面板。
* 查找 “<ruby> 进度 <rt>  Progress </rt></ruby>” 属性。
* 单击 “JS” 按钮以激活 JavaScript。
* 在 “<ruby> 进度 <rt>  Progress </rt></ruby>” 字段中粘贴 `{{PiData.data.cpu_percent ?? 0}}`。此代码引用了你的 API 的数据流，名为 `PiData`。Appsmith 将响应数据缓存在 `PiData` 的 `.data` 运算符内。键 `cpu_percent` 包含了 Appsmith 用来显示 CPU 利用率百分比的数据。
* 在 “<ruby> 进度条 <rt>  Progress Bar </rt></ruby>” 小部件下方添加一个 “<ruby> 文本 <rt>  Text </rt></ruby>” 小部件作为标签。

![在配置屏幕中绑定数据](/data/attachment/album/202307/10/103234kbryjjgjsk060bkb.jpg)

在 CPU 部分有三个 “<ruby> 统计框 <rt>  Stat Box </rt></ruby>” 小部件。将数据绑定到每个小部件的步骤与绑定 “<ruby> 进度条 <rt>  Progress Bar </rt></ruby>” 小部件的步骤完全相同，只是你需要从 `.data` 运算符中绑定不同的数据属性。按照相同的步骤进行操作，但有以下例外：

* 使用 `{{${PiData.data.cpu_freq[0]} ?? 0 }}` 来显示时钟速度。
* 使用 `{{${PiData.data.cpu_count} ?? 0 }}` 来显示 CPU 计数。
* 使用 `{{${(PiData.data.sensor_temperatures).toPrecision(3)} ?? 0 }}` 来显示 CPU 温度数据。

如果一切顺利，你将得到一个漂亮的仪表盘，如下所示：

![树莓派的仪表盘](/data/attachment/album/202307/10/103242jiiam03mki3i0r60.jpg)

### CPU 利用率趋势图

你可以使用 “<ruby> 图表 <rt>  Chart </rt></ruby>” 小部件将 CPU 利用率显示为趋势线，并使其随时间自动更新。

首先，单击小部件，在右侧找到 “<ruby> 图表类型 <rt>  Chart Type </rt></ruby>” 属性，并将其更改为 “<ruby> 折线图 <rt>  LINE CHART </rt></ruby>”。为了显示趋势线，需要将 `cpu_percent` 存储在数据点数组中。你的 API 目前将其作为单个时间数据点返回，因此可以使用 Appsmith 的 `storeValue` 函数（Appsmith 内置的 `setItem` 方法的一个原生实现）来获取一个数组。

在 “<ruby> 查询或 JS <rt>  QUERIES/JS </rt></ruby>” 旁边单击 “+” 按钮，并将其命名为 “utils”。

将以下 JavaScript 代码粘贴到 “<ruby> 代码 <rt>  Code </rt></ruby>” 字段中：

```
export default {
  getLiveData: () => {
  //When switch is on:
    if (Switch1.isSwitchedOn) {
      setInterval(() => {
        let utilData = appsmith.store.cpu_util_data;

        PiData.run()
          storeValue("cpu_util_data", [...utilData, {
            x: PiData.data.cpu_percent,
            y: PiData.data.cpu_percent
          }]);
        }, 1500, 'timerId')
      } else {
    clearInterval('timerId');
  }
},
initialOnPageLoad: () => {
  storeValue("cpu_util_data", []);
  }
}

```

为了初始化 `Store`，你在 `initialOnPageLoad` 对象中创建了一个 JavaScript 函数，并将 `storeValue` 函数放在其中。

你使用 `storeValue("cpu_util_data", []);` 将 `cpu_util_data` 中的值存储到 `storeValue` 函数中。此函数在页面加载时运行。

到目前为止，每次刷新页面时，代码都会将 `cpu_util_data` 中的一个数据点存储到 `Store` 中。为了存储一个数组，你使用了 `x` 和 `y` 的下标变量，两者都存储了来自 `cpu_percent` 数据属性的值。

你还希望通过设定存储值之间的固定时间间隔来自动存储这些数据。当执行 [setInterval](https://docs.appsmith.com/reference/appsmith-framework/widget-actions/intervals-time-events#setinterval) 函数时：

* 获取存储在 `cpu_util_data` 中的值。
* 调用 API `PiData`。
* 使用返回的最新 `cpu_percent` 数据将 `cpu_util_data` 更新为 `x` 和 `y` 变量。
* 将 `cpu_util_data` 的值存储在键 `utilData` 中。
* 仅当设置为自动执行函数时，才重复执行步骤 1 到 4。你使用 Switch 小部件将其设置为自动执行，这就解释了为什么有一个 `getLiveData` 父函数。

在 “<ruby> 设置 <rt>  Settings </rt></ruby>” 选项卡中，找到对象中的所有父函数，并在 “<ruby> 页面加载时运行 <rt>  RUN ON PAGE LOAD </rt></ruby>” 选项中将 `initialOnPageLoad` 设置为 “Yes（是）”。

![设置页面加载时要执行的函数](/data/attachment/album/202307/10/103253apiwjbjbiu6fj3wp.jpg)

现在刷新页面进行确认。

返回到画布。单击 “<ruby> 图表 <rt>  Chart </rt></ruby>” 小部件，并找到 “<ruby> 图表数据 <rt>  Chart Data </rt></ruby>” 属性。将绑定 `{{ appsmith.store.disk_util_data }}` 粘贴到其中。这样，如果你自己多次运行对象 `utils`，就可以获得图表数据。要自动运行此操作：

* 查找并单击仪表盘标题中的 “<ruby> 实时数据开关 <rt>  Live Data Switch </rt></ruby>” 小部件。
* 查找 `onChange` 事件。
* 将其绑定到 `{{ utils.getLiveData() }}`。JavaScript 对象是 `utils`，而 `getLiveData` 是在你切换开关时激活的函数，它会从你的树莓派获取实时数据。但是还有其他实时数据，因此同一开关也适用于它们。继续阅读以了解详情。

将数据绑定到内存和磁盘部分的小部件与你在 CPU 统计信息部分所做的方式类似。

对于内存部分，绑定如下所示：

* 进度条中的绑定为：`{{( PiData.data.cpu_mem_avail/1000000000).toPrecision(2) \* 100 ?? 0 }}`。
* 三个统计框小部件的绑定分别为：`{{ \${(PiData.data.cpu_mem_used/1000000000).toPrecision(2)} ?? 0 }} GB`、`{{ \${(PiData.data.cpu_mem_free/1000000000).toPrecision(2)} ?? 0}} GB` 和 `{{ \${(PiData.data.cpu_mem_total/1000000000).toPrecision(2)} ?? 0 }} GB`。

对于磁盘部分，进度条和统计框小部件的绑定分别变为：

* 进度条的绑定为：`{{ PiData.data.disk_usage_percent ?? 0 }}`。
* 三个统计框小部件的绑定分别为：`{{ \${(PiData.data.disk_usage_used/1000000000).toPrecision(2)} ?? 0 }} GB`、`{{ \${(PiData.data.disk_usage_free/1000000000).toPrecision(2)} ?? 0 }} GB` 和 `{{ \${(PiData.data.disk_usage_total/1000000000).toPrecision(2)} ?? 0 }} GB`。

这里的图表需要更新你为 CPU 统计信息创建的 `utils` 对象，使用 `storeValue` 键名为 `disk_util_data`，嵌套在 `getLiveData` 下面，其逻辑与 `cpu_util_data` 类似。对于磁盘利用率图表，我们存储的 `disk_util_data` 的逻辑与 CPU 利用率趋势图的逻辑相同。

```
export default {
  getLiveData: () => {
  //When switch is on:
    if (Switch1.isSwitchedOn) {
      setInterval(() => {
       const cpuUtilData = appsmith.store.cpu_util_data;
       const diskUtilData = appsmith.store.disk_util_data;

       PiData.run();

       storeValue("cpu_util_data", [...cpuUtilData, { x: PiData.data.cpu_percent,y: PiData.data.cpu_percent }]);
       storeValue("disk_util_data", [...diskUtilData, { x: PiData.data.disk_usage_percent,y: PiData.data.disk_usage_percent }]);
    }, 1500, 'timerId')
  } else {
    clearInterval('timerId');
  }
},
  initialOnPageLoad: () => {
    storeValue("cpu_util_data", []);
    storeValue("disk_util_data", []);
  }
}

```

通过使用 `utils` JavaScript 对象在打开和关闭真实数据开关时触发的数据流可视化如下所示：

![切换](/data/attachment/album/202307/10/102928s4lkngonzh787bkh.gif)

在打开实时数据开关时，图表会变成这样：

![显示实时数据](/data/attachment/album/202307/10/102932vh4s65lhjlhjppzp.gif)

整体上，它既漂亮，又简约，而且非常有用。

### 祝你使用愉快！

当你对 `psutils`、JavaScript 和 Appsmith 更加熟悉时，我相信你会发现可以轻松无限地调整你的仪表板，实现非常酷的功能，例如：

* 查看先前一周、一个月、一个季度、一年或根据你的树莓派数据允许的任何自定义范围的趋势
* 为任何统计数据的阈值违规构建报警机制
* 监控连接到你的树莓派的其他设备
* 将 `psutils` 扩展到另一台安装有 Python 的计算机上
* 使用其他库监控你家庭或办公室的网络
* 监控你的花园
* 跟踪你自己的生活习惯

在下一个令人兴奋的项目中，祝你玩得愉快！

*（题图：MJ/9754eb1f-1722-4897-9c35-3f20c285c332）*

---

via: <https://opensource.com/article/23/3/build-raspberry-pi-dashboard-appsmith>

作者：[Keyur Paralkar](https://opensource.com/users/keyur-paralkar) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何从 Ubuntu 中删除软件仓库

Summary: 从 apt-add-repository 到“软件及更新”工具，这里有几种从 Ubuntu 移除软件仓库的方法。

![](/data/attachment/album/202307/10/164855dgguejdcbv5uqkj6.jpg)

>
> 从 `apt-add-repository` 到“软件及更新”工具，这里有几种从 Ubuntu 移除软件仓库的方法。
>
>
>

你可以 [在 Ubuntu 中添加外部仓库](https://itsfoss.com/adding-external-repositories-ubuntu/) 来访问官方仓库中不可用的软件包。

例如，如果你 [在 Ubuntu 中安装 Brave 浏览器](https://itsfoss.com/brave-web-browser/)，则将其仓库添加到你的系统中。如果你添加了一个 PPA，它也会添加为外部仓库。

当你不需要特定软件时，请将其删除。但是，外部仓库仍然存在。你还可以也应该将其删除以保持系统原始状态。

Ubuntu 可以让你轻松删除软件仓库。有不同的方法可以做到这一点：

* 使用 `apt-add-repository` 命令删除仓库
* 使用 GUI 删除仓库（对于桌面用户）
* 通过修改 `/etc/apt/sources.list` 文件的文件内容（针对专家）

但在此之前，如果你对这个概念不熟悉，我强烈建议你 [熟悉包管理器的概念](https://itsfoss.com/package-manager/) 和仓库。

### 方法 1、使用 apt 删除仓库?

你知道你还可以使用 [apt 命令](https://itsfoss.com/apt-command-guide/) 来删除仓库吗？ 嗯，从技术上讲，它不是核心 `apt` 命令的一部分，但它的工作方式类似。

在处理外部仓库时，你可以使用 `add-apt-repository` 或者 `apt-add-repository` 命令（两者是同一命令）。

首先，使用以下命令列出添加的仓库：

```
apt-add-repository --list

```

![list enabled repositories in Ubuntu](/data/attachment/album/202307/10/164926z363plfm6u91fb6e.png)

完成后，你可以按所示方式使用带有 `-r` 标志的 `apt-add-repository` 命令来从列表中删除：

```
sudo apt-add-repository -r repo_name

```

例如，如果我想删除 `yarn` 仓库，我必须使用以下命令：

```
sudo add-apt-repository -r deb https://dl.yarnpkg.com/debian/ stable main

```

![Remove repository using the apt-add-repository command in Ubuntu](/data/attachment/album/202307/10/164927mtmbffl707dxgkxg.png)

按回车键进行确认。

接下来，使用以下命令更新仓库：

```
sudo apt update

```

现在，如果你列出已启用的仓库，你将不会在此处找到已删除的仓库：

```
apt-add-repository --list

```

![confirm repository removal process by listing enabled repositories in Ubuntu](/data/attachment/album/202307/10/164927jmhfqwckgbgxhfdf.png)

这就完成了！

### 方法 2、使用 GUI 删除 Ubuntu 中的软件仓库?

>
> ? 不建议删除你一无所知的仓库，因为它可能会限制你将来安装你最喜欢的软件包，因此请确保你知道自己在做什么。
>
>
>

作为 [最适合初学者的发行版之一](https://itsfoss.com/best-linux-beginners/)，你可以使用 GUI 来删除仓库，而无需使用终端。

为此，首先从系统菜单打开“<ruby> 软件及更新 <rt>  software & updates </rt></ruby>”应用：

![search for software and updates from the system menu](/data/attachment/album/202307/10/164928yydduj969tdqyu9d.png)

现在，单击“<ruby> 其他软件 <rt>  Other Software </rt></ruby>”部分，它将列出系统中的 PPA 和外部仓库。

列出中勾选的 ✅ 是已启用的。

要删除仓库，你必须遵循**三个简单的步骤**：

* 选择需要删除的仓库
* 点击“<ruby> 删除 <rt>  Remove </rt></ruby>”按钮
* 最后，点击“<ruby> 关闭 <rt>  Close </rt></ruby>”按钮

![Disable repository from Ubuntu](/data/attachment/album/202307/10/164928ujfyhg68ahjj8svz.png)

单击关闭按钮后，它将打开一个提示，要求你在进行更改时更新信息。

只需单击 “<ruby> 重新载入 <rt>  Reload </rt></ruby>” 按钮即可：

![Click on reload to after removing repository from Ubuntu and save changes](/data/attachment/album/202307/10/164928sw6nxlz67uj5uudx.png)

或者，你可以从命令行更新仓库以使更改生效：

```
sudo apt update

```

### 方法 3、通过目录来删除仓库（对于专家??）

之前，我解释了如何使用工具（GUI 和 CLI）来删除仓库。在这里，你将修改负责管理仓库的系统目录（`/etc/apt/sources.list.d`）。

首先，将工作目录更改为 `sources.list.d` 并列出其内容：

```
cd /etc/apt/sources.list.d/ && ls

```

![list contents of sources.list.d directory](/data/attachment/album/202307/10/164929i8r8wmy4qigzesh0.png)

在这里，你将找到所有仓库的列表。

如果你仔细观察，一个仓库将有两个文件。一个带有 `.list` 扩展名，另一个带有 `.save` 扩展名。

你必须删除具有 `.list` 扩展名的文件：

```
sudo rm Repo_name.list

```

例如，在这里，我使用以下命令删除了 **node 仓库**：

```
sudo rm nodesource.list

```

![remove repository by removing the repository directory in Ubuntu](/data/attachment/album/202307/10/164929vrdjgg4fd47fhdhz.png)

要使更改生效，请使用以下命令更新仓库索引：

```
sudo apt update

```

想了解更多有关 [sources.list](https://itsfoss.com/sources-list-ubuntu/) 的信息吗？阅读 [这篇文章](https://itsfoss.com/sources-list-ubuntu/)。

### 附加步骤：删除仓库后删除 GPG 密钥（对于高级用户）

如果你希望在删除仓库后删除 GPG 密钥，请按以下步骤操作。

首先，使用以下命令列出现有的 GPG 密钥：

```
apt-key list

```

现在，输出可能会让某些用户感到困惑。

以下是要记住的事情：

* GPG 密钥名称将放置在虚线（`----`）上方
* 公钥在第二行

例如，以下是 Chrome GPG 密钥的相关数据：

![list GPG keys in Ubuntu](/data/attachment/album/202307/10/164929xyg7q5765p55x6g7.png)

要删除 GPG 密钥，你可以使用公钥的最后两个字符串（不带任何空格）。

例如，以下是我将如何使用 Chrome 浏览器公钥的最后两个字符串（D38B 4796）删除其 GPG 密钥：

```
sudo apt-key del D38B4796

```

![remove GPG key in Ubuntu](/data/attachment/album/202307/10/164929haa6uwu9fo4d9wwu.png)

同样，你也可以使用整个公钥。但这一次，你必须在两个字符串之间包含空格，如下所示：

```
sudo apt-key del "72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310"

```

### 小心添加和删除的内容

特别是当你是 Linux 新用户时，你会遇到许多感兴趣的软件，对仓库添加了又删除。

虽然尝试是件好事，但你应该始终小心添加/删除到系统中的任何内容。你应该记住一些事情，例如：*它包含更新的软件包吗？ 它是受信任或维护的仓库吗？*

保持谨慎将使你的系统免受不必要的仓库和软件包的影响。

**我希望本指南可以帮助你删除不需要的仓库！**

如果你遇到任何问题请在下面评论。

*（题图：MJ/3d436ed6-76fc-47ef-88c3-b5f3e2862c7d）*

---

via: <https://itsfoss.com/remove-software-repositories-ubuntu/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1058 OpenAI 拿出五分之一的算力来防止人工智能“叛变”

Summary:
? OpenAI 拿出五分之一的算力来防止人工智能“叛变”
? Meta 向 Python 提议可选全局解释器锁功能
? 谷歌建议为人工智能更新 robots.txt 文件
»
»

![](/data/attachment/album/202307/10/190318vxnp6t2op6w765fo.jpg)

![](/data/attachment/album/202307/10/190337wgq6ioevz2ljwfii.jpg)

### OpenAI 拿出五分之一的算力来防止人工智能“叛变”

OpenAI 认为，能够超越人类智慧并压倒人类的计算机系统可能会在这个十年内被开发出来，“但超级智能的巨大力量也可能非常危险，可能导致人类丧失能力，甚至人类灭绝。”OpenAI 的既定目标一直是安全地开发人工通用智能，但这项技术目前还不存在。OpenAI 希望建立一个人工智能系统在不明确依赖人类的情况下，使其他机器与人类的价值观保持一致。为此，他们打算拿出 20% 的处理能力，并成立一个由其首席科学家领导的新部门，以某种方式防止未来机器危害人类。其设定的目标是在四年内解决人工智能和人类行为对齐的问题。

>
> **[消息来源：The Register](https://www.theregister.com/2023/07/07/openai_superhuman_intelligence/)**
>
>
>

>
> 老王点评：那如何防止监管人工智能的人工智能叛变或合谋呢？从本质上来说，除非人工智能也具有自限性，就像大自然中的很多物种一样，能够和人类和其它生物形成共存条件，否则人工智能最终将是无法控制的。在这方面，我是悲观主义者。
>
>
>

![](/data/attachment/album/202307/10/190358ddk5pgdi9g0p0qgd.jpg)

### Meta 向 Python 提议可选全局解释器锁功能

CPython 的全局解释器锁（GIL）阻止了多线程同时执行代码，这事实上阻碍了在多核 CPU 上提高 Python 代码的运行效率。Meta 正致力于推动 Python 项目采纳 PEP 703 提案，该提案将使全局解释器锁成为可选，并加入了必要的更改以确保解释器线程安全。Meta 还承诺，如果 PEP 703 提案被接受，它将在 2025 年前投入三个工程师年的人力，与核心团队合作去实现 PEP 703。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=75464)**
>
>
>

>
> 老王点评：Python 如果要想进一步发展，那么打破原有的一些制约是必经之路，否则就会像其它语言一样，逐渐老化。比如 Perl。
>
>
>

![](/data/attachment/album/202307/10/190413i3ezydi7y7iiddwt.jpg)

### 谷歌建议为人工智能更新 robots.txt 文件

人工智能公司大量使用了从互联网上刮取的内容进行训练，而很多内容是受版权保护的。谷歌建议网络和人工智能社区来讨论改进 robots.txt 标准，以应对人工智能刮取内容的需要。robots.txt 是一个由社区开发的网络标准，它诞生于近 30 年前，已被证明是网络发布者控制搜索引擎抓取其内容的一种简单而透明的方式。但 robots.txt 并不具有法律约束力，只是一种善意的指示。

>
> **[消息来源：Slashdot](https://tech.slashdot.org/story/23/07/08/2158211/google-suggests-robotstxt-file-updates-for-emerging-ai-use-cases)**
>
>
>

>
> 老王点评：虽然不具备法律效力，但是至少为人工智能抓取制定了一个行为准则和法律底线。
>
>
>


什么是 CloudReady？它是 Chrome OS 的开源替代品吗？

Google 收购 Neverware 之后把 CloudReady 改名叫 Chrome OS Flex，可以在普通 PC 和虚拟机安装，但是没有 Android 运行环境，甚至部分设备无法使用 Crostini （类似 WSL，但基于 LXC）。

想要完整的 Chrome OS，请使用 brunch，Intel 和 AMD 使用不同镜像，缺点是不支持虚拟机安装。建议使用 Hatch 机型，它的 Android 运行环境版本较高。

github.com/sebanc/brunch

![](/data/attachment/album/202307/11/143146jtnntsf97x9039x9.jpg)

>
> CloudReady 日趋流行，尤其是在使用低端硬件的用户中。我决定了解一下它并分享我的发现。
>
>
>

### 什么是 CloudReady？

[CloudReady](https://www.neverware.com/) 是一个基于谷歌的 Chromium OS 开源代码仓库的操作系统。Neverware 公司是 CloudReady 背后的组织，它开发的 CloudReady 可以部署到现有的 PC 和 Mac 上，由于其对硬件的要求极低，因此可以保证在上述硬件上的性能提升。大体上来说，CloudReady 把你的旧计算机变成了 Chromebook。2020 年底 [Google 收购了 Neverware](https://9to5google.com/2020/12/15/google-acquires-cloudready-os/)。

在分享我的经验和想法之前，让我先进一步介绍以下它。

### 谁应该尝试 CloudReady？

![CloudReady](/data/attachment/album/202307/11/143326dzjj44w04c9cyzci.jpg)

CloudReady 主要是面向那些能够从使用类 Chromebook 设备中获益，但是已经在硬件设备上进行了投入的机构。下面是我想到的一些例子：

* 经过 CloudReady 扩展的 Chromium OS 用户界面足够简单，用户从 macOS 或 Windows 转向使用 CloudReady 几乎不需要培训。
* 更好的安全性，用户不会被安装充斥于 macOS 和 Windows 上的恶意软件。
* Chromium OS 的硬件要求低，能够在老旧的硬件上良好运行。
* 通过“<ruby> 谷歌管理控制台 <rt>  Google Admin Console </rt></ruby>”来管理计算机。
* 简单初始安装过程。

下面是运行 CloudReady 的最低硬件要求：

* **CPU**：任何 2008 年之后的 CPU （没有提及对 ARM 架构 CPU 的支持情况，暂且认为仅支持 x86 架构 CPU，即英特尔和 AMD 的 CPU）
* **内存**：2 GB 及以上
* **存储**：16GB 及以上
* 具备访问 BIOS 或 UEFI 的权限——为了能够从 USB 安装程序启动

如果你不确定自己的上网本是否能够运行 CloudReady，Neverware 公司发布了能够运行 CloudReady 的认证机型清单。目前该清单已包含超过 450 种机型。你可以通过 [这个官方链接来核查自己的机型](https://guide.neverware.com/supported-devices/)。

### CloudReady 与 Chrome OS 有什么不同？

如果你的主要使用目的是以下场景，那么 CloudReady 能够满足你的需要：

* 通过 “<ruby> Neverware 管理门户 <rt>  Neverware Admin Portal </rt></ruby>”（[到 Google 完成收购为止](https://cloudreadykb.neverware.com/s/article/Neverware-is-now-part-of-Google-FAQ)）或 “<ruby> 谷歌管理控制台 <rt>  Google Admin Console </rt></ruby>” 来管理 CloudReady 设备。
* 你的工作可以通过网页浏览器来完成（基于网络服务）。

当你了解到“CloudReady 是一个基于 Chrome OS 的操作系统”时，你一定认为它至少应该能够运行安卓应用。

遗憾的是，事实并非如此。开源的 Chromium OS 不支持安卓运行时框架/服务，因此在 CloudReady 中不可用。由于一些法律和技术上的原因，Neverware 并没有将安卓运行时添加到 CloudReady 中。

另一方面它也阻止你<ruby> 侧载 <rt>  side-loading </rt></ruby> APK，因为根本没有运行安卓应用的东西。

当我试图从<ruby> 应用抽屉 <rt>  app drawer </rt></ruby> 启动 Play Store 时，它在浏览器中打开了谷歌 Play Store 的网页。这真是个坏消息。然而得益于 CloudReady 是基于“<ruby> 面向网络 <rt> </rt> web focused</ruby>”的操作系统的，我的 Chromium 浏览器扩展运行良好。

![A screenshot of the app drawer in CloudReady with the Google Play Store app icon  along with Chrome Extensions as “Apps”](/data/attachment/album/202307/11/143338vpaiw1rlia00ywyc.jpg)

所以如果你想通过 CloudReady 把自己的旧笔记本变成一个非触屏的平板，那你就不太走运了。

### 为什么会有 CloudReady？

你也许会疑惑，既然已经有了 Chrome OS，为什么 Neverware 还要投入资源开发 CloudReady 这个 “克隆体” 呢？

仔细观察运行 Chrome OS 的设备，你就会发现它们都是预装设备。也就是说 Chrome OS 只适用于生产 Chromebook 的 OEM 厂商。

对于微软的 Windows，OEM 厂商可以预装 Windows，用户也可以下载单独的 ISO。然而，谷歌并不提供可用于在电脑上安装 Chrome OS 的 ISO。

所以需要开发一个基于 Chromium OS 的操作系统，让你能够将其安装到已有的 PC 或 Mac 上。

CloudReady 为你提供一种安装基于 Chromium OS，企业用户也可以通过 Neverware 获得官方支持服务。

### 获取 CloudReady

![CloudReady screenshot](/data/attachment/album/202307/11/143347meb4meuwglglp8yu.jpg)

**CloudReady 提供三个版本：家庭版（免费）、教育版（付费）和企业版（付费）**。如果你想先体验一下 CloudReady，那就选家庭版。

Neverware 不提供 ISO　镜像，但它提供一个启动 U 盘制作工具。这个工具仅限 Windows 操作系统。

Neverware 同时提供一个 RAW 文件，你可以用 [任何基于 Chromium 的浏览器](https://news.itsfoss.com/chrome-like-browsers-2021/) 的 [Chromebook 恢复扩展](https://chrome.google.com/webstore/detail/chromebook-recovery-utili/pocpnlppkickgojjlmhdmidojbmbodfm?hl=en) 来制作启动 U 盘。

>
> **[下载 CloudReady 家庭版](https://www.neverware.com/freedownload)**
>
>
>

如果你想要在虚拟机里体验 CloudReady 的话，Neverware 提供了 “.ova” 文件。该 “.ova” 文件无法在 VirtualBox 上使用，它旨在与 VMware 一起使用。

>
> **[下载 CloudReady “.ova” 文件](https://cloudreadykb.neverware.com/s/article/Download-CloudReady-Image-For-VMware)**
>
>
>

### Ubuntu Web：ChromeOS 和 CloudReady 的替代品？

如果你想要在旧电脑上使用 CloudReady，但是它缺少安卓运行时这点让你失望了，也许你可以试试 [Ubuntu Web](https://ubuntu-web.org/)。

![A screenshot of Ubuntu Web](/data/attachment/album/202307/11/143222p2evoo5zxomughev.jpg)

正如其名称所示，Ubuntu Web 是面向寻找 Chrome OS 替代品的人群的 Linux 发行版。

Ubuntu Web 有与 Ubuntu 一样的同步能力，让你能够用 [/e/ Cloud](https://e.foundation/ecloud/)（一个专注于隐私的 Google 云同步服务替代品）实现同步。

最重要的是 Ubuntu Web 默认附带了 [Waydroid](https://waydro.id/)。

Waydroid 是一种“基于容器的方式，可以在 GNU/Linux 系统上运行一个完整的 Android 系统”。也就是说你可以在 Ubuntu Web 上运行安卓应用（不像 CloudReady）。

### 总结

尽管你可能会觉得 CloudReady 与 Chrome OS 相比并没有太多的优势，但对于那些想要部署集中管理的、基于 Chromium OS 的操作系统，但又不想在 Chromebook 上投资的组织来说，它似乎是一个不错的选择。

对于使用低端硬件的家庭用户来说，它也是一个不错的选择，但是我们 [已经有很多轻量级的 Linux 发行版](https://itsfoss.com/lightweight-linux-beginners/)。

你是否已经使用过 CloudReady？或者你是第一次在这里听说它？你对这个项目的总体看法是什么呢？

*（题图：MJ/5c18795b-6978-48a0-a6f7-baffde69ab48）*

---

via: <https://itsfoss.com/cloudready/>

作者：[Pratham Patel](https://itsfoss.com/author/pratham/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[toknow-gh](https://github.com/toknow-gh) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Ubuntu Linux 的 7 个最佳应用坞

Summary: 看看以下哪个 Linux 应用坞最适合你。

看看以下哪个 Linux 应用坞最适合你。

![](/data/attachment/album/202307/11/162636bc9c2l20spzlj89y.jpg)

>
> 看看以下哪个 Linux 应用坞最适合你。
>
>
>

<ruby> 应用坞 <rt>  Dock </rt></ruby> 在提升 Ubuntu 或其他 Linux 发行版上的用户体验和生产力方面起着至关重要的作用。凭借其流线型和直观的设计，应用坞可快速访问经常使用的应用程序、系统设置和工作区管理。

应用坞是个复杂的应用程序，在 Linux 生态系统中仅有少数活跃项目可用。这可能是因为桌面环境提供了将相应的默认面板转换为应用坞的内置功能。

然而，以下是适用于 Ubuntu 和其他 Linux 发行版的 7 个最佳应用坞。

### Linux 的最佳应用坞

#### Plank

最受欢迎和知名的应用坞是 [Plank](https://launchpad.net/plank)，许多发行版将其作为默认应用坞。例如，elementary OS 使用 Plank 做为其 Pantheon 桌面环境的应用坞。

Plank 的最佳特性是其完备性，无需进行任何自定义。它在默认设置下外观出色，并能适应任何发行版。

![Plank 应用坞](/data/attachment/album/202307/11/163104k6nv669lcv8s9g96.jpg)

你可以使用以下命令在 Ubuntu、Linux Mint 及相关发行版上安装 Plank：

```
sudo apt install plank

```

安装完成后，你可以通过命令提示符中输入 `plank`，或通过应用程序菜单启动它。如果你在 Ubuntu 上使用它，请确保使用任何 [GNOME 扩展](https://www.debugpoint.com/gnome-extensions-2022/)（例如 Just Perfection）隐藏默认的左侧 <ruby> 启动器 <rt>  Dash </rt></ruby>。

**注意：** Plank 在 Wayland 上无法工作。你需要使用 [X.Org](http://X.Org) 会话。

#### Dash to Dock 扩展

如果你正在使用最新的 Ubuntu GNOME 桌面环境，则可以尝试 “Dash to Dock” 扩展。它不是独立的应用程序，但可以将你的启动器转换为简单的应用坞。

![Dash to Dock 扩展](/data/attachment/album/202307/11/163111s3towarrllvvnfql.jpg)

该扩展还提供了几个功能，如在多个监视器上显示应用坞、设置大小/图标大小和位置。你还可以自定义其不透明度，使用内置主题并更改应用坞的颜色。

要安装此扩展，先安装 [扩展管理器](https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/)，然后搜索 “[Dash to Dock](https://extensions.gnome.org/extension/307/dash-to-dock/)” 并安装。

#### Dock from Dash 扩展

还有另一个 GNOME 扩展，称为 “Dock from Dash”。乍一看，它与 “Dash to Dock” 看起来可能完全相同，但存在一些区别。

与 “Dash to Dock” 相比，此扩展轻量，使用的资源较少。它也仅提供了一些选项，只提供简单的应用坞功能。

此外，它还可以自动隐藏应用坞，并可自定义延迟和行为。

因此，如果你想要一个轻量级的 GNOME 扩展，仅具有应用坞功能，请选择它。

要安装此扩展，先安装 [扩展管理器](https://www.debugpoint.com/how-to-install-and-use-gnome-shell-extensions-in-ubuntu/)，然后搜索 “[Dock from Dash](https://extensions.gnome.org/extension/4703/dock-from-dash/)” 并安装。

![Dock from Dash](/data/attachment/album/202307/11/163119s19r5pmmkc9mqm89.jpg)

#### Latte Dock

[Latte Dock](https://invent.kde.org/plasma/latte-dock) 以其庞大的自定义选项而闻名。它是 KDE 系统的一部分，并带有许多依赖项。我将其添加到此列表的主要原因是它是目前最好的应用坞。

然而，问题在于该项目目前没有在维护。Latte Dock 的开发者已经 [离开了该项目](https://psifidotos.blogspot.com/2022/07/latte-dock-farewell.html)。KDE 的自动化机制使该项目保持维护模式。因此，如果需要，只需进行少量调整，它就能正常工作。

许多发行版，如 Garuda Linux，曾将其作为默认选项的一部分。但现在已经不再使用 Latte Dock。

![Latte Dock](/data/attachment/album/202307/11/163126oz4sc044y1211414.jpg)

你可以使用以下命令安装 Latte Dock。如果你在 Ubuntu 上安装它，请记住它将下载大量的 KDE 生态系统的软件包。因此，建议你在任何 [基于 KDE Plasma 的 Linux 发行版](https://www.debugpoint.com/top-linux-distributions-kde-plasma/) 上使用 Latte 应用坞以获得最佳体验。

```
sudo apt install latte-dock

```

#### Docky

如果你想要一个类似 macOS 风格的应用坞，可以尝试使用 Docky。[Docky](https://launchpad.net/~docky-core/+archive/ubuntu/stable) 是一个简单易用的应用坞，与 GNOME 桌面环境紧密集成。它是一个轻量、快速和可自定义的应用坞，可用于启动应用程序、访问文件和管理窗口。

总体而言，Docky 提供了一个视觉吸引力强、可自定义且高效的解决方案，可用于管理应用程序并提升桌面体验。

![Docky 和设置](/data/attachment/album/202307/11/163134kdccro839q7a3qca.jpg)

但是有一个问题。

Docky 的开发已经停滞。其最后一次发布是在 2015 年，目前它处于最低限度的维护模式。但是，你仍然可以在 Ubuntu 上安装它，需要进行一些额外的步骤，因为你需要手动下载依赖项并安装它们。

在 Ubuntu 中打开终端，并按顺序运行以下命令以安装 Docky。

```
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/g/gnome-sharp2/libgconf2.0-cil_2.24.2-4_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/libg/libgnome-keyring/libgnome-keyring-common_3.12.0-1build1_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1build1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/g/gnome-keyring-sharp/libgnome-keyring1.0-cil_1.0.0-5_amd64.deb

sudo apt install *.deb

wget -c http://archive.ubuntu.com/ubuntu/pool/universe/d/docky/docky_2.2.1.1-1_all.deb
sudo apt install ./docky_2.2.1.1-1_all.deb

```

安装之后，你可以在应用菜单中找到它。

#### DockbarX

如果你是 Xfce 桌面的忠实用户，可能听说过 [DockbarX](https://github.com/M7S/dockbarx)。它在 Xfce 上运行得很好，但你也可以在 Ubuntu、Linux Mint 或 Arch Linux 上安装它。

DockbarX 带有大量的自定义选项和调整，可以让你的桌面看起来令人惊艳。此外，它还支持内置主题，省去了你调整应用坞的功夫。

DockbarX 的一个独特功能是从应用坞直接显示正在运行应用程序的窗口预览。

![DockBarX](/data/attachment/album/202307/11/163145vy1r1ijjh44rjm34.jpg)

以下是在 Ubuntu 中安装的步骤：

```
sudo add-apt-repository ppa:xuzhen666/dockbarx
sudo apt update
sudo apt install dockbarx
sudo apt install dockbarx-themes-extra

```

如果你使用的是 Arch Linux，你可以设置任何 [AUR 辅助工具，如 Yay](https://www.debugpoint.com/install-yay-arch/)，并使用以下命令安装它。

```
yay -S dockbarx

```

#### KSmoothDock

如果你喜欢在应用坞中显示更多的界面动画效果，那么你可以考虑使用 [KSmoothDock](https://dangvd.github.io/ksmoothdock/)。它具备所有常见的应用坞功能，并附加了一些额外的特性。

KSmoothDock 的主要吸引力在于“抛物线缩放效果”，如果你喜欢动画效果，这是一种非常不错的体验。

![KSmoothDock](/data/attachment/album/202307/11/163154mww8nnwl448wlpwf.jpg)

此外，它还提供了图标和面板大小、透明度等自定义选项。它是一个构建良好的应用坞，在 KDE Plasma 系列的发行版中应该非常完美。

它提供了一个预编译的 deb 文件进行安装，你可以从 KDE 商店下载：

>
> **[下载 KSmoothDock](https://store.kde.org/p/1081169)**
>
>
>

### 一些不活跃的 Linux 应用坞

除了上述的选项外，还有一些非常受欢迎的应用坞已经停止了开发。这些应用坞当前已经无法正常工作，并且安装它们需要很多努力。你可以查看它们的源代码进行实验。

[Cairo Dock](https://glx-dock.org/): 对于最新的 Ubuntu 发行版，目前已不可用。[最后一个稳定版本](https://launchpad.net/~cairo-dock-team/+archive/ubuntu/ppa)发布于 2015 年。

[Avant Window Navigator](https://github.com/p12tic/awn): 目前无法正常工作。[最后一个发布版](https://launchpad.net/~awn-testing/+archive/ubuntu/ppa) 发布于 2013 年。

### 总结

无论你是喜欢简约的应用坞还是喜欢带有动画效果的重型应用坞，希望上述列表可以帮助你选择最适合你需求的应用坞。不幸的是，几乎大多数应用坞都没有积极的开发，而且也没有新的应用坞在开发。

探索这些选项，尝试不同的应用坞，并找到一个能够增强你的 Ubuntu 或其他 Linux 桌面体验的应用坞。请在评论中告诉我你使用和喜欢的 Linux 应用坞！

*（题图：MJ/5a640365-8b47-43cc-8d72-2f0af8fc9099）*

---

via: <https://www.debugpoint.com/best-docks-linux/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1059 Oracle 嘲讽 IBM/红帽，建议 RHEL 成为 Oracle Linux 下游

Summary:
? Oracle 嘲讽 IBM/红帽，建议 RHEL 成为 Oracle Linux 下游
? SUSE 也来踩上一脚，宣布将复刻一个 RHEL 兼容发行版
? Bcachefs 文件系统无缘 Linux 6.5，Torvalds 呼吁大家保持冷静
»
»

为啥一定要去和RHEL保持兼容，不和RHEL一条路不行吗，比如Debian。

应用软件兼容是操作系统替换的前提条件。。。

很多软件是找不到原开发者进行修改适配的。。。

相信oracle的,最后只能证明自己是伞兵.

![](/data/attachment/album/202307/11/203252hoodhhyq6n8888qy.jpg)

![](/data/attachment/album/202307/11/203304q62x4cnow64bc3mz.jpg)

### Oracle 嘲讽 IBM/红帽，建议 RHEL 成为 Oracle Linux 下游

在红帽限制了对 RHEL 源代码的访问之后，AlmaLinux 和 Rocky Linux 已经表示将克服困难继续推出 RHEL 克隆版。而现在，另外一个 RHEL 兼容发行版 Oracle Linux 也发表了他们的看法和行动。在一篇《保持 Linux 开放和自由 —— 我们损失不起》的新闻稿中，他们指出，Oracle 打算继续推动 Oracle Linux，并使其与上游的 RHEL 保持兼容，尽管他们没有说明将采取哪些步骤来获取未来的源代码。此外，他们还做出承诺，“只要 Oracle 分发 Linux，Oracle 将公开和免费提供该发行版的二进制文件和源代码。”并表示他们欢迎任何类型的下游发行版，包括社区和商业发行版。因为红帽曾在回应文章中提及他们不想继续公开发布 RHEL 的源代码的原因是红帽“必须为这些工作的人支付报酬”，所以最后 Oracle 还嘲讽了 IBM，“你说你不想为所有那些 RHEL 开发人员付费吗？你可以节省金钱的方法很简单：从我们这里获取。成为 Oracle Linux 的下游发行商。我们将乐意承担这一责任。”并且，在公告中他们还顺便对那些反对 IBM/红帽这一做法的 Linux 开发者抛出了橄榄枝。

>
> **[消息来源：Oracle](https://www.oracle.com/news/announcement/blog/keep-linux-open-and-free-2023-07-10/)**
>
>
>

>
> 老王点评：真是没想到向来被认为对开源不友好的 Oracle，反而有嘲讽被视为开源先锋的红帽和 IBM 的一天啊！这世界真是变得快，曾经的开源公敌微软变成了最大的开源贡献公司，而将 Sun 公司遗产挥霍殆尽的 Oracle 如今却试图制造初另一个伟大的 Linux 发行版。
>
>
>

![](/data/attachment/album/202307/11/203315mf7n0yoo7b3a88bf.jpg)

### SUSE 也来踩上一脚，宣布将复刻一个 RHEL 兼容发行版

在 Oracle 发布上述声明后，SUSE 公司宣布将对公开可用的 RHEL 进行复刻，并开发和维护一种可供所有用户自由使用的 RHEL 兼容发行版。根据公告中泄露的信息，该发行版名称可能被称作 “Liberty Linux”。SUSE 计划成立一个开源基金会，将他们对这个 RHEL 复刻项目的工作贡献给基金会，以确保持续自由访问这个替代源代码。在接下来的几年里，SUSE 计划投入 1000 万美元以上用于这个项目。他们表示，“协作和共享成功一直是我们开源社区的基石。我们有责任捍卫这些价值观。”此外，SUSE 还将继续全力投资于 openSUSE 及其企业 Linux 发行版 SLE。

>
> **[消息来源：SUSE](https://www.suse.com/news/SUSE-Preserves-Choice-in-Enterprise-Linux/)**
>
>
>

>
> 老王点评：SUSE 本来就是兼容 RPM 的发行版，所以 SUSE 公司的团队做到这一点并不困难，但是我真没想到这个时候 SUSE 也会站出来。所谓“秦失其鹿，天下共逐之”。现在，就看国内的龙蜥和欧拉会不会表态了。
>
>
>

![](/data/attachment/album/202307/11/203329ft7i6l77t6t3n9ih.jpg)

### Bcachefs 文件系统无缘 Linux 6.5，Torvalds 呼吁大家保持冷静

Linus Torvalds 已经发布了 Linux 内核 6.5 版的第一个候选版本，但 Bcachefs 没有合并进入这个版本。对 Bcachefs 的拉取请求导致了一个很长的讨论会话，虽然还没有到 100 封邮件，但已经不远了。Bcachefs 是一个已经开发了近十年的文件系统，它源自于名叫 Bcache 的内核块层缓存，项目开发者希望能提供类似 XFS/EXT4 的性能以及类似 Btrfs 和 ZFS 的特性。该文件系统的状况良好，但关于 “内核模块本身之外的内核所需的代码变更” 的争论却引发了争议。因此，每当话题转向 Bcachefs 时，Linux 内核邮件列表上的对话 “经常变得激烈”。在 rc1 的公告中，Torvalds 写道：“让我们来平息这场狂欢吧”。

>
> **[消息来源：The Register](https://www.theregister.com/2023/07/10/linux_6_5_rc1_bcachefs/)**
>
>
>

>
> 老王点评：真是众口难调啊，集市式开发就会像集市一样吵吵闹闹，作为 Linux 内核的最终裁决者，Linus 也挺难的。
>
>
>


Bash 基础知识系列 #2：在 Bash 中使用变量

Summary: 在本章的 Bash 基础知识系列中，学习在 Bash 脚本中使用变量。

在本章的 Bash 基础知识系列中，学习在 Bash 脚本中使用变量。

![](/data/attachment/album/202307/12/111750bzruv9jiako6j694.jpg)

>
> 在本章的 Bash 基础知识系列中，学习在 Bash 脚本中使用变量。
>
>
>

在 Bash 基础知识系列的第一部分中，我简要提到了变量。现在是时候在本章中详细了解它们了。

如果你曾经进行过任何类型的编码，你一定熟悉术语“变量”。

如果没有，请将变量视为保存信息的盒子，并且该信息可以随着时间的推移而改变。

让我们看看如何使用它们。

### 在 Bash shell 中使用变量

打开终端并使用一个随机的数字 4 初始化变量：

```
var=4

```

现在你有一个名为 `var` 的变量，它的值为 `4`。想验证一下吗？ **通过在变量名前添加 `$` 来访问变量的值**。这称为参数扩展。

```
[abhishek@itsfoss]:~$ echo The value of var is $var
The value of var is 4

```

>
> ? 变量初始化时 `=` 前后不能有空格。
>
>
>

如果需要，你可以将该值更改为其他值：

![Using variables in shell](/data/attachment/album/202307/12/111759x6acec65lqj75ba7.png)

在 Bash shell 中，变量可以是数字、字符或字符串（包括空格在内的字符）。

![Different variable types in Bash shell](/data/attachment/album/202307/12/111759jptr77z2yfd7fu0u.png)

>
> ? 与 Linux 中的其他事物一样，变量名称也区分大小写。它们可以由字母、数字和下划线 “`_`” 组成。
>
>
>

### 在 Bash 脚本中使用变量

你是否注意到我没有运行 shell 脚本来显示变量示例？ 你可以直接在 shell 中做很多事情.当你关闭终端时，你创建的那些变量将不再存在。

但是，你的发行版通常会添加全局变量，以便可以在所有脚本和 shell 中访问它们。

让我们再写一些脚本.你应该之前创建了脚本目录，但无论哪种情况，此命令都会处理该目录：

```
mkdir -p bash_scripts && cd bash_scripts

```

基本上，如果 `bash_scripts` 目录尚不存在，它将创建它，然后切换到该目录。

这里让我们使用以下文本创建一个名为 `knock.sh` 的新脚本。

```
#!/bin/bash

echo knock, knock
echo "Who's there?"
echo "It's me, $USER"

```

更改文件权限并运行脚本。你在上一章中已经学到了。

这是它为我生成的内容：

![Using global variable in Bahs script](/data/attachment/album/202307/12/111800kcuaumooouldu2fl.png)

**你是否注意到它如何自动将我的名字添加到其中？** 这就是包含用户名的全局变量 `$USER` 的魔力。

你可能还注意到，我有时将 `"` 与 `echo` 一起使用，但其他时候则不使用。这是故意的。[bash 中的引号](https://linuxhandbook.com:443/quotes-in-bash/) 有特殊含义。它们可用于处理空格和其他特殊字符。让我展示一个例子。

### 处理变量中的空格

假设你必须使用一个名为 `greetings` 的变量，其值为 `hello and welcome`。

如果你尝试像这样初始化变量：

```
greetings=Hello and Welcome

```

你会得到这样的错误：

```
Command 'and' not found, but can be installed with:
sudo apt install and

```

这就是为什么你需要使用单引号或双引号：

```
greetings="Hello and Welcome"

```

现在你可以根据需要使用该变量。

![Using spaces in variable names in bash](/data/attachment/album/202307/12/111800agjunjgar4nnnu3u.png)

### 将命令输出分配给变量

是的！你可以将命令的输出存储在变量中并在脚本中使用它们。这称为命令替换。

```
var=$(command)

```

这是一个例子：

```
[abhishek@itsfoss]:~$ today=$(date +%D)
[abhishek@itsfoss]:~$ echo "Today's date is $today"
Today's date is 06/19/23
[abhishek@itsfoss]:~$

```

![Command substitution in bash](/data/attachment/album/202307/12/111801t3jjjwuaabrruj32.png)

旧语法使用反引号而不是 `$()` 进行命令替换。虽然它可能仍然有效，但你应该使用新的推荐符号。

>
> ? 变量会更改值，除非你声明一个“常量”变量，如下所示：`readonly pi=3.14`。在这种情况下，变量 `pi` 的值无法更改，因为它被声明为 `readlonly`。
>
>
>

### ? 练习时间

是时候练习你所学到的东西了。这里有一些练习来测试你的学习情况。

**练习 1**：编写一个 bash 脚本，以以下格式打印你的用户名、当前工作目录、主目录和默认 shell。

```
Hello, there
My name is XYZ
My current location is XYZ
My home directory is XYZ
My default shell is XYZ

```

**提示**：使用全局变量 `$USER`、`$PWD`、`$HOME` 和 `$SHELL`。

**练习 2：** 编写一个 bash 脚本，声明一个名为 `price` 的变量.使用它来获取以下格式的输出：

```
Today's price is $X
Tomorrow's price is $Y

```

其中 X 是变量 `price` 的初始值，并且明天价格翻倍。

**提示**：使用 `\` 转义特殊字符 `$`。

练习的答案可以在社区的这个专用帖子中讨论。

在 Bash 基础知识系列的下一章中，你将了解如何通过传递参数和接受用户输入来使 bash 脚本具有交互性。

*（题图：MJ/37c5c26e-3289-4ebd-b8ae-88eb8a3b2eb1）*

---

via: <https://itsfoss.com/bash-use-variables/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1060 Linux 桌面份额突破 3%

Summary:
? Linux 桌面份额突破 3%
? Windows 95、98 和 NT 4.0 等可再次获得在线更新
? 亚马逊称自己不是“超大在线平台”以规避欧盟规则
»
»

"老王点评：其实那么古老的 Windows 系统打不打补丁都无关紧要了。"

很多工业设备的软件仅支持XP，好一点的支持到Win7。设备一用几十年。设备不报废，软件不更新。

记得Win7要安装msi安装包，必须安装一个补丁。

赞同，这些东西大多是有需求才弄出来的

来自广东广州的 Chrome Mobile 90.0|Android 11 用户

linux很好啊，我用了几年了，一直是linux mint忠诚用户 很喜欢肉桂和i3，linux也许是反微软windows垄断的好机会，windows越来越难用了，尤其是windows11发布以后我试了一下，又<br />
换回windows10了，最后知道windows10活不久了，刚好ubuntu22.04发布，但对英伟达十分不友好，于是转型linux mint了，他也差不到哪去

![](/data/attachment/album/202307/12/173601hsaqy8sebyer0aey.jpg)

![](/data/attachment/album/202307/12/173610dlfhtdelcwzdtgct.jpg)

### Linux 桌面份额突破 3%

根据 Statcounter 的数据，Linux 的使用率在过去几年中一直在缓慢上升，趋势非常明显。今年，Linux 桌面的统计数据如下：一月，2.91%；二月，2.94%；三月，2.85%；四月，2.83%；五月，2.70%；六月，3.07%。以上数据不包括同样基于 Linux 的 ChromeOS 桌面操作系统。

>
> **[消息来源：Statcounter](https://gs.statcounter.com/os-market-share/desktop/worldwide)**
>
>
>

>
> 老王点评：虽然可能会在未来几个月有所反复，但是从趋势看，未来几十年或许就可以统治桌面市场了。?
>
>
>

![](/data/attachment/album/202307/12/173627k0nfsxkfcge7eesf.jpg)

### Windows 95、98 和 NT 4.0 等可再次获得在线更新

自从 2011 年微软关闭了几乎所有的 Windows Update 网站后，旧版 Windows 就不再能得到在线更新了。在此之后，安装更新的唯一途径是通过外部第三方安装程序，而这些安装程序并不涵盖操作系统完全支持的所有更新。现在，有人建立了一个第三方的 [Windows Update Restored](http://windowsupdaterestored.com/) 网站，使用经过稍微修改的微软原始的 Windows Update 网站的代码，为包括 Windows 95、NT 4.0、98、Me、2000 和 XP 在内的废弃 Windows 操作系统提供了更新。这些更新来自于互联网档案馆的时光机项目，“原样”提供了各种更新包。该网站本身不使用任何类型的 SSL 或 TLS 加密，以便古老的 IE 浏览器仍可访问该网站而无需修改。为了避免你没有，他们还提供了所有支持语言的 IE5 和 IE5.5 的下载链接。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/07/windows-95-98-and-other-decrepit-versions-can-grab-online-updates-again/)**
>
>
>

>
> 老王点评：其实那么古老的 Windows 系统打不打补丁都无关紧要了。
>
>
>

![](/data/attachment/album/202307/12/173644yhc71xnaeh6x6356.jpg)

### 亚马逊称自己不是“超大在线平台”以规避欧盟规则

亚马逊不想遵守欧洲的《数字服务法案（DSA）》，为了规避相关规定，该公司认为自己不符合欧盟法律对超大在线平台（VLOP）的定义，因此提起上诉。《数字服务法案》包括内容审核要求、透明度规则和未成年人保护措施。例如，将不再允许基于儿童特征的定向广告。被列入必须遵守《数字服务法案》的公司有 19 家，它们在欧盟拥有超过 4500 万活跃用户的平台。亚马逊认为它被不公平地挑出来，“在我们开展业务的欧盟国家中，亚马逊都不是最大的零售商，在每个欧洲国家中，这些最大的零售商都没有被指定为 VLOP。”

>
> **[消息来源：Ars Technica](https://arstechnica.com/tech-policy/2023/07/amazon-claims-it-isnt-a-very-large-online-platform-to-evade-eu-rules/)**
>
>
>

>
> 老王点评：我觉得亚马逊太谦虚了，就像一个胖子拼命想钻进一个小奥拓一样。?
>
>
>


Solus 4.4 发布，带来实用的升级并计划放弃 MATE 版本

Summary: Solus 4.4 有了一些令人印象深刻的升级，不久以后将推出一款新版本。

Solus 4.4 有了一些令人印象深刻的升级，不久以后将推出一款新版本。

>
> Solus 4.4 有了一些令人印象深刻的升级，不久以后将推出一款新版本。
>
>
>

![solus 4.4](/data/attachment/album/202307/12/185119wl3xe8f8khn4lg4g.jpg)

Solus 是一个许久没有出现在新闻中的名字，我们上一次听说它是今年 4 月份它经历了 [又一次动荡](https://news.itsfoss.com/solus-revival/)。

幸运的是，新的组织重组似乎奏效了，因为现在我们在近两年后迎来了新发布！

Solus 是最棒的 [独立 Linux 发行版](https://itsfoss.com/independent-linux-distros/) 之一，提供了非常适合初学者的用户体验。

和它的上一个版本 Solus 4.3 相比，它带来了许多改进，这个新版本的目标是超越之前的版本。

让我们看看 Solus 最新版本有什么新特性。

### ? Solus 4.4: 有什么新内容？

![solus plasma 版本的系统菜单截图](/data/attachment/album/202307/12/185120o5hh200kbnbyyd5y.jpg)

Solus 4.4 带来了许多改进，其中一些最显著的包括以下内容：

* 更好的硬件支持
* 桌面环境升级
* 更新的应用程序套件

#### 更好的硬件支持

前所未有的，Solus 4.4 使用 **Linux 内核 6.3.8** 作为强大的基础来支持各种硬件。硬件支持包括：

* 安全启动
* 英特尔 Arc 显卡
* 英伟达 40 系列显卡
* AMD Radeon RX 7600、7900 XT 和 7900 XTX 显卡
* 增强对各种光传感器和加速度计的支持
* 以及更多

#### 桌面环境升级

这是你将找到 Solus 中最关键的错误修复和提升用户体验的改进之处。由于提供了四个不同的版本，我们将介绍每个版本中的新功能。

##### GNOME 43.5

![solus 4.4 运行 GNOME 的截图](/data/attachment/album/202307/12/185120ft3azh4etihhdrrt.jpg)

Solus 4.4 **采用了最新的 [GNOME 43.5](https://gitlab.gnome.org/GNOME/gnome-software/-/releases/43.5) 版本**，带来了许多调整。默认的窗口主题切换到了 Adwaita，且默认启用了深色模式。

此外，更新了系统用户界面的样式，重新设计了系统状态菜单，方便快速更改常用设置。

##### MATE 将被 XFCE 取代

![solus 4.4 运行 MATE 的截图](/data/attachment/album/202307/12/185121u4c3ylf3teoua7c0.jpg)

而对于 MATE 版本，Solus 4.4 **采用了最新的 [MATE 1.27.1](https://github.com/mate-desktop/mate-desktop/releases/tag/v1.27.1) 版本**。它包括**各种可靠性和可访问性的修复**，**更改了键盘驱动程序**，以及将 **qxl 视频驱动程序设为处理虚拟化视频驱动程序支持的默认驱动程序**。

遗憾的是，Solus 开发团队决定在未来的版本中 **淘汰 MATE 版本**，并采用 XFCE 版本。这其中的关键原因是 MATE 项目处于非常 **衰败的状态**，并且 **没有计划支持 Wayland**。

#### Budgie 10.7.2

![solus 4.4 运行 Budgie 的截图](/data/attachment/album/202307/12/185121uplolwqlbibo6lio.jpg)

对于 Budgie 版本，Solus 4.4 **采用了 [Budgie 10.7.2](https://blog.buddiesofbudgie.org/budgie-10-7-2/) 版本**，使 Solus 能够利用**新的应用索引器**、**重新设计的设置菜单**、**可访问性改进**等功能。

此外，Solus 现在**默认使用 Nemo 文件管理器**，不再使用 Nautilus。原因是 Nautilus 被更改为 GTK4 和 libadwaita，不再符合系统其他部分的外观和感觉。

#### KDE Plasma

![solus 运行 Plasma 的截图](/data/attachment/album/202307/12/185121w85o1whtk102j9dk.jpg)

同样，在 Plasma 版本中，Solus 4.4 **采用了最新的 [Plasma 5.27.5](https://kde.org/announcements/plasma/5/5.27.5/) 版本**，以及 **KDE Frameworks 5.106.0**、**KDE Gear 23.04.2** 和 **KDE 分支的 QT 5.15.9**。

这带来了许多新功能；其中一些亮点包括：

* 默认应用启动器被 [Kickoff](https://userbase.kde.org/Plasma/Kickoff) 替换
* Wayland 会话默认提供
* [KSysGuard](https://apps.kde.org/ksysguard/) 被 [System Monitor](https://apps.kde.org/plasma-systemmonitor/) 替换
* 新的“总览视图”，可用于管理所有活动的桌面/应用程序
* 支持大屏幕模式

#### 更新的应用套件

除了上述更改之外，Solus 4.4 还包括更新的应用套件，其中包括：

* Firefox 114.0.1
* LibreOffice 7.5.3.2
* Thunderbird 102.12.0
* Budgie、GNOME 和 MATE 版本的默认音乐播放器为 Rhythmbox
* Budgie 和 GNOME 上的视频播放使用 Celluloid
* MATE 上的视频播放使用 VLC Player
* Plasma 上的音频播放使用 Elisa，视频播放使用 Haruna

你可以查看 [发布公告](https://getsol.us/2023/07/08/solus-4-4-released/) 以深入了解这个重大版本更新。

### ? 下载 Solus 4.4

Solus 的此版本有 **四个不同的版本**，你可以从 [官方网站](https://getsol.us/download/) 获取它们。

>
> **[Solus 4.4](https://getsol.us/download/)**
>
>
>

---

via: <https://news.itsfoss.com/solus-4-4-released/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Zorin OS 升级程序现已推出，为你提供无忧的更新体验

Summary: 你终于可以升级 Zorin OS 版本而无需重新安装。虽迟但到。

你终于可以升级 Zorin OS 版本而无需重新安装。虽迟但到。

>
> 你终于可以升级 Zorin OS 版本而无需重新安装。虽迟但到。
>
>
>

![zorin OS](/data/attachment/album/202307/13/154251pj3bb3itstby9si3.jpg)

Zorin OS 无疑是 [最美丽的 Linux 发行版](https://itsfoss.com:443/beautiful-linux-distributions/) 之一。它基于 Ubuntu LTS，以全面的软件包为用户提供类似（但不限于） Windows 的体验。

然而，它缺乏无缝升级方式。

在最近的一份公告中，Zorin OS 背后的人们终于推出了一个新的更新程序来处理该操作系统的所有升级工作！ ?

考虑为什么它是初学者的不错选择之一的另一个原因是什么？ 我想是这样...

>
> **[Zorin OS 是初学者理想选择的 5 个原因](https://news.itsfoss.com/why-zorin-os-beginners/)**
>
>
>

因此，事不宜迟，让我们简单地看一下。

### Zorin OS 更新程序：初步印象 ⭐

![a picture of the zorin os updater banner](/data/attachment/album/202307/13/154251h1xzfggx101h1112.png)

Zorin OS 更新程序的到来是理所当然的，因为多年来开发人员**收到了来自用户的许多请求**，希望能有这样一个的**一站式**解决方案。

以前，想要切换到较新版本或更改变体的用户必须完全重新安装 Zorin OS，并且必须从头开始设置系统。

现在，不用了！

Zorin OS 更新程序是一个简洁的解决方案，允许用户**轻松执行主要版本或变体升级**，而无需全新安装 Zorin OS。

**例如：** 假设你使用的是 Zorin OS 15 Core。你可以使用此应用升级到 Zorin OS 16 Core 甚至 Zorin OS 16 Pro。

好了，继续。

让我们看看更新程序及其工作原理。我们还在本文的底部向你展示了如何使用它。

当你启动该应用时，你将看到一个页面，其中包含 Zorin OS 安装的当前版本/变体以及可用升级的列表。

![a screenshot of the zorin os updater home screen](/data/attachment/album/202307/13/154252udypww7iuspp2pup.jpg)

当你继续操作时，你可以选择包含所有附加功能的正常安装，也可以选择包含核心程序的最小安装。

![a screenshot of the zorin os updater's installation type selection screen](/data/attachment/album/202307/13/154252tf6o8nmcooo2rzq2.jpg)

**如果你要升级到 Zorin OS Pro**，你必须输入你的电子邮件地址和支持代码才能继续升级。

![a screenshot of the zorin os updater's order details screen](/data/attachment/album/202307/13/154252bt8k9kss9gnskhdg.jpg)

之后，你将看到开始升级的最终提示页面。

他们建议你提前备份数据。如果在升级过程中出现问题，你可以回退。

![a screenshot of the zorin os updater's start the upgrade screen](/data/attachment/album/202307/13/154252p9dvvc2f4ccz2d2z.jpg)

升级过程开始时，会显示一个进度页面，其中所有重要的升级阶段都会高亮显示。

![a screenshot of the zorin os updater's upgrade progress screen](/data/attachment/album/202307/13/154252i5amz857znova57l.jpg)

一切设置完毕后，你可以重启系统以完成操作系统升级过程。

![a screenshot of the zorin os updater's final reboot system screen](/data/attachment/album/202307/13/154252vprpwiu1wo8qq217.jpg)

### ? 如何访问 Zorin OS 更新程序

你所需要做的就是**更新你的系统**以安装新的 Zorin OS 升级工具。

但是，它**目前处于 Beta 测试**，尚未作为稳定的工具提供。你可以在接下来的几周内期待它。

>
> ℹ 通过 Zorin 菜单 → <ruby> 系统工具 <rt>  System Tools </rt></ruby> → <ruby> 软件更新程序 <rt>  Software Updater </rt></ruby> 更新你的系统
>
>
>

你可以尝试手动安装测试版，但需要自行承担风险。

打开终端并输入以下命令：

```
sudo apt update
sudo apt install zorin-os-upgrader

```

然后，要开始升级过程，请启动“<ruby> 升级 Zorin OS <rt>  Upgrade Zorin OS </rt></ruby>”应用，然后按照屏幕上的说明进行操作。

**对于 Zorin OS 15 的用户：** 如果你在首次启动升级应用时没有看到任何升级选项，那么需要在终端中运行以下命令：

```
gsettings set com.zorin.desktop.upgrader show-test-upgrades true

```

你可以阅读 [官方帮助指南](https://help.zorin.com:443/docs/getting-started/upgrade-zorin-os/#upgrading-from-zorin-os-15-or-newer) 以获取更多信息。

---

via: <https://news.itsfoss.com/zorin-os-upgrader/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


在 Linux 终端显示动画式 ASCII 生日祝福

巧了，今天是夜羽的生日

来自广东广州的 Chrome Mobile 108.0|Android 12 用户

![](/data/attachment/album/202307/13/162413kvclclvgvhj8qqbz.jpg)

>
> 通过在 Linux 终端创建 ASCII 生日动画，让你所爱的人的特殊日子更加特别。
>
>
>

生日是特殊的日子，从亲朋好友那里收到生日祝福是非常令人满足和愉悦的。

作为 Linux 用户，你可以通过终端给朋友和家人带来一些酷炫的生日祝福。

这是我为 Abhishek 先生的生日制作的生日卡片（或者说动画）。

我们团队的每个人都非常喜欢它，所以我受到请求要按照它做一个教程。我很乐意满足请求，因为这可能对我们的读者有所帮助 ?

>
> ✋ 这个教程需要在终端中编辑配置文件。熟练使用 Linux 终端和命令会更容易理解和跟随本教程。
>
>
>

### 安装 PyBirthdayWish

PyBirthdayWish 是一个小型的 Python 程序，通过它你可以创建漂亮的终端生日祝福，还可以播放音乐！

这个程序本身在 Ubuntu 的默认软件仓库中不可用，你需要使用 Pip 进行安装。

>
> **[PyBirthdayWish GitHub](https://github.com:443/hemantapkh/PyBirthdayWish)**
>
>
>

首先，使用以下命令在 Ubuntu 中 [安装 Pip](https://itsfoss.com/install-pip-ubuntu/)：

```
sudo apt install python3-pip

```

安装完 Pip 后，你可以克隆该存储库并安装该程序：

```
git clone https://github.com/hemantapkh/PyBirthdayWish.git && cd PyBirthdayWish && pip install -r requirements.txt

```

在他们的存储库中，你可以查看 `.requirements.txt` 文件，了解上述命令中所需的依赖项。

安装完成后，在你克隆的 `PyBirthdayWish` 目录中运行以下命令：

```
python3 PyBirthdayWish.py

```

这将要求你按下 `F11` 键，然后按回车键进入全屏模式，然后播放动画。

![](/data/attachment/album/202307/13/162515r8emeo8izzeh8doo.png)

![](/data/attachment/album/202307/13/162516wmqbr0a6w14c6rxr.png)

这里还有音乐，但这里没有展示。

它非常可定制化。**让我展示一下你可以通过这个工具进行的各种级别的可选定制。**

### 创建默认的生日祝福动画

在上述程序中，有三个用于动画的 Python 文件。它们是 `example`（默认）、`art` 和 `artwithstars`。你可以打开这三个文件来了解其内容。

![arts 目录的内容，其中包含默认和用户创建的 art 文件](/data/attachment/album/202307/13/162516rf0fzqdcf009hfrx.png)

现在，如果你想使用 `artwithstars` 文件代替默认的 `example` 文件，在 [任何可用的文本编辑器](https://itsfoss.com/command-line-text-editors-linux/) 中打开 `config.py`，将 `arts` 的条目替换为所需的名称，然后保存，如下面的截图所示：

![在配置文件中将动画设计文件更改为 "art with stars"](/data/attachment/album/202307/13/162517xz2pddghuyp5yn4b.png)

之后，在 `PyBirthdayWish` 目录中运行：

```
python3 PyBirthdayWish.py

```

你将得到新的动画效果。

### 创建自定义的生日祝福

如果你想打印你所爱的人的名字，而不是默认的文字，这需要一点耐心，因为你需要在不破坏原文件的情况下编辑 art 文件。

首先，备份你想要的设计 art 文件。即在同一个 `arts` 目录中将文件复制一份，并给它一个不同的名称，比如 `friend.py`。

现在，用你选择的文本编辑器打开设计 art 文件。将文件中的文字替换为你需要的内容。最好使用符号 `| _ \ /` 等来创建文本和设计。你可以使用一个 [在线工具将文字转换为 ASCII 艺术](https://patorjk.com:443/software/taag/#p=display&f=Big&t=Friend)。

![复制了一个现有的设计文件，并添加了一个新的文字 "Friend"](/data/attachment/album/202307/13/162517so44o9hld8llrl49.png)

>
> ? 输入一个字符将使动画的其余部分向前移动一个字符。同样，删除一个字符会使设计的其余部分向后移动一个字符。因此，如果删除一个字符，请添加一个空格。同样地，如果在某一行上添加了一个新字符，请删除一个空格。这应该实时进行，这样你就可以查看更改。这样，你就可以使剩余的设计匹配，并在完成时保持外观不变。
>
>
>

编辑完成后保存文件。现在，打开 `config.py` 并将 art 文件更改为你的文件，以显示你所做的更改。

![在配置文件中更改设计文件以反映我们所做的更改](/data/attachment/album/202307/13/162518g760971sqmq0zdm0.png)

现在你可以运行程序，以获得你所需的文字出现在动画中：

```
python3 PyBirthdayWish.py

```

### 使用自己的音乐文件

你可以使用自己的音乐文件作为这个动画的一部分。

>
> ? 如果你计划在 YouTube 或其他网站上上传视频，请使用无版权的音乐以避免问题。
>
>
>

将你的音乐文件复制到克隆的目录中。

![自定义的音乐文件被复制到克隆的目录中](/data/attachment/album/202307/13/162518i64qvqqv9scy9qm5.png)

编辑 `config.py` 文件以添加新的音乐，如下面的截图所示：

![在配置文件中添加自定义音乐文件以在动画中播放](/data/attachment/album/202307/13/162519eb04pfdx66zgfibb.png)

完成！现在，如果执行运行命令 `python3 PyBirthdayWish.py`，自定义音乐将与动画一起播放。

### 创建一个可执行文件

**如果你想将上述祝福消息作为可执行文件发送给朋友，这也是可行的。**

关联的 `pyinstaller` 将安装到 `.local/bin` 目录中，它不在你的路径中。

所以使用以下命令将该目录添加到你的路径中，[添加到你的路径中](https://itsfoss.com/add-directory-to-path-linux/)：

```
export PATH=$PATH:/home/team/.local/bin

```

要使其永久生效，将其添加到你的 `~/.bashrc` 文件中。

当你完成 art 文件的编辑并更改配置文件以反映更改后，使用以下命令创建一个可执行文件：

```
pyinstaller --noconfirm --onefile --console --icon "icon.ico" --no-embed-manifest --add-data "arts:arts/"  --add-data "config.py:." --add-data "HappyBirthday.mp3:." --add-data "PyBirthdayWish.py:."  "PyBirthdayWish.py"

```

它将在 `PyBirthdayWish/dist` 目录下创建一个名为 `PyBirthdayWish` 的可执行文件。

![程序创建的自定义可执行文件在文件管理器中显示](/data/attachment/album/202307/13/162520baszqvd0mfdiqqql.png)

将此可执行文件复制并发送给任何想查看它的人。他们可以使用以下命令执行它：

```
./PyBirthdayWish

```

>
> ? 请始终谨慎运行来自未知外部来源的可执行文件。
>
>
>

### 更多终端乐趣

像生日一样，圣诞节也是一个特殊的时刻。如果你愿意，你可以给你的 Linux 桌面增添一些节日气氛。

>
> **[用 Linux 的方式庆祝圣诞节：为你的 Linux 系统增添圣诞气氛](https://itsfoss.com/christmas-linux-wallpaper/)**
>
>
>

如果你喜欢 ASCII 动画，你可能也会喜欢 ASCII 艺术。

>
> **[在 Linux 终端将图像转换为 ASCII 艺术图像](https://itsfoss.com/ascii-image-converter/)**
>
>
>

为什么就止步于此呢？探索更多 ASCII 工具吧。

>
> **[在 Linux 终端生成 ASCII 艺术并从中获得乐趣的 10 个工具](https://itsfoss.com/ascii-art-linux-terminal/)**
>
>
>

享受以这种有趣的方式使用 Linux ?

? 如果你在使用这个工具时遇到任何问题，请告诉我，我会尽力在我所能的范围内提供帮助。

*（题图：MJ/dfa0185d-e9f9-4c1a-886e-e42c9bb8d687）*

---

via: <https://itsfoss.com/birthday-wish-linux-terminal/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Linux 爱好者线下沙龙：LLUG 2023 上海来咯

Summary: 7 月场的活动定了，离开帝都，我们来到了魔都 - 上海。

截至目前还没收到任何活动提醒，这是正常的嘛

已经发邮件了，您收到了么？<br />
或者今天的文章有进一步信息， https://linux.cn/article-16017-1.html

7 月场的活动定了，离开帝都，我们来到了魔都 - 上海。

![](/data/attachment/album/202307/13/175932ck8w40w08eehj4p9.jpg)

6 月份，LLUG 在北京亦庄举办了 2023 年的 [第一次活动](/article-15883-1.html)。活动取得了圆满的 [成功](/article-15929-1.html)，不少小伙伴来线下和我们一起交流技术、分享自己工作中的所思所想。其后，全国各地的小伙伴纷纷响应，想知道下一场 LLUG 活动在哪里举办。

终于， 7 月场的活动定了，离开帝都，我们来到了魔都 - **上海。**

**2023 年 7 月 23 日下午，我们将在上海举行 LLUG 2023 · 上海场，**欢迎大家来到现场，和我们一起交流技术，分享自己工作过程中的所思所想。

本次活动依然由 Linux 中国和 OpenAnolis 社区联合主办，奇虎 360、图灵社区、SlashData 等提供了支持。

> OpenAnolis 社区是国内的顶尖 Linux 发行版社区，我们希望在普及 Linux 知识的同时，也能让中国的 Linux 发行版，为更多人知晓，推动国产发行版的发展和进步。

本次活动我们除了特邀嘉宾分享之外，还增加了“闪电演讲”环节，自愿邀请参与线下活动的同学们，用 5 分钟时间，介绍自己想要分享的内容。

活动地点：**上海市尚嘉中心附近**

![](/data/attachment/album/202307/13/180026xxjdxddeaajwzxdd.jpg)

如果你在上海，又对 Linux、开源、极客、技术等主题感兴趣，欢迎你来到 LLUG 的线下会场，和我们一起，畅聊技术！来到现场参与现场互动，我们将送上技术图书等奖品，鼓励你的勇敢！

![](/data/attachment/album/202307/13/180033y05b2s29u0p8qxrb.jpg)

![](/data/attachment/album/202307/13/175945ynanw84mi1ngbxa5.jpg)

如果你因为有事，没办法来到线下，那也没问题，我们的活动也会在 Linux 中国视频号、Linux 中国 B 站账号等开启同步直播。

当然，我们更希望你能亲自来到线下，和我们一起畅聊技术！感受久违的当面聊技术的快乐！

**点击下面的链接，填写问卷即可报名活动，并在活动前收到我们的提醒**～此外，也可以在问卷中反馈你想听的内容，我们将竭尽所能，邀请行业专家，针对大家感兴趣的话题进行分享。

>
> **[点此报名](https://jinshuju.net/f/R1YHy0)**
>
>
>

*（题图：MJ/20bf5b71-9de8-4bbf-ab63-a5cc5cc215bc）*


硬核观察 #1061 华为有望克服美国禁令重返 5G 手机市场

Summary:
? 华为有望克服美国禁令重返 5G 手机市场
? 谷歌应用商店将允许在应用和游戏中使用 NFT
? 迪士尼和 Netflix 等反对 FTC 简化取消订阅流程的提议
»
»

华为死快点

![](/data/attachment/album/202307/13/190329wywgyf3zy0wwe0y3.jpg)

![](/data/attachment/album/202307/13/190344craq3orrqcjrojri.jpg)

### 华为有望克服美国禁令重返 5G 手机市场

三家覆盖中国智能手机行业的第三方技术研究公司告诉路透社，华为应该能够利用自身在半导体设计工具方面的进步，以及中芯国际的芯片制造，在中国国内采购 5G 芯片。关于半导体设计工具，我们几个月前在 [#951](/article-15661-1.html) 报道过，华为称已开发出自己的 14 纳米芯片设计套件。华为曾一度与苹果和三星争夺全球最大手机制造商的地位，直到 2019 年开始的一轮美国限制措施，切断了其获得生产最先进机型所必需的芯片制造工具的渠道。

>
> **[消息来源：路透社](https://www.reuters.com/technology/chinas-huawei-poised-overcome-us-ban-with-return-5g-phones-research-firms-2023-07-12/)**
>
>
>

>
> 老王点评：终于见到光明了，终究还是得自给自足才行。
>
>
>

![](/data/attachment/album/202307/13/190400s8glx7lpx6wlcxk6.jpg)

### 谷歌应用商店将允许在应用和游戏中使用 NFT

谷歌今天宣布了一项重大的政策调整，允许开发者将 NFT 等数字资产纳入其商店中的应用和游戏。谷歌称，这将允许合作伙伴重新想象 “用户拥有内容的传统游戏”，并 “通过独特的 NFT 奖励提高用户忠诚度”。决定提供购买、出售或赚取代币化资产能力的公司将被要求明确说明应用程序中存在基于区块链的元素。

>
> **[消息来源：Coindesk](https://www.coindesk.com/web3/2023/07/12/google-play-changes-policy-on-tokenized-digital-assets-allowing-nfts-in-apps-and-games/)**
>
>
>

>
> 老王点评：似乎 NFT 热潮已经过去一段时间了，连元宇宙都没什么人提了。偏偏在这个时候，谷歌打开了大门。不太理解背后发生了什么。
>
>
>

![](/data/attachment/album/202307/13/190416j9ncgxghw5bh59fg.jpg)

### 迪士尼和 Netflix 等反对 FTC 简化取消订阅流程的提议

如今各种服务都在努力吸引用户订阅，但如果你想终止某个服务的订阅就不是那么容易了。美国联邦贸易委员会（FTC）宣布了被称为 “点击取消” 的提议，要求企业让取消服务和订阅一样简单。企业不能够让用户在网上订阅服务，但取消的操作却要通过电话来完成。也不能对于服务设定不取消就默认续订，而是企业需要每年提醒用户。包括迪士尼、派拉蒙、华纳兄弟、Netflix、索尼、环球影业等公司在内的行业组织对 FTC 的提议提出反对意见，认为拟议的法规过于模糊，会导致营销人员过度披露信息。它们甚至认为该提议会违反美国宪法第一修正案，侵犯其成员的“言论自由权”。

>
> **[消息来源：Business Insider](https://www.businessinsider.com/hollywood-streamers-oppose-ftc-proposal-regulation-click-to-cancel-subscription-2023-7)**
>
>
>

>
> 老王点评：这种上船容易下船难的做法，早就该管管了。为啥我就一直不喜欢订阅服务——虽然我最近增加了不少订阅服务，我甚至觉得有必要用个应用来专门管理订阅服务。
>
>
>


Linux 桌面的十个最佳光标主题

Summary: 一个用于各种 Linux 桌面的最佳光标主题的混合列表。

花哨

其实很多系统自带的 DMZ 主题就挺不错的（一般含在 dmz-cursor-theme 包之中），有黑、白两套主题。Pop 主题也不错（在 pop-icon-theme 包之中），在 DMZ Black 的基础上做了一些微调。另外，如果厌倦了箭头形状的指针主题，也可以试一试 bloom 主题（在 deepin-icon-theme 包之中），是独特的三角形指针，富有个性而不失简洁。

一个用于各种 Linux 桌面的最佳光标主题的混合列表。

![](/data/attachment/album/202307/14/134252egg40xxdg33vvr3r.jpg)

>
> 一个用于各种 Linux 桌面的最佳光标主题的混合列表。
>
>
>

在 [定制 Linux 桌面](https://www.debugpoint.com/category/themes) 时，我们经常忽视光标主题。一个经过深思熟虑选择的光标主题可以提升你的 Linux 桌面，增添个性化的风格并提升整体美感。从简约而精致的设计到奇妙而有趣的动画，这里是十个适合每个人的最佳光标主题。

### 如何在 Linux 桌面下载和安装光标主题

对于下面列出的所有主题，在相应页面上找到下载链接。下载压缩文件并解压缩。然后，将顶层的主题文件夹复制到 Linux 发行版中的 `~/.icons` 或 `/usr/share/icons` 目录中。然后按照下面的步骤进行相应桌面的设置。

#### Xfce

从应用菜单中选择 “<ruby> 设置 <rt>  Settings </rt></ruby> > <ruby> 设置管理 <rt>  Settings manager </rt></ruby> > <ruby> 鼠标和触摸板 <rt>  Mouse and Touchpad </rt></ruby>”。然后转到 “<ruby> 主题 <rt>  Themes </rt></ruby>” 选项卡并选择相应的光标主题。你还可以选择光标大小。

![在 Xfce 桌面设置光标主题](/data/attachment/album/202307/14/134717pegzefg5339sl8wg.jpg)

#### KDE Plasma

从 KDE 应用菜单打开 “<ruby> 系统设置 <rt>  System Settings </rt></ruby>”。然后选择 “<ruby> 工作空间主题 <rt>  Workspace theme </rt></ruby> > <ruby> 光标 <rt>  Cursors </rt></ruby>”。选择主题并点击 “<ruby> 应用 <rt>  Apply </rt></ruby>”。

![在 KDE Plasma 桌面设置光标主题](/data/attachment/album/202307/14/134726rmg1ur861uc06s01.jpg)

#### GNOME

对于 GNOME 桌面，请安装 GNOME “<ruby> 调整 <rt>  Tweaks </rt></ruby>” 工具。你可以在基于 Debian 的系统上使用以下命令进行安装。

```
sudo apt install gnome-tweak-tool

```

安装后，你可以打开 GNOME 调整工具并选择 “<ruby> 外观 <rt>  Appearance </rt></ruby>”。然后从下拉菜单中选择光标。

![GNOME Tweaks](/data/attachment/album/202307/14/134734lh3p831v44tu8qcp.jpg)

### Linux 的最佳光标主题

#### Bibata

Bibata 是一套备受赞誉的光标主题，已成为寻求个性化体验的用户的最爱。这个主题因其独特的圆角外观和各种颜色选项而最近变得流行起来。

这个多功能主题有各种变体，包括 Bibata Original Amber 和 Bibata Modern Amber，分别具有带有黄色调的尖锐或圆角边缘。同样，Bibata Original Classic 和 Bibata Modern Classic 提供带有尖锐或圆角边缘的黑色光标。而 Bibata Original Ice 和 Bibata Modern Ice 提供带有尖锐或圆角边缘的白色光标。

![Bibata Ice](/data/attachment/album/202307/14/134742n4bz4btuhr1zvr14.jpg)

![Bibata Classic](/data/attachment/album/202307/14/134748eygccoagozdviczc.jpg)

![Bibata Amber](/data/attachment/album/202307/14/134754jnd3tf231yh3hst2.jpg)

你可以从下面的页面下载这个主题。

>
> **[下载 Bibata 光标（Ice）](https://www.gnome-look.org/p/1197198/)**
>
>
>

#### Phinger

Phinger 光标以其复杂的设计和精心的工程而闻名，是最复杂和“过度设计”的光标主题之一。它与 GNOME、MATE 和 Xfce 桌面环境兼容，并为不同 Linux 发行版的用户提供了多功能选项。该主题拥有黑白两种变体，确保简约而精致的光标体验。

![Phinger 光标](/data/attachment/album/202307/14/134802g9yyxl2llppyczwl.jpg)

你可以从下面的页面下载它，并按照上面给出的说明进行安装。

>
> **[下载 Phinger 光标](https://github.com/phisch/phinger-cursors)**
>
>
>

#### Comix

Comix 光标是个早期的光标主题，为你的 Linux 桌面注入了令人愉悦的漫画风格。这个 X11 鼠标主题包含 12 个独特的光标主题，每个主题都设计成在提升桌面工作流程的同时唤起一种活泼有趣的氛围。

![Comix 光标](/data/attachment/album/202307/14/134809ku5f1z1ayn442ynb.jpg)

Comix 光标提供了六种颜色选择（黑色、蓝色、绿色、橙色、红色和白色），为用户提供了一系列选择，以适应他们的个人风格和桌面美学。Comix 主题中的每个光标都具有微妙的阴影效果，为其注入活力和深度。这种动态元素增强了光标的视觉吸引力，并为桌面工作流程增添了一种动感。

你可以从下面的页面下载这个光标主题。

>
> **[下载 Comix 光标](https://www.gnome-look.org/p/999996)**
>
>
>

#### McMojave

McMojave 光标从 macOS 获得灵感，是一个 x-cursor 主题，它基于流行的 capitaine-cursors 主题。这个主题旨在重新创建在 macOS 中找到的熟悉的光标样式，让 Linux 用户在他们的桌面上享受一丝 Mac 的体验。

（LCTT 译注：x-cursor 是一种标准，用于描述和命名光标主题的文件格式和规范。x-cursor 主题通常用于 Linux 操作系统中的桌面环境，如 GNOME、KDE 和 Xfce。）

![McMojave 光标](/data/attachment/album/202307/14/134821betwwipbe5nxxvvi.jpg)

尽管 McMojave 光标旨在重现 macOS 的光标体验，但它也为喜欢添加个人特色的用户提供了自定义选项。用户可以根据自己的喜好进行调整和修改，从而在 Linux 上实现个性化的光标体验。

你可以从下面的页面下载 McMojave 光标。

>
> **[下载 McMojave 光标](https://github.com/vinceliuice/McMojave-cursors)**
>
>
>

#### Layan

Layan 光标是一个 x-cursor 主题，灵感来自受欢迎的 Layan GTK 主题，并融入了成熟的 capitaine-cursors 的元素。这个独特的光标主题给 Linux 桌面体验增添了一丝时髦感。

与传统的箭头形状光标不同，Layan 光标采用了独特的椭圆形状设计。这种非传统的形状为整体光标体验增添了一种活泼和时髦的元素，使它与更传统的主题有所区别。

![Layan 光标](/data/attachment/album/202307/14/134834byeol45ffvd4qy5k.jpg)

你可以使用下面的链接进行下载。

>
> **[下载 Layan 光标](https://www.gnome-look.org/p/1365214/)**
>
>
>

#### Material

Material 光标是 Linux 用户长期以来的最爱，提供了一个视觉上吸引人的光标主题，得到了无数忠实用户的认可。该光标主题有三种颜色变体，即 Material（蓝灰）、Dark 和 Light，以及从 24 像素到 64 像素的多种尺寸选项，适应了各种偏好和桌面环境。

![Material 光标](/data/attachment/album/202307/14/134843j6oo43bo7taowr2h.jpg)

成千上万的人每天都依赖于这个光标主题，展示了它持久的吸引力和可靠性。

凭借其三种颜色变体、多样的尺寸选项和广泛的采用，这个光标主题旨在提升你 Linux 桌面的美学，提供令人愉悦和沉浸式的光标体验。

你可以使用下面的链接下载这个光标主题。

>
> **[下载 Material 光标](https://www.gnome-look.org/p/1346778/)**
>
>
>

#### Oreo

Oreo 光标以其丰富多彩的材质设计和迷人的动画为你的 Linux 桌面增添了令人愉悦的元素。这些光标旨在为你的光标体验增添一丝奇趣和个性。

![Oreo 光标](/data/attachment/album/202307/14/134850wtp767g6ogtr77z6.jpg)

Oreo 光标的独特之处在于其迷人的动画效果。这些动画光标注入了一种活泼和生动的元素，使你与桌面的交互感觉更具吸引力和愉悦感。

此外，这个主题通过提供自定义颜色生成器更进一步。用户可以使用配置文件创建自己的光标颜色方案，为光标设计带来无限的可能性和个性化。

你可以使用下面的链接下载这个主题。

>
> **[下载 Oreo 光标](https://www.gnome-look.org/p/1360254/)**
>
>
>

#### Bibata Rainbow

Bibata Rainbow 光标扩展自受欢迎的 Bibata 光标主题，引入了半动画的彩虹颜色，增强了你的 Linux 桌面体验。这些光标是使用 clickgen 精心制作，并用 puppeteer 渲染的，确保高质量的视觉效果和平滑的动画。

![Bibata Rainbow](/data/attachment/album/202307/14/134859hvrzvnxqeezfzeol.jpg)

Bibata Rainbow 中的每个光标包含大约 23 个帧，即使在 HiDPI（高像素密度）环境下，也能实现平滑的动画效果。这确保了具有高分辨率显示屏的用户可以享受无缝和视觉上令人愉悦的光标体验。

你可以使用下面的链接下载 Bibata Rainbow 光标主题。

>
> **[下载 Bibata Rainbow 光标](https://www.gnome-look.org/p/1445634/)**
>
>
>

#### Miniature

Miniature 光标是从一个同名 Windows 光标主题移植的，它提供了一种以小尺寸为特点的独特光标体验。顾名思义，这些光标被设计成紧凑型，可能非常适合各种用途。该主题整体采用清晰的白色，并提供了一个扁平设计和一个带有微妙阴影效果的变体。

![Miniature 光标](/data/attachment/album/202307/14/134909b9jb9d3jyl0y8hjk.jpg)

你可以从下面的链接下载这个光标主题。

>
> **[下载 Miniature 光标](https://github.com/nxll/miniature)**
>
>
>

#### Capitaine

Capitaine 光标是一个 x-cursor 主题，灵感来自 macOS，基于 KDE Breeze 图标包，提供了一种视觉上协调的光标体验。这个光标主题旨在与 La Capitaine 图标包完美配合，为你的 Linux 桌面创建一个统一的视觉风格。

![Capitaine Cursors](/data/attachment/album/202307/14/134916c41aii4ab6z44bmm.jpg)

Capitaine 光标提供了白色和黑色两种变体，让用户可以根据自己的桌面环境或个人偏好选择最合适的颜色。无论你喜欢浅色还是深色光标，Capitaine 光标都能满足你的需求。

你可以使用下面的链接下载这个主题。

>
> **[下载 Capitaine 光标](https://github.com/keeferrourke/capitaine-cursors)**
>
>
>

### 结论

在本文中，我们介绍了一些令人着迷的 Linux 光标主题，展示了一系列受欢迎的选择，可以改变你与桌面的交互方式。我希望你能找适合你 Linux 桌面上喜爱的主题或图标包的完美光标。

以上所有的光标主题都在最新的发行版和桌面版本中进行了测试。你可以尝试它们！

图片来源：各个主题作者。

*（题图：MJ/35aaca9e-9ff3-49f2-b311-20e7fcfb5c9d）*

---

via: <https://www.debugpoint.com/best-cursor-themes/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed/) 译者：ChatGPT 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


构建成功的开源项目的重要建议

Summary: 使用这些步骤来为你的第一个或接下来的项目打下坚实的基础。

长知识了

使用这些步骤来为你的第一个或接下来的项目打下坚实的基础。

![](/data/attachment/album/202307/14/145640gqnqawqqqhqqh65w.jpg)

>
> 使用这些步骤来为你的第一个或接下来的项目打下坚实的基础。
>
>
>

[开源](https://opensource.com/resources/what-open-source) 是一个蓬勃发展且有益的生态系统，它通过分散模式和社区贡献开发的软件，公开解决社区和行业问题。

随着这个生态系统的爆炸式发展，许多开发者想要参与并且构建新的开源项目。问题是：如何成功实现这一目标呢？

这篇文章将会揭秘开源项目的生命周期与结构。给你一个对开源项目内部运作的概述，并根据我个人的经验，向你展示如何构建一个成功和可持续发展的项目。

### 对开源的简单概述

<ruby> <a href="https://opensource.org">  开源促进会 </a> <rt>  Open Source Initiative </rt></ruby>（OSI）提供了对“<ruby> 开源 <rt>  Open Source </rt></ruby>”的正式、详细的定义，但是维基百科提供了一个很好的总结：

>
> 开源软件是指根据许可证发布的计算机软件，版权持有人授予用户使用、研究、更改和向任何人、为了任何目的分发软件和它的源代码的权利。
>
>
>

开源软件通常在网络上有公开的代码，它由多人合作或一人开发。这就需要与来自不同地区、不同文化和不同技术背景的人合作，而且往往是远程合作。

### 开源项目的构成

就像人类的身体，一个开源项目由多个结构组成，这些结构构成了整个系统。我认为它们是两个分支：人员（微观）和文档（宏观）。

#### 分支一：人员

通常，一个开源项目包括以下人群：

* 创建者：创建项目的人
* 维护者：积极管理整个项目的人
* 贡献者：为项目做贡献的人（像你一样的人！）
* 用户：使用这个项目的人，包括开发者和非技术客户
* 工作组：将贡献者分成特定领域的小组，专注于围绕特定主题领域（如文档、指引、测试、DevOps、代码审查、性能、研究等）的集合。
* 赞助人：为项目提供资金支持的人

当你准备构建一个新项目时，你需要考虑以上列表中的每一个群组。你对他们每个人有什么计划？

* 对于维护者，请确定任用维护者的标准。通常，积极的贡献者就是最适合的维护者。
* 对于用户和贡献者，你需要准备可靠的文档、引导流程和他们使用你的项目取得成功所需的一切。
* 对于工作组，请确定你是否需要它们，以及你的项目将来如何有逻辑地拆分。
* 最后，对于赞助人，你必须提供足够的数据和有关你项目的信息，以便他们选择赞助你。

你不必在你项目的起始阶段解决上面所有问题。然而，在早期阶段思考它们是很明智的，这样你就能打下正确的基础，确保未来的扩建项目能够站稳脚跟并取得成功。

#### 分支二：文档

开源项目通常包括下列文档，通常为纯文本或 markdown 格式：

* 许可证（`License`）： 这份法律文件解释了如何以及在何种程度上可以自由使用、修改和共享本项目。OSI 网站上有 OSI 认可的许可证列表。如果没有明确的许可证，你的项目在法律上就不是开源的！
* 行为准则：该文件概述了任何决定以任何方式参与项目的人的规则、规范、可接受做法和责任（包括当有人违反任何规则时会发生什么）。[贡献者公约](https://www.contributor-covenant.org/version/2/1/code_of_conduct) 是一个很好的示例，它是开源的（采用知识共享许可协议）。
* 自述文件（`README`）：这个文件向新用户介绍你的项目。在很多 Git 托管网站上，比如 GitLab、GitHub 和 Codeberg，自述文件会显示在仓库的初始文件列表下。这里通常会提供文档，以及其他必要文档的链接。
* 文档（`Documentation`）：这是一个包含所有本项目文件资源的文件或目录，包括指南、API 参考、教程等。
* 贡献指南（`Contributing`）：包含一份说明如何为项目做出贡献的文件，包括安装指南、配置等。
* 安全（`Security`）：包括一个解释如何提交漏洞报告或安全问题的文件。

此外，一个项目通常有用于议题、支持和协作的网页。

大致包括：

* 议题或错误报告：用户可以报告错误的地方。该页面还为开发人员提供了一个地方，让他们可以分配自己的任务来修复一个或多个错误。
* 拉取或合并请求：提供功能增强建议和错误解决方案的地方。这些补丁可以由任何人创建，由维护者审核，然后合并到项目代码中。
* 讨论：维护者、贡献者和用户讨论开源项目的地方。它可以是一个专门的网站，也可以是协作编码网站中的一个论坛。

大多数项目还通过在线聊天的形式为社区成员之间的对话和互动提供交流渠道。

### 许可证

[许可证](https://opensource.com/tags/licensing) 也许是创建开源项前需要考虑的最简单但也是最重要的标准。许可证定义了允许使用、修改和共享项目源代码和其他组件的条款和条件。

许可证包含大量的法律术语，很多人并不完全理解。我使用 [choosealicense.com](https://choosealicense.com)，它可以帮助你根据你的目标社区、你从使用你的代码的人那里获得补丁的愿望，或者你允许别人使用你的代码而不分享他们对你的代码所做的改进来选择许可证。

![图片由： (Bolaji Ayodeji, CC BY-SA 4.0)](/data/attachment/album/202307/14/145653fovw6fm0vzvo5mvp.png)

这为何时使用 MIT 许可或 GNU GPLv3 许可提供了指导。它还建议为社区做出贡献的人们使用该社区所偏好的许可证。该图表还指出，还有更多许可证可供选择。网站 [choosealicense.com](http://choosealicense.com) 有一个基于文本的版本，可以链接到更详细的信息。

### 创建一个开源项目的 13 个阶段

现在是关键问题：如何开始开源软件项目？

以下是我所认为的开源项目的各个阶段。

1. 集思广益，撰写提纲，妥善记录。
2. 开始根据你的想法进行开发。这通常包括确定要使用的正确工具和技术栈、编写一些代码、对代码进行版本控制、调试、喝点咖啡、在 StackOverflow 上闲逛、使用其他开源项目、睡觉、构建一些东西来解决确定的问题 —— 或者只是为了好玩！
3. 在本地测试项目，根据需要编写一些单元测试和集成测试，根据需要设置 [CI/CD 管道](https://opensource.com/article/19/9/intro-building-cicd-pipelines-jenkins)，创建一个暂存分支（在合并到主分支之前测试代码的测试分支），并完成部署项目所需的其他工作。
4. 编写 [良好有效的文档](https://slides.com/bolajiayodeji/effective-oss-docs)。这应该包括你的项目是做什么的，为什么它是有用的，如何开始使用它（使用、安装、配置、贡献），以及人们在哪里可以得到支持。
5. 确保记录所有你希望使用的代码约定。使用诸如 <ruby> 代码检查工具 <rt>  Linter </rt></ruby>、代码格式化工具、Git 钩子和 <ruby> 注释规范化工具 <rt>  Commitizen </rt></ruby> 命令行工具等工具来执行这些约定。
6. 选择合适的许可证并创建自述文件。
7. 在互联网上发布项目（可能最初是一个私有的资源库，在这一步将其公开）。
8. 建立发布和记录更新日志的流程（你可以使用 Changesets 等工具）。
9. 向全世界推广项目！你可以在社交媒体上发帖、创办新闻简讯、私下与朋友分享、进行产品发布、现场直播或其他任何你知道的传统营销策略。
10. 使用任何可用的融资平台寻求资金支持，如 Open Collective、GitHub Sponsors、Patreon、Buy me a Coffee、LiberaPay 等。当你在这些平台上创建账户时，请在项目文档和网站中添加相关链接。
11. 围绕你的项目建立一个社区。
12. 在必要时，考虑引入工作组，将项目管理分成合理的部分。
13. 不断实施新理念，维持项目背后的资源和人员。

随着项目的进展，对项目的不同部分进行评估非常重要。这将为你提供可用于评估和未来发展战略的数据。

### 现在开始一个项目吧！

我希望这篇文章能帮助你推进你一直在考虑的项目。

你可以将其用作指南，并在构建你的一流开源软件项目时填补我遗漏的任何空白。

*（题图：MJ/a22b4011-9b1e-41e6-a73f-bdeac4858007）*

---

via: <https://opensource.com/article/22/9/build-open-source-project>

作者：[Bolaji Ayodeji](https://opensource.com/users/bolajiayodeji) 选题：[lkxed](https://github.com/lkxed) 译者：[wcjjdlhws](https://github.com/wcjjdlhws) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #1062 AlmaLinux 不再追求与 RHEL 的 1:1 兼容性

Summary:
? AlmaLinux 不再追求与 RHEL 的 1:1 兼容性
? 好莱坞想要永远免费得到龙套演员的人工智能复制品
? 2027 年欧盟销售的智能手机电池需要可更换
»
»

太好啦～<br />
手机模块化有戏啦

![](/data/attachment/album/202307/14/161516vclls60cosc83666.jpg)

![](/data/attachment/album/202307/14/161528whem7uv1ai1emvvv.jpg)

### AlmaLinux 不再追求与 RHEL 的 1:1 兼容性

随着红帽对 RHEL 源代码库的限制访问，虽然 Rocky Linux 已经表示 [找到](/article-15956-1.html) 了继续发布 1:1 克隆品的解决方案，但 AlmaLinux “决定放弃与 RHEL 1:1（兼容）的目标”。退而求其次，AlmaLinux 将在可能的范围内与 RHEL 保持一致并兼容应用二进制接口（ABI），这样在 RHEL 上运行的软件也可以在 AlmaLinux 上运行。对于典型的用户，这将意味着你在使用 AlmaLinux 时几乎不会有什么变化。最大的变化是，AlmaLinux 将不再与红帽保持 “问题级的兼容性”，现在可以接受红帽发布周期之外的问题修复。虽然这意味着一些 AlmaLinux 的用户可能会遇到 RHEL 中没有的问题，但 AlmaLinux 也可能会接受尚未被 RHEL 接受的补丁。

>
> **[消息来源：Almalinux](https://almalinux.org/blog/future-of-almalinux/)**
>
>
>

>
> 老王点评：这就是红帽的目的吧？最终这些精确克隆品的结果可能都这样吧。但是我很怀疑红帽以后还会给建立 ABI 兼容也制造“没必要提供的”麻烦。
>
>
>

![](/data/attachment/album/202307/14/161541i7qr5kqih67w5iqs.jpg)

### 好莱坞想要永远免费得到龙套演员的人工智能复制品

好莱坞的演员们将要举行一场罢工，主要的原因是好莱坞电影公司的一项以“保护演员的数字肖像权”为名义的人工智能提案。在该提案中，那些经常出现在背景中的龙套演员会被一次性扫描，而电影公司将拥有他们的扫描件、形象、肖像，并且能在他们想要的任何项目中永远使用，无需同意，无需补偿。使用生成式人工智能一直是双方谈判的主要症结之一。组织罢工的演员工会表示，“如果我们现在不站得高一点，我们都会有麻烦，我们都会面临被机器取代的危险。”

>
> **[消息来源：The Verge](https://www.theverge.com/2023/7/13/23794224/sag-aftra-actors-strike-ai-image-rights)**
>
>
>

>
> 老王点评：别说是龙套，就是主角和配角，将来都会全是 AI 制品，早晚而已。
>
>
>

![](/data/attachment/album/202307/14/161614svv0ygvnhlvhlzza.jpg)

### 2027 年欧盟销售的智能手机电池需要可更换

6 月中旬，欧洲议会投票通过新立法，要求智能手机等消费设备的电池必须易于拆卸和更换。本周，欧洲理事会正式同意了这项新法规。任何想要在欧盟销售手机的制造商必须确保这些手机在 2027 年之前拥有可更换电池。

>
> **[消息来源：Android Authority](https://www.androidauthority.com/phones-with-replaceable-batteries-2027-3345155/)**
>
>
>

>
> 老王点评：自从智能手机开始流行，不知道为什么大家就接受了电池不可更换的做法。现在，欧洲带了一个好头。
>
>
>

### 回音

* Bcachefs 在进入 Linux 6.5 受阻后，计划两个月 [再次尝试](https://www.phoronix.com/news/Bcachefs-Plans-For-Linux-6.6) 进入 Linux 6.6。


Bash 基础知识系列 #3：传递参数和接受用户输入

![](/data/attachment/album/202307/15/094330dzt3s3ygshsst39t.jpg)

>
> 在 Bash 基础系列的这一章中，学习如何向 Bash 脚本传递参数并使它们具有交互性。
>
>
>

来让 Bash 脚本有参数吧 ?

你可以通过向 Bash 脚本传递变量来使其更加有用和更具交互性。

让我通过示例详细向你展示这一点。

### 将参数传递给 Shell 脚本

当你运行 Shell 脚本时，你可以按以下方式向其中添加其他变量：

```
./my_script.sh var1 var2

```

在脚本内部，你可以使用 `$1` 作为第一个参数，`$2` 作为第二个参数，依此类推。

>
> ? `$0` 是一个特殊变量，保存正在执行的脚本的名称。
>
>
>

让我们通过一个实际的例子来看看。切换到保存练习 Bash 脚本的目录。

```
mkdir -p bash_scripts && cd bash_scripts

```

现在，创建一个名为 `arguments.sh` （我想不出更好的名称）的新 Shell 脚本，并向其中添加以下行：

```
#!/bin/bash

echo "Script name is: $0"
echo "First argument is: $1"
echo "Second argument is: $2"

```

保存文件并使其可执行。现在像往常一样运行脚本，但这次向其中添加任意两个字符串。你将看到屏幕上打印的详细信息。

>
> ? 参数由空格（空格、制表符）分隔。如果参数中有空格，请使用（英文）双引号将其引起来，否则它将被视为单独的参数。
>
>
>

![Pass arguments to the bash scripting](/data/attachment/album/202307/15/094358q0i6ji6i0wlzjgr4.png)

>
> ? Bash 脚本最多支持 255 个参数。但对于参数 10 及以上，你必须使用花括号 `${10}`、`${11}`...`${n}`。
>
>
>

正如你所看到的，`$0` 代表脚本名称，而其余参数存储在编号变量中。你还可以在脚本中使用一些其他特殊变量。

| 特殊变量 | 变量描述 |
| --- | --- |
| `$0` | 脚本名称 |
| `$1`、`$2`、……`$9` | 脚本参数 |
| `${n}` | 脚本参数从 10 到 255 |
| `$#` | 参数数量 |
| `$@` | 所有参数 |
| `$$` | 当前 Shell 的进程 ID |
| `$!` | 最后执行的命令的进程 ID |
| `$?` | 最后执行命令的退出状态 |

>
> ?♀ 修改上面的脚本以显示参数数量。
>
>
>

#### 如果参数数量不匹配怎么办？

在上面的示例中，你为 Bash 脚本提供了两个参数并在脚本中使用了它们。

但是，如果你只提供一个参数或三个参数怎么办？

让我们实际做一下吧。

![Passing fewer or more arguments to bash script](/data/attachment/album/202307/15/094358v3tirygha3xgeagb.png)

正如你在上面所看到的，当你提供的参数超出预期时，结果仍然是一样的。不使用其他参数，因此不会产生问题。

但是，当你提供的参数少于预期时，脚本将显示空白。如果脚本的一部分依赖于缺少的参数，这可能会出现问题。

### 接受用户输入并制作交互式 Bash 脚本

你还可以创建提示用户通过键盘提供输入的 Bash 脚本。这使你的脚本具有交互性。

`read` 命令提供了此功能。你可以这样使用它：

```
echo "Enter something"
read var

```

上面的 `echo` 命令不是必需的，但最终用户不会知道他们必须提供输入。然后用户在按回车键之前输入的所有内容都存储在 `var` 变量中。

你还可以显示提示消息并在单行中获取值，如下所示：

```
read -p "Enter something? " var

```

让我们看看它的实际效果。创建一个新的 `interactive.sh` Shell 脚本，内容如下：

```
#!/bin/bash

echo "What is your name, stranger?"
read name
read -p "What's your full name, $name? " full_name
echo "Welcome, $full_name"

```

在上面的示例中，我使用 `name` 变量来获取名称。然后我在提示中使用 `name` 变量，并在 `full_name` 变量中获取用户输入。我使用了两种使用 `read` 命令的方法。

现在，如果你授予执行权限，然后运行此脚本，你会注意到该脚本显示 `What is your name, stranger?`，然后等待你从键盘输入内容。你提供输入，然后它会显示 `What's your full name` 消息，并再次等待输入。

以下是供你参考的示例输出：

![Interactive bash shell script](/data/attachment/album/202307/15/094358tpp663rn649w6wrr.png)

### ? 练习时间

是时候练习你所学到的东西了。尝试为以下场景编写简单的 Bash 脚本。

**练习 1**：编写一个带有三个参数的脚本。你必须使脚本以相反的顺序显示参数。

预期输出：

```
abhishek@itsfoss:~/bash_scripts$ ./reverse.sh ubuntu fedora arch
Arguments in reverse order:
arch fedora ubuntu

```

**练习 2**：编写一个脚本，显示传递给它的参数数量。

提示：使用特殊变量 `$#`。

预期输出：

```
abhishek@itsfoss:~/bash_scripts$ ./arguments.sh one and two and three
Total number of arguments: 5

```

**练习 3**：编写一个脚本，将文件名作为参数并显示其行号。

提示：使用 `wc` 命令来计算行号。

你可以在社区中讨论你的解决方案。

很好！ 现在你可以（传递）参数了 ? 在下一章中，你将学习在 Bash 中执行基本数学运算。

*（题图：MJ/5a75aa2f-1cb1-4009-a4e6-683cf61bc892）*

---

via: <https://itsfoss.com/bash-pass-arguments/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lkxed](https://github.com/lkxed/) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出