优化 Kubernetes 中的 Java 无服务器函数

# 优化 Kubernetes 中的 Java 无服务器函数

>
> 在 Kubernetes 中运行无服务器函数时，实现更快的启动速度和更小的内存占用。
>
>
>

由于运行上千个应用程序<ruby> 容器荚 <rt>  Pod </rt></ruby>所耗费的资源多，令它实现较少工作节点和资源占用所需成本也较高，所以在使用 [Kubernetes](https://opensource.com/article/19/6/reasons-kubernetes) 时，快速启动和较少的内存占用是至关重要的。在 Kubernetes 平台运行容器化微服务时，内存占用是比吞吐量更重要的考量因素，这是因为：

* 由于需要持续运行，所以耗费资源更多（不同于 CPU 占用）
* 微服务令开销成本成倍增加
* 一个单体应用程序变为若干个微服务的情况（例如 20 个微服务占用的存储空间约有 20GB）

这些情况极大影响了无服务器函数的发展和 Java 部署模型。到目前为止，许多企业开发人员选择 Go、Python 或 Node.js 这些替代方案来解决性能瓶颈，直到出现了 [Quarkus](https://quarkus.io/) 这种基于 kubernetes 的原生 Java 堆栈，才有所改观。本文介绍如何在使用了 Quarkus 的 kubernetes 平台上进行性能优化，以便运行无服务器函数。

### 容器优先的设计理念

由于 Java 生态系统中传统的框架都要进行框架的初始化，包括配置文件的处理、`classpath` 的扫描、类加载、注解的处理以及构建元模型，这些过程都是必不可少的，所以它们都比较耗费资源。如果使用了几种不同的框架，所耗费的资源也是成倍增加。

Quarkus 通过“<ruby> 左移 <rt>  shifting left </rt></ruby>”，把所有的资源开销大的操作都转移到构建阶段，解决了这些 Java 性能问题。在构建阶段进行代码和框架分析、字节码转换和动态元模型生成，而且只有一次，结果是：运行时可执行文件经过高度优化，启动非常快，不需要经过那些传统的启动过程，全过程只在构建阶段执行一次。

更重要的是：Quarkus 支持构建原生可执行文件，它具有良好性能，包括快速启动和极小的<ruby> 驻留集大小 <rt>  resident set size </rt></ruby>（RSS）内存占用，跟传统的云原生 Java 栈相比，具备即时扩展的能力和高密度的内存利用。

这里有个例子，展示如何使用 Quarkus 将一个 [Java 无服务器](https://opensource.com/article/21/5/what-serverless-java) 项目构建为本地可执行文件。

### 1、使用 Quarkus 创建无服务器 Maven 项目

以下命令生成一个 Quarkus 项目，（例如 `quarkus-serverless-native`）以此创建一个简单的函数：

```
$ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \
       -DprojectGroupId=org.acme \
       -DprojectArtifactId=quarkus-serverless-native \
       -DclassName="org.acme.getting.started.GreetingResource"

```

### 2、构建一个本地可执行文件

你需要使用 GraalVM 为 Java 程序构建一个本地可执行文件。你可以选择 GraalVM 的任何发行版，例如 [Oracle GraalVM Community Edition (CE)](https://www.graalvm.org/community/) 或 [Mandrel](https://github.com/graalvm/mandrel)（Oracle GraalVM CE 的下游发行版）。Mandrel 是为支持 OpenJDK 11 上的 Quarkus-native 可执行文件的构建而设计的。

打开 `pom.xml`，你将发现其中的 `native` 设置。你将使用它来构建本地可执行文件。

```
<profiles>
    <profile>
        <id>native</id>
        <properties>
            <quarkus.package.type>native</quarkus.package.type>
        </properties>
    </profile>
</profiles>

```

>
> **注意：** 你可以在本地安装 GraalVM 或 Mandrel 发行版。你也可以下载 Mandrel 容器映像来构建它（像我那样），因此你还需要在本地运行一个容器引擎（例如 Docker）。
>
>
>

假设你已经打开了容器运行时，此时需要运行一下 Maven 命令：

使用 [Docker](https://www.docker.com/) 作为容器引擎：

```
$ ./mvnw package -Pnative \
  -Dquarkus.native.container-build=true \
  -Dquarkus.native.container-runtime=docker

```

使用 [Podman](https://podman.io/) 作为容器引擎：

```
$ ./mvnw package -Pnative \
  -Dquarkus.native.container-build=true \
  -Dquarkus.native.container-runtime=podman

```

输出信息结尾应当是 `BUILD SUCCESS`。

不借助 JVM 直接运行本地可执行文件：

```
$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner

```

输出信息类似于：

```
__  ____  __  _____   ___  __ ____  ______
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/
INFO  [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native
(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on: http://0.0.0.0:8080
INFO [io.quarkus] (main) Profile prod activated.
INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy]

```

简直是超音速！启动只花了 19 毫秒。你的运行时间可能稍有不同。

使用 Linux 的 `ps` 工具检测一下，结果内存占用还是很低。检测的方法是：在应用程序运行期间，另外打开一个终端，运行如下命令：

```
$ ps -o pid,rss,command -p $(pgrep -f runner)

```

输出结果类似于：

```
  PID    RSS COMMAND
10246  11360 target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner

```

该进程只占 11MB 内存。非常小！

>
> **注意:** 各种应用程序（包括 Quarkus）的驻留集大小和内存占用，都因运行环境而异，并随着应用程序载入而上升。
>
>
>

你也可以使用 REST API 访问这个函数。输出结果应该是 `Hello RESTEasy`:

```
$ curl localhost:8080/hello
Hello RESTEasy

```

### 3、把函数部署到 Knative 服务

如果你还没有创建命名空间，现在就在 [OKD](https://docs.okd.io/latest/welcome/index.html)（OpenShift Kubernetes 发行版）[创建一个命名空间](https://docs.okd.io/latest/applications/projects/configuring-project-creation.html)（例如 `quarkus-serverless-native`），进而把这个本地可执行文件部署为无服务器函数。然后添加 `quarkus-openshift` 扩展：

```
$ ./mvnw -q quarkus:add-extension -Dextensions="openshift"

```

向 `src/main/resources/application.properties` 文件中添加以下内容，配置 Knative 和 Kubernetes 的相关资源：

```
quarkus.container-image.group=quarkus-serverless-native
quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000
quarkus.native.container-build=true
quarkus.kubernetes-client.trust-certs=true
quarkus.kubernetes.deployment-target=knative
quarkus.kubernetes.deploy=true
quarkus.openshift.build-strategy=docker

```

构建本地可执行文件，并把它直接部署到 OKD 集群：

```
$ ./mvnw clean package -Pnative

```

>
> **注意：** 提前使用 `oc login` 命令，确保登录的是正确的项目（例如 `quarkus-serverless-native`）。
>
>
>

输出信息结尾应当是 `BUILD SUCCESS`。完成一个本地二进制文件的构建并部署为 Knative 服务需要花费几分钟。成功创建服务后，使用 `kubectl` 或 `oc` 命令工具，可以查看 Knative 服务和版本信息：

```
$ kubectl get ksvc
NAME                        URL   [...]
quarkus-serverless-native   http://quarkus-serverless-native-[...].SUBDOMAIN  True

$ kubectl get rev
NAME                              CONFIG NAME                 K8S SERVICE NAME                  GENERATION   READY   REASON
quarkus-serverless-native-00001   quarkus-serverless-native   quarkus-serverless-native-00001   1            True

```

### 4、访问本地可执行函数

运行 `kubectl` 命令，搜索无服务器函数的节点：

```
$ kubectl get rt/quarkus-serverless-native

```

输出信息类似于：

```
NAME                         URL                                                                                READY   REASON
quarkus-serverless-native   http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN   True

```

用 `curl` 命令访问上述信息中的 `URL` 字段：

```
$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello

```

过了不超过一秒钟，你也会得到跟本地操作一样的结果：

```
Hello RESTEasy

```

当你在 OKD 群集中访问 Quarkus 运行中的节点的日志，你会发现本地可执行文件正在以 Knative 服务的形式运行。

### 下一步呢？

你可以借助 GraalVM 发行版优化 Java 无服务器函数，从而在 Knative 中使用 Kubernetes 将它们部署为无服务器函数。Quarkus 支持在普通的微服务中使用简易配置进行性能优化。

本系列的下一篇文章将指导你在不更改代码的情况下跨多个无服务器平台实现可移植函数。

*(Daniel Oh, [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/))*

---

via: <https://opensource.com/article/21/6/java-serverless-functions-kubernetes>

作者：[Daniel Oh](https://opensource.com/users/daniel-oh) 选题：[lujun9972](https://github.com/lujun9972) 译者：[cool-summer-021](https://github.com/cool-summer-021) 校对：[wxy](https://github.com/wxy)

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


Ubuntu Budgie 22.10 的新变化

# Ubuntu Budgie 22.10 的新变化

>
> Ubuntu Budgie 22.10 是一个有趣的版本，它删除了几个 GNOME 应用程序，以及一些其他改进。
>
>
>

[Ubuntu Budgie](https://ubuntubudgie.org/) 是 Ubuntu 的官方版本，因其传统的桌面界面和最小的软件膨胀而广受欢迎。

Ubuntu Budgie 22.10 的发布带来了一些关键的调整和补充。

### ? Ubuntu Budgie 22.10 有什么新变化

基于 Ubuntu 22.10 “<ruby> 充满活力的捻角羚 <rt>  Kinetic Kudu </rt></ruby>”，Ubuntu Budgie 22.10 带来了 Budgie 桌面 10.6.4 和许多其他改进。

一些值得注意的亮点包括:

* 增强型 Budgie <ruby> 控制中心 <rt>  Control Center </rt></ruby>
* 更新了 Budgie 的“<ruby> 欢迎 <rt>  Welcome </rt></ruby>”应用
* 替换各种基于 GNOME 的应用程序
* 对翻译进行了更新

#### Budgie 桌面和控制中心

Budgie 桌面以及更新到 V10.6.4, 它添加了一个新的全局选项来控制小程序之间的间距，并对工作区和时钟小程序进行了各种改进。

Budgie <ruby> 控制中心 <rt>  Control Center </rt></ruby>也得到了一堆调整，例如重新设计的显示颜色配置文件支持，修改了对屏幕分享的支持，如 [RDP](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol) 和 [VNC](https://en.wikipedia.org/wiki/Virtual_Network_Computing)，用于显示缩放的选项，等等。

#### 升级了欢迎应用

Ubuntu Budgie 22.10 特别升级了 [Budgie 的欢迎应用](https://ubuntubudgie.org/2022/02/quick-overview-of-budgie-welcome-application/)，改善了翻译以及一些其他改进。

#### 默认的应用的变化

Ubuntu Budgie 的开发人员已经开始替换和删除基于 GNOME 的应用程序，转而使用基于 MATE 的应用程序和其他替代品。

他们决定这样做是因为基于 GNOME 的应用程序在 Budgie 中的外观与其他具有圆角边缘的应用程序的外观不一致。

这些不一致是由于 GNOME 根据其样式和主题需求而转到 Libadwaita 库造成的。

Libadwaita 库是 GNOME 的一个有争议的补充，没有多少用户喜欢，你可以通过我们的报道来了解更多信息。

>
> **[你对在 Linux 世界中 GNOME 的 Libadwaita 库怎么看？](https://news.itsfoss.com/gnome-libadwaita-library/)**
>
>
>

以下是一些已删除或替换的应用程序：

* GNOME 计算器被 MATE 计算器取代。
* 删除了 GNOME 日历。
* GNOME 系统监视器已由 MATE 系统监视器取代。
* 删除了 GNOME 截图。
* [字体管理器](https://itsfoss.com/font-manager/) 替代了 GNOME 字体查看器。

#### ? 其他改变

其他改变包括以下：

* 重新开发的内置主题
* 移除 PulseAudio，并支持 PipeWire
* 原生的截图功能
* 支持 WebP 图像
* 能够查看显示器的刷新率

你可以通过 [发行说明](https://ubuntubudgie.org/2022/09/ubuntu-budgie-22-10-release-notes/) 了解更多。

### ? 下载 Ubuntu Budgie 22.10

你可以在 [Ubuntu 中央镜像仓库](https://cdimage.ubuntu.com/ubuntu-budgie/releases/22.10/) 或者它的 [官方网站](https://ubuntubudgie.org/downloads/) 下载最新的 ISO。

*其官方网站可能需要一段时间才能提供 ISO。*

>
> **[下载 Ubuntu Budgie 22.10](https://ubuntubudgie.org/downloads/)**
>
>
>

>
> ? Ubuntu Budgie 22.10 将支持 9 个月直到 **2023 年 6 月**。如果你想使用稳定的功能，更应该选择 [LTS 版本](https://itsfoss.com/long-term-support-lts/)。
>
>
>

? 你如何看待这个非 LTS 版本？愿意尝试一下吗？

---

via: <https://news.itsfoss.com/ubuntu-budgie-22-10-release/>

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

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


硬核观察 #801 GitHub 年入 10 亿美元

Summary: • GitHub 年入 10 亿美元 • 不管同意不同意，名人的“深度伪造”开始出现在广告中 • 图片巨头开始销售 AI 生成的图片

赞成 稍微有点常识的人都知道，如果我们的AI 继续前进。这些螳臂当车的图片公司，难道能够阻挡得了吗？

来自湖北武汉的 Chrome Mobile iOS 106.0|iOS 16.0 用户

# 硬核观察 #801 GitHub 年入 10 亿美元

### GitHub 年入 10 亿美元

微软在财报会议上宣布了 GitHub 的一些新数据：GitHub 平台目前年收入 10 亿美元，高于收购时报告的 2 至 3 亿美元。GitHub 现在有 9000 万的活跃用户，高于收购结束时的 2800 万。微软于 2018 年以 75 亿美元收购了 GitHub。

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/10/25/microsoft-says-github-now-has-a-1b-arr-90m-active-users/)**
>
>
>

>
> 老王点评：可以说，微软给 GitHub 带来了更大的发展，当然，GitHub 也成了微软的一座宝库。
>
>
>

### 不管同意不同意，名人的“深度伪造”开始出现在广告中

上周，埃隆･马斯克似乎在一家房地产投资公司的营销视频中出演。而上个月，机器学习公司 Paperspace 的宣传视频中出现了汤姆･克鲁斯和莱昂纳多･迪卡普里奥等演员。这些名人都没有花时间拍摄这些宣传片，他们甚至从未同意为有关公司代言。这和好莱坞传奇人物 [布鲁斯･威利斯](/article-15094-1.html) 的情况不同，使用“深度伪造”技术创作的宣传片是威利斯授权制作的。

>
> **[消息来源：华尔街日报](https://www.wsj.com/articles/deepfakes-of-celebrities-have-begun-appearing-in-ads-with-or-without-their-permission-11666692003)**
>
>
>

>
> 老王点评：这种图像融合技术越来越受欢迎，给营销行业带来了新的法律和道德问题。
>
>
>

### 图片巨头开始销售 AI 生成的图片

AI 图像生成器会不会扼杀图片销售行业？该行业的巨头的答案是“不会” —— 如果他们能先开始销售 AI 生成的内容，就不会。Shutterstock 宣布与 OpenAI 扩大合作，DALL-E 2 将直接整合到 Shutterstock 中。此外，Shutterstock 将向提供了 AI 创作素材的作者们支付费用。另一方面，Shutterstock 禁止在其网站上销售未使用其 DALL-E 整合的 AI 生成的艺术作品。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/10/25/23422359/shutterstock-ai-generated-art-openai-dall-e-partnership-contributors-fund-reimbursement)**
>
>
>

>
> 老王点评：螳臂当车而已，随着 AI 普及化，谁还会去买图片？那时候可能各种 AI 图片及其素材都会进入公共领域。
>
>
>


如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址

您好，请问有没有可以用命令行更改为固定ip的方法？

如何在没有插入网线，或者网线被拔掉后，静态IP地址也存在呢

nmcli 命令可以

nmtui 命令行下的gui配置IP

这是一个网络问题。静态ip的存在，在于路由器的分配，不只是终端是否设置。你可以做双向绑定的操作。即在路由器上设置ip和mac的绑定，同时在对应的终端上做静态ip的设置。这时，不管终端是否有网线或网络驱动，路由器都不会把绑定的ip分给其它的终端使用。

非常感谢

非常感谢

# 如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址

>
> 在这篇文章中，我们将介绍如何在 Ubuntu 服务器 22.04 上设置静态 IP 地址。
>
>
>

强烈建议在 Linux 服务器上使用静态 IP，因为它会在重启后保持不变。静态 IP 对邮件服务器、Web 服务器和文件服务器等服务器起着重要作用。

**准备条件**

* 最小安装的 Ubuntu 服务器 22.04
* 具有 `sudo` 管理员权限的普通用户

在 Ubuntu 服务器 22.04 中，网络由 netplan 程序控制，因此我们将使用 netplan 在 Ubuntu 服务器上配置静态 IP 地址。

注意：我们不能使用 [nmcli 程序](https://www.linuxtechi.com/configure-ip-with-nmcli-command-linux/)，因为它不是 Ubuntu 服务器上默认安装的一部分。

### 在 Ubuntu 服务器 22.04 上设置静态 IP 地址

登录到你的 Ubuntu 服务器 22.04，查找 netplan 配置文件。它位于 `/etc/netplan` 目录下。

```
$ cd /etc/netplan/
$ ls -l
total 4
-rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml
$

```

运行以下 `cat` 命令以查看 `00-installer-config.yaml` 的内容。

注意：配置文件的名称可能因你的设置而异。由于它是一个 yaml 文件，因此请确保在编辑时保持缩进和语法。

```
$ cat 00-installer-config.yaml

```

输出：

根据上面的输出，它说我们有 `ens33` 接口，它正在从 DHCP 服务器获取 IP。查看接口名称的另一种方法是通过 `ip` 命令。

现在，要配置静态 IP 代替 DHCP，使用 `vi` 或 `nano` 编辑器编辑 netplan 配置文件并添加以下内容。

```
$ sudo vi 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.247/24
      nameservers:
        addresses: [4.2.2.2, 8.8.8.8]
      routes:
        - to: default
          via: 192.168.1.1
  version: 2

```

保存并关闭文件。

在上面的文件中，我们使用了以下内容，

* `ens33` 为接口名称
* 用于设置静态 IP 的地址
* `nameservers` 用于指定 DNS 服务器的 IP
* 用于指定默认网关的路由

注意：根据你的环境更改 IP 详细信息和接口名称。

要是上述修改生效，请使用以下 `netplan` 命令应用这些更改：

```
$ sudo netplan apply

```

运行以下 IP 命令查看接口上的 IP 地址：

```
$ ip addr show ens33

```

要查看默认路由，请运行：

```
$ ip route show

```

上述命令的输出。

完美，以上命令的输出确认静态 IP 和路由配置成功。

这就是这篇文章的全部内容。请在下面的评论部分发表你的问题和反馈。

---

via: <https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/>

作者：[Pradeep Kumar](https://www.linuxtechi.com/author/pradeep/) 选题：[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: 你可以按照以下步骤，来养成符合开放文化的习惯，并改掉那些不符合开放文化的习惯。

你可以按照以下步骤，来养成符合开放文化的习惯，并改掉那些不符合开放文化的习惯。

# 利用习惯练习开放式组织原则

>
> 你可以按照以下步骤，来养成符合开放文化的习惯，并改掉那些不符合开放文化的习惯。
>
>
>

<img src="content_image/album_202210_27_094926l6s8ssgvdssney48.png" alt="Selfcare, drinking tea on the porch" title="Selfcare, drinking tea on the porch">

很久以来，我就对习惯很感兴趣。几年前，我做了一次关于习惯利弊的演讲，并且介绍了如何改变坏习惯、养成好习惯。不久前，我阅读了 Art Markman 教授的 《Smart Thinking》一书，这本书主要讨论的也是习惯。或许你会问习惯与 [开放式组织的原则](https://theopenorganization.org/definition/open-organization-definition/) 有什么关系？这其中有一定的联系！我将会分成两篇文章，来解释你可以如何管理你的习惯。

在本文中，我们将讨论习惯如何工作的，以及更重要的是你如何去开始改变你的习惯。在下一篇文章中，我们将回顾 Markman 教授在他书中所表达的思想。

### 开放式组织原则和习惯的交集

设想你学习过开放式组织的原则，尽管你认为它们很有趣并且很有价值，但是你还没有对这些原则形成自己的习惯。以下就是你现实中会表现出来的样子。

社区：如果你面对一项重要挑战，但是你不知道如何独自解决它，你很有可能会由于习惯而放弃这项挑战。养成与由志同道合的人组成的社区，共同解决问题的习惯，不是更好吗？

协作：假设你认为你不善于合作，你喜欢独立完成任务。你知道有一些需要合作才能完成的事情，但是你并没有参与合作的习惯。为了弥补这种情况，你必须养成与他人更多合作的习惯。

信息共享：假如说你喜欢将你所做的事以及所知道的东西当作秘密。但是，你知道如果你不共享信息，你也无法从他人那里获取有用的信息。因此，你必须拥有共享信息的习惯。

包容性：想象一下，你与你不熟悉的人，或者是在个性、文化还是语言上都与你不同的人一起工作，你会感到不自在。但是，你知道如果你想要成功的话，你必须要和各种各样的人一同工作。那你该如何培养包容的习惯呢？

适应能力：假设当你所做的事情不再能达到你所希望的结果之后，你往往会拒绝改变。但是，你知道你必须适应这种情况，并重新调整你的努力，那你如何才能养成适应的习惯呢？

### 习惯是什么？

在我给出关于上述开放式组织原则的示例之前，我想先解释一下习惯的一些相关特征。

* 习惯是重复很多次的行为，最终习惯会成为你下意识的行为。
* 习惯是自动的并且当时会感觉良好。当一个人在养成习惯后，做习惯行为会使他感觉很好，但是当他跳出习惯做事时，会感到不舒服。或许之后他会再次考虑尝试。
* 一些习惯是有益的，并且能够节省你很多的能量。大脑只占身体质量的 2%，但是却会消耗 20% 的能量。因为大脑在思考和集中精力上需要消耗很多能量，你可以通过培养下意识的习惯来节省能量。
* 一些习惯对你有害，因此你渴望改变这些坏习惯。
* 所有的习惯都会给你回报，即使回报是短暂的。
* 习惯是基于你熟悉的事情和你知道的东西而形成的，即使你可能并不一定需要这个习惯。

### 养成习惯的 3 个步骤

1. 提示（触发器）：首先，提示或者触发器会告诉大脑，进入之前学习的习惯性行为的自动模式之中。这里的提示可以是某件事，比如每天在确定的时间点、在确定的地点，看到一包糖果或者看到电视购物节目，亦或者看到某个特定的人。时间压力会触发你去做例行事项（routine）。在令人崩溃的环境下也会触发例行事项。简而言之，某件事提醒你开始做一些固定的事情。
2. <ruby> 例行事项 <rt>  routine </rt></ruby>：例行事项会被触发。一个例行事项是一系列的身体、心理或者情绪上的表现，可以是非常复杂的，也可以十分简单。诸如与心情相关的一些习惯可以在很短时间内被触发。
3. 奖励：最后一步是奖励，奖励会帮助你的大脑计算一个特定的行为是否值得记住。奖励的范围很广泛，可以是食物或者其他令你感到快乐的东西。

### 商业环境中的坏习惯

习惯不仅仅是个人行为。所有的组织或多或少都有一些好的坏的制度习惯。然而，一些组织会有先见之明地设计好他们的习惯，而其他组织却不会设计习惯，只是随着竞争或者担心落伍而演变。以下是一些组织的坏习惯示例：

* 总是晚提交报告
* 单独工作或者分组合作，然而采用相反的方法才合适
* 上级对下级施压很大
* 不关心销售额的下降
* 由于内卷，销售团队之间不协同合作
* 让一个健谈的人主导会议

### 逐步改变习惯

习惯不是一成不变的，你可以改变你的行为习惯。首先，要知道不能一下子改变所有坏习惯。相反，先找到一个关键的习惯进行改变，这会产生小而快速的奖励。请记住，改变了一个关键的习惯后，会产生连锁反应。

以下是你可以用来改变任何习惯的四步框架，其中还包括与开放式组织原则相关的习惯。

#### 第一步：调整例行事项

确定你的习惯循环和例行事项，例如，当面临一件你无法独自解决的重大挑战之时。例行事项（你表现出的行为）最容易确定，所以先从它下手：例如，“在我的组织中，没人愿意和别人讨论问题。大家都会早早地放弃”。决定好你想要调整、改变或者学习的事情：例如：“每次重大挑战到来的时候，我应该和他人讨论一下，并且尝试建立一个志同道合、有能力解决问题的社区。”

#### 第二步：有奖励的实验

奖励是很重要的，因为它会满足你强烈的渴望。但是，我们通常没有意识到强烈的渴望会驱动我们的行为。只有在事后，才会被我们察觉。比方说，开会时很多次你都想尽快离开会议室，避免讨论话题，即使内心清楚你应该弄明白如何解决问题。

要了解强烈的渴望是什么，你必须要实验。这可能会花费你几天、几周甚至更久的时间。你必须要感受到触发压力，才能完全识别它。例如，问问你自己当你试图推卸责任时的感受。

把你自己当作科学家，进行实验并收集数据。这是你调查研究的步骤：

1. 第一个行为结束后，开始调整后面的行为，看看有没有奖励变化。例如，如果你每次碰到自己无法解决的挑战时都放弃，那么奖励就是不承担责任的解脱。更好的解决方法是与至少一个同样关心该问题的人讨论该问题。关键是要测试不同的假设，以确定哪种渴望驱使你的日常生活。你真的想逃避责任吗？
2. 在经历四至五个不同的例行事项和奖励之后，写下在收到每个奖励后立即想到的前三、四件事。例如，你不会在面对挑战时放弃，而是与其他人讨论这个问题。然后，你决定可以做什么。
3. 写下你的感受或渴望后，设置一个 15 分钟的计时器。当计时器结束时，问问自己是否依旧渴望。在屈服于渴望之前，请休息一会儿并再考虑一两次这个问题。这会迫使你意识到这一刻，并帮助你稍后回忆起你当时的想法。
4. 试着记住你在那一刻的想法和感受，然后在例行事项后 15 分钟。如果渴望消失了，你就已经确定了回报是什么。

#### 第三步：分析出坏习惯的提示或触发器

坏习惯的提示信息很难鉴定，因为通常有太多信息干扰你未定型的行为。要在干扰中鉴别提示，你可以在你的坏习惯出现的时候，观察以下四个因素：

地点：它在哪里发生？例如：“我最大的挑战在会议中出现。”

时间：它什么时候出现？例如：“如果我累了，下午的会议就是在浪费时间，因为我没兴趣付出努力。”

感受：你当时的情绪状态是怎样的？例如：“当我听到这个问题时，我感到压力山大并且很沮丧。”

人们：当时有谁或者哪一类人在你周围，还是你是独自一人？例如：“在会议上，大多数人似乎对这个问题也不感兴趣。剩下的人主导会议讨论。”

#### 第四步：制定养成好习惯的计划

一旦你确定奖励可以驱动你的行为，某些提示会触发你的坏习惯，那你就可以开始改变你的行动。请跟随以下三个简单的步骤：

1. 首先，规划好习惯的提示。例如：“在会议上，我将发现并将我的注意力集中在重要的问题上。”
2. 其次，选择一种能带来相同回报的好行为，但不会遭受你现在坏习惯的惩罚。例如：“我将找到解决这个问题的方法，并考虑我需要哪些资源和技能才能成功。当我创建一个能够成功解决问题的社区时，我会感觉很棒。”
3. 最后，让你选择的行为成为深思熟虑的选择，直到你不再需要考虑它，就能下意识地做它了。例如：“我将有意识地关注重要问题，直到我可以不假思索地做到这一点。我会查看近期会议的安排表，这样我就可以提前知道会发生什么。在每次会议开始前和会议期间，我会问自己‘为什么我会来开会’，来确保我集中注意于重要的事情。”

#### 制定计划来避免忘记必做事项

为了成功地开始做你经常忘记的事情，请按照以下步骤：

1. 计划你想要做什么
2. 决定何时完成
3. 将计划分为必要的小任务
4. 用计时器或者日常计划进行提示，并开始每项任务
5. 按计划完成每个任务
6. 按时完成后就奖励自己

### 习惯的改变

习惯的改变需要很长时间。有时候互助小组会帮助你改变习惯。有时候，在低压力环境中，进行大量的练习和角色预演能够更好地帮助你改变。想要找到有效的奖励，你需要不断的尝试。

有时，习惯是更重要、更深层次问题的反映。在这些情况下，你可能需要专业帮助。但是，如果你有改变的愿望，并接受在此过程中会有一些小失败，你就可以控制任何习惯。

在本文中，我使用了使用 *提示-例行事项-奖励* 三个过程的社区开发示例。它同样可以应用于其他开放式组织的原则。我希望这篇文章能让你思考如何通过了解习惯如何运作、采取措施改变习惯，以及制定计划避免忘记你想做的事情，来管理习惯。无论是开放式组织原则，还是其他任何东西，你现在都可以判断出提示、常规和奖励。当提示出现时，这将引导你制定改变习惯的计划。

在我的下一篇文章中，我将通过 Art Markman 教授在《Smart Thinking》中观点来继续讨论习惯。

---

via: <https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles>

作者：[Ron McFarland](https://opensource.com/users/ron-mcfarland) 选题：[lkxed](https://github.com/lkxed) 译者：[Donkey-Hao](https://github.com/Donkey-Hao) 校对：[wxy](https://github.com/wxy)

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


使用 VirtualBox 安装 Linux 虚拟机

Summary: VirtualBox 能帮助任何人（即使是命令行新手）安装一个新的虚拟机。

VirtualBox 能帮助任何人（即使是命令行新手）安装一个新的虚拟机。

# 使用 VirtualBox 安装 Linux 虚拟机

>
> VirtualBox 能帮助任何人（即使是命令行新手）安装一个新的虚拟机。
>
>
>

VirtualBox 能让任何人都可以轻松安装 Linux 虚拟机。你不需要有使用命令行的经验，就可以自己安装一个简单的 Linux 虚拟机。在虚拟机方面，我精通很多东西，但这篇文章将向新手展示如何安装一个 Linux 虚拟机。此外，这篇文章还概述了如何使用开源虚拟机管理程序 [VirtualBox](https://www.virtualbox.org/) ，来运行以及安装一个测试目的的 Linux 系统。

### 一些术语

在开始之前，你需要了解在本安装教程中的两个操作系统（OS）之间的区别：

* <ruby> 主机系统 <rt>  host system </rt></ruby>：这指的是你安装 VirtualBox 的操作系统（即本机的操作系统）。
* <ruby> 客体系统 <rt>  guest system </rt></ruby>：这指的是你想要在主机系统之上运行的虚拟化系统。

在输入/输出、网络、文件访问、剪贴板、音频和视频方面，主机系统和客体系统都必须能够交互。

在本教程中，我将使用 Windows 10 作为 *主机系统*，[Fedora 33](https://getfedora.org/) 作为 *客体系统*。

### 安装前的准备

当我们谈论虚拟化时，实际上，我们指的是 [硬件辅助虚拟化](https://en.wikipedia.org/wiki/Hardware-assisted_virtualization)。硬件辅助虚拟化需要兼容的 CPU。过去十年来，几乎每个普通的 x86 CPU 都有这一功能。AMD 公司称这样的 x86 CPU 是具有 **AMD 虚拟化技术（AMD-V）** 的处理器，英特尔公司则称其是具有 **Intel 虚拟化技术（VT-x）** 的处理器。虚拟化功能增加了一些额外的 CPU 指令，你可以在 BIOS 中启用或禁用这些指令。

在安装虚拟机之前：

* 确保在 BIOS 中启用了虚拟化技术（AMD-V 或 VT-x）。
* 下载并安装好 [VirtualBox](https://www.virtualbox.org/wiki/Downloads)。

### 准备虚拟机

下载你要用的 Linux 发行版的镜像文件。下载 32 位还是 64 位的操作系统镜像都没有关系，因为在 32 位的主机系统上也可以启动 64 位的操作系统镜像（当然内存的使用会受限），反之亦然。

>
> **注意事项：** 如果可以的话，请下载附带有 [逻辑卷管理器](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux))（LVM）的 Linux 发行版。LVM 会将文件系统与物理硬盘驱动器解耦。如果你的空间不足时，这能够让你增加客体系统的硬盘驱动器的大小。
>
>
>

现在，打开 VirtualBox，然后单击黄色的“<ruby> 新建 <rt>  New </rt></ruby>”按钮：

接下来，配置客体操作系统允许使用多少内存：

我的建议是：**不要吝啬分配给客体操作系统使用的内存！**当客体操作系统的内存不足时，客体系统将开始从随机存取存储器（RAM）向硬盘驱动器进行内存分页，这样会极大地恶化系统的性能和响应能力。如果底层的主机系统开始分页，你很可能不会注意到。对于具有图形化桌面环境的 Linux 工作站系统，我建议至少分配 4GB 内存。

接下来，创建虚拟磁盘：

虚拟磁盘的格式选择默认的选项 “VDI（VirtualBox 磁盘镜像）” 就可以了：

在以下的窗口中，我建议选择“<ruby> 动态分配 <rt>  dynamically allocated </rt></ruby>”，因为这允许你在之后增加虚拟磁盘的大小。如果你选择了“<ruby> 固定大小 <rt>  fixed size </rt></ruby>”，磁盘的速度可能会更快，但你将无法修改虚拟磁盘的大小了：

建议你使用附带有逻辑卷管理器（LVM）的 Linux 发行版，这样你就可以先创建一个较小的硬盘。如果之后你的客体系统的空间快用完了，你可以按需增加磁盘的大小。

>
> **注意**：我选择的客体系统为 Fedora，在 Fedora 的官网说明：[Fedora 至少需要分配 20GB 的空闲磁盘空间](https://getfedora.org/en/workstation/download/)。我强烈建议你遵守该规范。在这里，我选择了 8GB，以便稍后演示如何用命令行增加磁盘空间。如果你是 Linux 新手，或者对命令行没有经验，请依旧选择 20GB。
>
>
>

创建好硬盘驱动器后，从 VirtualBox 主窗口的列表中选择新创建的虚拟机，然后单击“<ruby> 设置 <rt>  Settings </rt></ruby>”。在设置菜单中，点击“<ruby> 系统 <rt>  System </rt></ruby>”，然后选择“<ruby> 处理器 <rt>  Processor </rt></ruby>”标签。默认情况下，VirtualBox 只向客体系统分配一个 CPU 内核。在现代多核 CPU 计算机上，分配至少两个内核是没有任何问题的，这能显著地加快客体系统的速度：

#### 设置网络适配器

接下来，要处理的是网络设置。默认情况下， VirtualBox 会创建一个 NAT 连接，这对于大多数情况来说，是没有问题、不用做其他更改的：

你也可以创建多个网络适配器。以下是网络适配器最常见的类型：

* NAT：NAT 适配器能自动执行 [网络地址转换](https://en.wikipedia.org/wiki/Network_address_translation)。从外部看，主机和客体系统使用着相同的 IP 地址。你无法通过网络从主机系统内访问客体系统。（尽管，你也可以通过定义 [端口转发](https://www.virtualbox.org/manual/ch06.html#natforward)，来访问某些服务。）当你的主机系统可以访问互联网时，则你的客体系统也可以访问互联网。NAT 不再需要进一步的配置。
	+ *如果你只需要让客体系统接入互联网就可以的话，请选择 “NAT”。*
* <ruby> 桥接适配器 <rt>  Bridged adapter </rt></ruby>：在此配置中，客体系统和主机系统可以共享相同的物理以太网设备。这两个系统都将拥有独立的 IP 地址。从外部看，网络中会有两个独立的系统，它们共享相同的物理以太网适配器。这种设置更灵活，但需要更多的配置。
	+ *如果你想要共享客体系统的网络服务的话，请选择 “桥接适配器”。*
* <ruby> 仅限主机的适配器 <rt>  Host-only adapter </rt></ruby>：在此配置中，客体系统只能与主机，或在同一主机上运行的其他客体系统相互通信。主机系统也可以连接到客体系统。但客体系统不能接入互联网或物理网络。
	+ *如果你想要获得高安全性，请选择 “仅限主机的适配器”。*

#### 分配操作系统镜像

在设置菜单中，点击“<ruby> 存储 <rt>  Storage </rt></ruby>”，然后选择虚拟光盘驱动器。单击右侧的 “光盘”图标，然后点击“<ruby> 选择一个磁盘文件…… <rt>  Choose a disk file… </rt></ruby>”，然后分配你想要安装的、已下载的 Linux 发行版镜像：

### 安装 Linux

现在，就已经配置好了虚拟机。右上角关闭“<ruby> 设置 <rt>  Settings </rt></ruby>”菜单，返回主窗口。点击“绿色箭头”（即“开始”按钮）。虚拟机将从虚拟光盘驱动器启动，你将发现你已经进入到 Linux 发行版的安装程序中：

#### 设置分区

安装程序将在安装过程中要求你提供分区信息。选择“<ruby> 自定义 <rt>  Custom </rt></ruby>”：

>
> **注意：** 我假设，你创建这一虚拟机的目的是为了测试。此外，你也无需关心客体系统的休眠，因为此功能会由 VirtualBox 来隐式地提供。因此，你可以省略交换分区，以节省主机系统的磁盘空间。请记住，如果你需要的话，你可以稍后自己添加交换分区。在 《[Linux 系统交换空间的介绍](https://opensource.com/article/18/9/swap-space-linux-systems)》 这篇文章中，作者 David Both 进一步解释了如何添加交换分区，并选择交换分区正确的大小。
>
>
>

Fedora 33 及之后更高的版本提供了一个 [zram 分区](https://fedoraproject.org/wiki/Changes/SwapOnZRAM)，zram 分区可以用于存放分页和交换、并经过压缩过后的硬盘数据。zram 分区可以按需地调整大小，并且它比硬盘交换分区快得多。

为了简单，我们只添加以下两个<ruby> 挂载点 <rt>  Mount Point </rt></ruby>：

保存更改，接下来我们继续安装。

### 安装 VirtualBox 增强功能

完成安装后，从硬盘驱动器启动，并登录到虚拟机。现在，你可以安装 <ruby> VirtualBox 增强功能 <rt>  VirtualBox Guest Additions </rt></ruby>，其中包括特殊的设备驱动程序和系统应用程序，它们能提供以下功能：

* 共享剪贴板
* 共享文件夹
* 更好的性能
* 可自由扩展的窗口大小

点击顶部菜单栏的“<ruby> 设备 <rt>  Devices </rt></ruby>”，然后选择“<ruby> 插入增强功能的 CD 镜像…… <rt>  Insert Guest Additions CD image... </rt></ruby>”，来安装 VirtualBox 增强功能：

在大多数 Linux 发行版上，带有增强功能的 CD 镜像会自动挂载，并且能够在文件管理器中找到。Fedora 会问你是否要运行安装脚本。单击“<ruby> 运行 <rt>  Run </rt></ruby>”，并授予该安装进程 root 权限：

安装完成后，需要重新启动系统。

### LVM：扩大磁盘空间

我在之前给 Fedora 虚拟机分配了 8GB 硬盘空间，是一个愚蠢的决定，因为 Fedora 很快就会告警空间不足：

正如我提到的，Fedora 官网建议安装时分配 20GB 的磁盘空间。因为 8GB 是 Fedora 33 安装启动就需要的最少空间。没有安装其他软件（除了 VirtualBox 增强功能）的一个新安装的系统就几乎占用了整个 8GB 的可用空间。这时候，不要打开 GNOME 软件中心或任何其他可能从互联网下载文件的东西。

幸运的是，我选择了附带有 LVM 的 Fedora，这样我就可以用命令行轻松地修复这个问题。

要增加虚拟机中文件系统的空间，你必须先增加主机系统上分配的虚拟硬盘驱动器。

关闭虚拟机。如果你的主机系统运行的是 Windows，请打开终端，并进入到 `C:\Program Files\Oracle\VirtualBox` 目录下。使用以下命令，将磁盘大小扩大到 12,000MB：

```
VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000

```

然后启动虚拟机，并打开“<ruby> 磁盘 <rt>  Disks </rt></ruby>”工具。你可以看到你刚刚新创建且未分配的可用空间。选择“<ruby> 可用空间 <rt>  Free Space </rt></ruby>”，然后单击 “+” 按钮：

现在，创建一个新的分区。选择你要使用的可用空间的大小：

如果你不想在新分区上创建文件系统或任何其他内容，请选择“<ruby> 其他 <rt>  Other </rt></ruby>”：

选择“<ruby> 无文件系统 <rt>  No Filesystem </rt></ruby>”：

现在，磁盘空间应该如下图所示：

虚拟机有了一个新的分区设备：`/dev/sda3`。通过输入 `vgscan` ，来检查你的 LVM 卷组，找到 `fedora_localhost_live` 这一 LVM 卷组 ：

现在，已经万事俱备了。在新分区 `/dev/sda3` 中扩展卷组 `fedora_localhost_live`：

```
vgextend fedora_localhost-live /dev/sda3

```

由于卷组比逻辑卷大，你可以增加逻辑卷的大小。命令 `vgdisplay` 显示了共有 951 个可用的物理扩展（PE）：

将逻辑卷增加 951 个物理扩展：

```
lvextend -l+951 /dev/mapper/fedora_localhost--live-root

```

在增加了逻辑卷后，最后一件事就是调整文件系统的大小：

```
resize2fs /dev/mapper/fedora_localhost--live-root

```

这样磁盘空间就增加完成了！检查“<ruby> 磁盘使用分析器 <rt>  Disk Usage Analyzer </rt></ruby>”，你就可以看到扩展空间已经可用于文件系统了。

### 总结

使用虚拟机，你可以检查在一个特定的操作系统或一个特定版本的操作系统、软件是如何操作的。除此之外，你还可以尝试任何想测试的 Linux 发行版，而不必担心系统损坏。对于资深用户来说，VirtualBox 在测试、网络和模拟方面提供了广泛的可能性。

---

via: <https://opensource.com/article/21/6/try-linux-virtualbox>

作者：[Stephan Avenwedde](https://opensource.com/users/hansic99) 选题：[lujun9972](https://github.com/lujun9972) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #802 systemd 创始人认为 Linux 的启动并不安全

Summary: • systemd 创始人认为 Linux 的启动并不安全 • Linux 内核开始为 800 Gbps 网络做准备 • Fedora 40 正在为迁移到更现代的 C 语言标准做准备

# 硬核观察 #802 systemd 创始人认为 Linux 的启动并不安全

### systemd 创始人认为 Linux 的启动并不安全

已经加入了微软的 systemd 创始人 Lennart Poettering 认为，在启用了安全启动的硬件上，虽然启动过程（包括内核）是签名的，但下一步，即加载 initrd，却没有签名。他提议将 Linux 启动过程转移到加密签名的统一内核镜像，使用 TPM 2.0 硬件加强 Linux 系统启动过程的安全性。initrd 是“初始化内存磁盘”，恶意软件或入侵者可以在 initrd 中插入恶意代码，而且每次系统启动时都会加载该代码，即使该恶意代码的其他副本不存在于硬盘上。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/26/tightening_linux_boot_process_microsoft_poettering/)**
>
>
>

>
> 老王点评：想法是很好，但是这就是一个不透明的盒子。
>
>
>

### Linux 内核开始为 800 Gbps 网络做准备

IEEE 已经发布了 800Gbps 网络的标准，而英伟达正在开发 800Gbps 网络硬件，其 Linux 内核驱动的开发人员确认，下一代英伟达 Spectrum ASIC 将支持 800Gbps 的速度。虽然 800Gbps 已经是目前最高端的 400Gbps 带宽的两倍，但以太网联盟今年的路线图已经将 1.6Tbps 网络作为未来几年内的计划。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linux-6.2-800-Gbps-Networking)**
>
>
>

>
> 老王点评：Linux 内核在抛弃博物馆硬件的同时，越来越多的成为新硬件的第一批支持系统。
>
>
>

### Fedora 40 正在为迁移到更现代的 C 语言标准做准备

1999 年发布的 C 语言标准（C99）删除了一些向后兼容的特性，然而，GCC 仍然默认接受这些过时的构造。但对这些结构体的支持让程序员感到困惑，并有可能影响 GCC 实现未来 C 标准中的功能。计划 2024 年发布的 GCC 14 编译器，正在考虑默认禁用对传统 C 语言结构的支持。LLVM 的开发者也正在考虑可能比这更早地禁用传统的 C 语言结构。Fedora 40 计划更主动地发现那些仍然依赖传统 C 语言行为的开源项目，以在 GCC 14 前就消除对旧的 C 语言标准的支持。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Fedora-40-Proposal-Modern-C)**
>
>
>

>
> 老王点评：说是新的 C 语言标准，其实也有 20 多年了——都说程序员是喜新厌旧的，但是似乎都抱着自己用惯的语言不肯放手。
>
>
>


安装 Ubuntu 22.10 后要做的 10 件事

不要连续插电？意思在家用个电脑还要不停抽插？

来自111.60.27.87的 Chrome 103.0|GNU/Linux 用户

thank u for the blog!!!!!

你去各个笔电品牌的保养建议里看看都有这条，不过大家都懒得照做吧，毕竟太麻烦了

来自223.104.41.157的 Chrome Mobile 106.0|Android 12 用户

你去各个笔电品牌的保养建议里看看都有这条，不过大家都懒得照做吧，毕竟太麻烦了

# 安装 Ubuntu 22.10 后要做的 10 件事

>
> 以下是我们安装 Ubuntu 22.10 “Kinetic Kudu”（GNOME 版）后，推荐做的 10 件事列表。
>
>
>

Ubuntu 22.10 带来了很多令人兴奋的新功能，例如 GNOME 43、最新的内核、重新设计的托盘菜单、文件应用的功能和 Pipewire 等 [新功能](https://www.debugpoint.com/ubuntu-22-10/)。

我相信你已经迫不及待地想尝试 Ubuntu 22.10 上的这些新功能了。

但是请先等一等。

在你前往享受你新安装的 Ubuntu 22.10 之前，我要向你推荐一个不容错过的 Ubuntu 定制技巧列表。

### 安装 Ubuntu 22.10 后要做的 10 件事

#### 1、更新你的系统

安装好 Ubuntu 22.10 后，第一件要做的事就是更新你的系统。因为时差的原因，最新的 ISO 镜像通常不会包括所有的系统更新。所以，你要打开一个终端窗口，并运行以下命令，来更新你的系统。

```
sudo apt update && sudo apt upgrade

```

上述命令执行完成后，你就可以进行下一步啦。

#### 2、删除 Firefox Snap，并安装 Flatpak 或者 deb 版本的 Firefox

自去年发布的 Ubuntu 21.10 版本以来，默认的网页浏览器 Firefox 开始以 Snap 软件包的形式出现。如果你是普通用户，这可能不是一个问题或者需要担心的事情。但是出于几个原因，例如 Snap 软件包的 Firefox 启动时间较长、且当 Firefox 有后台更新时，会有不必要的 Snap 更新通知等等原因，导致许多用户不太喜欢 Firefox 的 Snap 软件包。

因此，你可以按照 [我写的另一篇操作指南](https://www.debugpoint.com/remove-firefox-snap-ubuntu/)，来完全删除 Firefox 的 Snap 软件包。这一过程有点复杂，需要花费一点时间。删除完成后，再从个人软件包存档（PPA）安装 deb 版本的 Firefox，或者使用 [Flatpak 版本](https://flathub.org/apps/details/org.mozilla.firefox) 的 Firefox。

这是一个可选的动作，你也可以跳过这一步骤。

#### 3、安装并启用 Flatpak

虽然，几乎所有最新的 Linux 发行版都会默认安装 Flatpak，但是 Ubuntu 并没有默认安装 Flatpak，这是因为 Ubuntu 使用了它自己的沙箱技术 Snap。

但 Flatpak 这一应用程序还是最适合于每个人。Flatpak 能够帮助你快速安装多个应用程序，并在使用过程中无需担心依赖性和其他事情。

大多数 Flatpak 应用程序都在集中的仓库 Flathub 中。

要在 Ubuntu 22.10 中启用 Flatpak 应用程序，请按照以下命令进行操作。

```
sudo apt install flatpakflatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakreporeboot

```

如果你想进一步了解关于此安装过程的更多信息，请阅读我们不久前发布的 [指南](https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/)。

#### 4、查看隐私设置

我建议你在安装 Ubuntu 后，手动退出任何数据收集项。大家都知道，无论怎么努力尝试，在互联网上保护自己的隐私都很困难。因此，这些小步骤很重要。

要配置隐私项，请打开“<ruby> 设置 <rt>  Settings </rt></ruby>”并选择“<ruby> 隐私 <rt>  Privacy </rt></ruby>”。然后查看隐私菜单下列出的项目。

此外，请确保禁用对 Ubuntu 服务器的后台报告。需要运行以下命令来手动禁用，因为在设置中没有禁用它的选项。

```
sudo ubuntu-report -f send no

```

#### 5、探索 GNOME 43 的功能

在 Ubuntu 22.10 版本中，最具视觉和功能性的变化是 GNOME 43。因为 GNOME 43 有一些根本性和核心变化，所以它会影响每个人和他们的工作。GNOME 43 带来了一个新的药丸形状的托盘菜单，并更新了文件应用和 GNOME Web 等原生应用程序的功能。

请查看更为详细的 [GNOME 43 功能](https://www.debugpoint.com/gnome-43/) 一文，以了解更多信息，或者你也可以自己探索 GNOME 43。

#### 6、确保音频可以与 Pipewire 配合使用

如果你经常使用音频，或者你的工作范围涉及到声音捕获、播放等内容，请确保在 Ubuntu 22.10 中，你的音频在有线或蓝牙情况下都能正常工作。

因为 Ubuntu 22.10 这个版本中的音频服务器是多年来第一次发生了变化，传统的 PulseAudio 被现代的 Pipewire 所取代。因此，请务必进行验证音频是否能正常使用。

#### 7、安装其他软件包

确保你可以在 Ubuntu 桌面上播放所有视频和音频格式是很重要的。如果你在设置期间跳过了额外的软件包安装，可以通过以下命令进行安装。

```
sudo apt install ubuntu-restricted-extras

```

这可以解决 Ubuntu 中的任何视频或音频的播放问题，特别是 GNOME 视频无法播放的情况（因为GNOME 视频在默认情况下将无法播放任何内容）。

#### 8、安装基本的应用程序

带有 GNOME 的 Ubuntu 基础版本只有非常基本的应用程序。因此，在你使用 Ubuntu 之前，你需要安装一些其他必要的应用程序。

由于每个人的工作范围不同，每个人所需的应用程序也都不同。因此，在这里我仅提供一个通用的应用程序的列表，我认为你可以把这些应用程序都安装上，因为这些应用程序对所有人来说都很常用。

* GIMP – 进阶的照片编辑器
* VLC – 无需额外编解码器即可播放任何内容的媒体播放器
* Leafpad – 轻量级文本编辑器（甚至比默认的文本编辑器 gedit 还要更轻量级）
* Synaptic – 更好的软件包管理器

安装这些应用程序的命令：

```
sudo apt install -y gimp vlc leafpad synaptic

```

#### 9、获取一些 GNOME 扩展

你可以使用几个很酷的扩展程序，来扩展 GNOME 43 的功能，包括自定义顶部栏、托盘、更改 adwaita 外观等等。首先，使用下面的命令通过 Flatpak 来安装 GNOME 扩展管理器。

```
flatpak install flathub com.mattjakeman.ExtensionManager

```

安装完成后，你就可以在 GNOME 扩展管理器中搜索你想要的任何扩展了。以下是一些必要扩展，你可以用它们来快速扩展 GNOME 43 的功能，我认为它们非常适合你全新的 Ubuntu 桌面。你只需在扩展管理器应用程序中，搜索这些名称即可。

* Caffeine
* Custom Hot Corners
* Dash to Dock
* Blur my shell
* Gradients
* Hide Activities Button
* Net speed simplified

#### 10、准备备份

我们总是在我们遇到困难时，才觉得有必要备份。所以，请确保从一开始你就为备份做好了准备。理想的备份应用程序是 Timeshift，它很容易安装和使用。

以下是你可以从终端安装 Timeshift 的一组命令。安装完成后，你可以打开 Timeshift，并按照屏幕上的说明，设置备份了。

```
sudo add-apt-repository -y ppa:teejee2008/ppasudo apt-get updatesudo apt-get install timeshift

```

### 额外小技巧

如果你想进一步定制你新安装的 Ubuntu 系统，以下是一些额外的小技巧。

#### 安装漂亮的字体

字体是一个很小却影响很大的设置项。虽然，Ubuntu 自带有好用的“Ubuntu regular”字体。

但是，你也可以从 Ubuntu 的官方仓库中安装一些其他漂亮的字体。以下是安装字体的一些命令。

```
sudo apt install fonts-roboto fonts-cascadia-code fonts-firacode

```

安装完成后，你可以使用 [GNOME Tweak 工具](https://www.debugpoint.com/customize-your-ubuntu-desktop-using-gnome-tweak/)，来更改字体。

#### 安装 TLP

如果你经常使用笔记本电脑，那么你要好好爱惜电脑的电池。虽然电池用久了总是会损坏的，但你可以采取一些步骤，来减缓电池的老化。TLP 是 Linux 中自动优化电池使用、减缓电池老化的最好的程序之一。你可以使用以下命令来安装 TLP。

```
sudo apt install tlp

```

我建议你将电池的电量始终保持在 50% 至 80% 之间。不要过度充电或让电池电量消耗到 50% 以下，也不要给电脑连续插电。

### 总结

以上就是安装桌面 Ubuntu 22.10 后要做的 10 件事啦。

我希望这篇文章会对你有帮助，你能够通过本文的方法来定制和调整你的 Ubuntu 桌面。那么你认为在安装好 Ubuntu 后，什么事是最推荐做的呢？请在评论区中告诉我吧。

---

via: <https://www.debugpoint.com/things-to-do-ubuntu-22-10/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[校对者ID](https://github.com/%E6%A0%A1%E5%AF%B9%E8%80%85ID)

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


在你的 Linux 终端中玩经典的贪吃蛇游戏

Summary: 这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。

这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。

# 在你的 Linux 终端中玩经典的贪吃蛇游戏

>
> 这是你在 Linux 终端中安装和玩经典贪吃蛇的方法。
>
>
>

还记得老式手机经典简单的贪吃蛇吗？我记得玩了几个小时。嘿，当时没有其他选择，对吧？智能手机仍未上市。而你所拥有的只有这个。

但随着时间的推移，贪吃蛇被具有各种选项的更高级的图形游戏所取代。但没有什么能比得上经典贪吃蛇游戏。

如果我告诉你，你可以在 Linux 终端中玩这个游戏呢？无论你运行的是 Ubuntu Linux、Fedora Linux 还是 Arch Linux，都无关紧要。该游戏适用于大多数 [发行版](https://www.debugpoint.com/category/distributions)。

### 安装 nSnake – Linux 终端的贪吃蛇

你可以使用以下方法通过终端安装 [此游戏](https://github.com/alexdantas/nsnake)。

对于 Ubuntu、Linux Mint 或其他相关发行版：

```
sudo apt install nsnake

```

对于 Fedora Linux 和其他：

```
sudo dnf install nsnake

```

对于 Arch Linux，此游戏可在 [Arch 用户仓库（AUR）](https://aur.archlinux.org/packages/nsnake/) 中获得。你可以使用以下步骤安装它。

* [设置 Yay AUR 助手](https://www.debugpoint.com/2021/01/install-yay-arch/)
* 然后打开终端并运行以下命令

```
yay -S nsnake

```

上面的命令会安装游戏的软件仓库版本，它可能不是最新的。但是，如果你想要最新版本，你可能需要通过 GitHub 编译源代码。我在本页末尾添加了编译说明供你参考。

### 玩游戏

玩游戏非常简单。在终端中输入 `nsnake`，这将启动游戏。

要立即退出，请按 `q`。

以下是默认键绑定。

* `箭头键` - 移动蛇
* `q` – 退出游戏
* `p` – 暂停游戏

你还可以通过主菜单以各种方式配置游戏。

完成了，玩吧！

### 编译

要编译最新版本，请在所有 Linux 发行版中使用以下命令。

哦，确保你已经安装了 `git` 和 `ncurses-devel`，它们是编译所需的包。

```
git clone https://github.com/alexdantas/nSnake.git
cd nsnake
make
make install

```

那么，你喜欢贪吃蛇游戏吗？与其他基于终端的游戏相比，你更喜欢它吗？在下面的评论框中与其他读者分享你的观点。

---

via: <https://www.debugpoint.com/snake-game-linux-terminal/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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/) 荣誉推出


硬核观察 #803 埃隆·马斯克已收购推特，并赶走了原 CEO、CFO

Summary: • 埃隆·马斯克已收购推特，并赶走了原 CEO、CFO • 谷歌推出以太坊节点云服务 • 苹果公司在开发者的强烈抗议下暂停了应用商店的赌博广告

啥？真收购了！

# 硬核观察 #803 埃隆·马斯克已收购推特，并赶走了原 CEO、CFO

### 埃隆·马斯克已收购推特，并赶走了原 CEO、CFO

周四，经过几个月的法律纠纷后，埃隆·马斯克捧着一个水槽进入了推特总部大楼。除了原 CEO、CFO 之外，总法律顾问、首席客户官等高管也被辞退，有消息称，有的高管是被保安带出去的。不过，这些高管都是拿着巨额补偿走的。马斯克曾谈到利用推特创建一个类似微信的超级应用 “X 应用”。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/10/27/23184519/elon-musk-twitter-acquisition-deal-complete-agreement)**
>
>
>

>
> 老王点评：手腕高超的一个装成疯子的天才。
>
>
>

### 谷歌推出以太坊节点云服务

谷歌云区块链节点引擎将是一个“完全管理的节点托管服务，可以最大限度地减少对节点操作的需求”，这意味着谷歌云将负责监控节点活动，并在停机后重新启动它们。谷歌的宣布标志着技术巨头对区块链和 Web3 项目给予了越来越多的关注。

>
> **[消息来源：谷歌](https://cloud.google.com/blog/products/infrastructure-modernization/introducing-blockchain-node-engine)**
>
>
>

>
> 老王点评：这对于区块链的发展是件好事。
>
>
>

### 苹果公司在开发者的强烈抗议下暂停了应用商店的赌博广告

周二，苹果公司宣布在其应用商店中投放更多的广告，这包括在应用程序的页面上宣传其它应用程序。开发者发现在他们的应用程序下有很多不当的广告，比如一个老虎机应用被放在赌博成瘾康复应用旁边做广告，还有一些例子是其他博彩应用被放在针对儿童的应用页面上做广告，成人视频聊天应用出现在苹果图书页面，约会应用被放在旨在改善现有关系的应用下面。在受到大量批评之后，苹果已经“暂停了应用商店产品页面上与赌博和其他一些类别有关的广告”。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/10/26/23425637/apple-pauses-gambling-ads-developer-outcry)**
>
>
>

>
> 老王点评：看来苹果在广告投放方面还需要学习一下。
>
>
>


Xubuntu 22.10 的新变化

Summary: Xubuntu 22.10 提供了精致的 Xfce 体验。请读此文了解详情。

xfce是给CRT显示器设计的，跟不上液晶时代了

这种说法还是第一次听说。

给CRT设计的？？？ Are you sure?

来自黑龙江哈尔滨哈尔滨工业大学的 Firefox 106.0|GNU/Linux 用户

Xubuntu 22.10 提供了精致的 Xfce 体验。请读此文了解详情。

# Xubuntu 22.10 的新变化

>
> Xubuntu 22.10 提供了精致的 Xfce 体验。请读此文了解详情。
>
>
>

Xubuntu 是基于 Xfce 的 Ubuntu 官方版本。

它也是最好的轻量级 Linux 发行版之一。

随着最新的 Xubuntu 22.10 “Kinetic Kudu” 版本，你可以看到改进的桌面环境、添加的功能，以及全面的细化。

### Xubuntu 22.10 的新变化

Xubuntu 22.10 带来了一些令人兴奋的升级。一些亮点包括：

* Xfce 4.16（或 Xfce 4.17 开发版）
* Catfish 的外观进行了更新。
* 更新了新图标，弃用了 elementary-xfce-darker 主题。
* Mousepad 搜索历史。
* Thundar 文件管理器的改进。
* Xfce 任务管理器。

>
> ? Xubuntu 22.10 将支持九个月，直到 **2023 年 7 月**。如果你想要稳定性而不是功能，你应该首选使用 [LTS 版本](https://itsfoss.com/long-term-support-lts/)。
>
>
>

#### Xfce 4.17 开发版还是 Xfce 4.16？

Xubuntu 22.10 的发行说明说它专门提供了 Xfce 4.17 开发版本。

但是，当我安装 Xubuntu 22.10 的 beta 版本（并将其更新到最新版本）时，只具有 Xfce 4.16。

不确定他们是否退出了 Xfce 4.17 开发版本，或者 Xfce 4.16 现在是否存在。

#### Catfish 外观

Catfish 是 Xubuntu 上的一个文件搜索工具。通过新的升级，它具有焕然一新的外观，并做了底层的改进。

与你搜索的文件交互时，你还会获得一个“打开方式”上下文菜单。

Catfish 还添加了一些细微而有用的功能。

#### GNOME 43 软件应用

在值得注意的应用程序更新中，GNOME 的最新软件中心是一个不错的选择。这是 Xubuntu 22.10 的外观：

当然，它可能无法与 Xfce 上的其他应用程序保持一致，但我认为你应该不会介意。

#### 图标更新

随着 elementary-xfce 0.17 图标更新，有许多新图标和更简洁的选项，可提供一致的 Xubuntu 桌面体验。

此外，elementary-xfce-darkest 主题图标包已被弃用。

#### 任务管理器右键选项

你现在可以将完整的进程路径复制到剪贴板。这对于需要从命令行进行故障排除或停止操作很有用。

### 其他增强功能

还有其他几个值得注意的变化，包括：

* Linux 内核 5.19。
* Firefox 浏览器 105。
* `Alt-Tab` 视图通过更突出的图标进行了改进。
* 马赛克拼图添加到 SGT 拼图系列。
* Mousepad 文本编辑器现在包括搜索历史记录，以及更多调整。

要了解有关更改的更多信息，请查看 [官方发行说明](https://wiki.xubuntu.org/releases/22.10/release-notes)。

### 下载 Xubuntu 22.10

你可以从 [Ubuntu 的中央镜像库](https://cdimage.ubuntu.com/xubuntu/releases/22.10/release/) 或它的 [官方网站](https://xubuntu.org/download/) 下载最新的 ISO 文件。

官方网站可能需要一段时间才能提供 ISO。

>
> **[下载Xubuntu 22.10](https://xubuntu.org/download/)**
>
>
>

? 你觉得 Xubuntu 22.10 如何？请在评论中告诉我。

---

via: <https://news.itsfoss.com/xubuntu-22-10-release/>

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

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


通过示例来学习 Bash base64 的编码和解码

上古卷轴了，第一次还是塞班系统上的wap内嵌图片见到过

# 通过示例来学习 Bash base64 的编码和解码

>
> 你想了解 Base64 编码和解码的方法吗？在本教程中，我们使用 Bash shell 脚本和各种示例解释了 Base64 编码和解码步骤。
>
>
>

Base64 编码方法可以将二进制数据转换为文本，如此编码数据可以在任何通信媒介进行传输。这种编码方法主要用于电子邮件加密的过程。

总体而言，Base64 编码方法是一种二进制到文本的编码方案，以 ASCII 字符串格式表示 8 字节的二进制数据。使用这种编码方法在各种媒介之间传输数据时有几个优势，尤其是对于那些能可靠地支持文本内容的媒介。因此，Base64 编码方法在万维网上被广泛使用。这种编码方案最常用于电子邮件附件的编码上。

根据 Base64 编码表，二进制数据可以经 Base64 编码后可以转换为 64 个不同的 ASCII 字符，包含大写字母 `A` 到 `Z`，小写字母 `a` 到 `z`，数字 `0` 到 `9`，以及符号 `+` 和 `/`，这些字符在传输和打印上十分便捷。

这 64 个 ASCII 字符代表着从 `000000` 到 `111111` 的二进制值。每个非末尾的 Base64 编码字符恰好代表 6 位二进制值。

### Bash base64 的编码和解码

#### 句法

在我们提供示例之前，首先介绍 Base64 的基本语法。

```
base64 [OPTIONs] [INFILE] [OUTFILE]

```

* 选项（`Option`）：参照下面的表格，你可以提供任何的选项或组合多个选项。
* 输入（`INFILE`）：你可以从标准输入（如命令行）或文件中输入。
* 输出（`OUTFILE`）：你可以将输出重定向到标准输出，如终端或文件中。

| 选项 | 描述 |
| --- | --- |
| `-e` 或者 `--encode` | 此选项用于对标准输入的数据或从文件中读入的数据进行编码。这是默认选项。 |
| `-d` 或者 `--decode` | 此选项用于对标准输入的数据或从文件中读入的已 Base64 编码数据进行解码。 |
| `-n` 或者 `--noerrcheck` | 默认情况下，Base64 在解码数据时，会自动检查是否有错误。你可以使用该选项在解码时忽略检查。 |
| `-i` 或 `--ignore-garbage` | 此选项用于在解码时忽略非字母字符。 |
| `-u` 或者 `--help` | 此选项用于获取有关使用此命令的信息。 |

#### 示例 1：基本编码

在 Linux 中，默认已安装好 Base64 软件包。因此，你可以轻松地从命令行使用 Base64。要对一个字符串或文本进行编码，你可以通过管道将其传递到 `base64` 命令，并获取待编码的文本。在下面的示例中，对字符串 `debugpoint.com` 进行了 Base64 编码。

```
echo "debugpoint.com" | base64

```

结果是经过 Base64 编码后的字符串。

#### 解释

Base64 编码方法使用下面的几个步骤来转换输入的数据。首先，每个输入字符转换为 8 位二进制值，接着，二进制字符串拆分为一组组 6 位的二进制值，然后，每个 6 位的二进制值被转换为十进制值。

最后，每个十进制值都通过 Base64 编码索引表转换为 Base64 字符。

在上面的示例中，第一个字符 `d` 被转换为二进制 `01100100`。前 6 位是 `011001`，转换为十进制是 `25`。`25` 在 Base64 编码索引表中对应着 `Z`。整个输入的文本流都像如此编码。请参阅以下编码过程的示例。

#### 示例 2：基本解码

要解码字符串，需要将编码值传递给 `base64` 命令，选项为 `--decode`，它将输出你之前输入的字符串。

#### 示例 3：对文本文件进行编码

示例 1 中的同一命令也可用于编码文本文件，并将输出重定向到另一个文本文件。方法如下。

```
base64 example3.txt > example3-encoded.txt

```

#### 示例 4：对文本文件进行解码

要解码使用 Base64 编码的文本文件，只需使用 `--decode` 或 `-d` 选项，并传递文本文件名。

```
base64 -d example3-encoded.txt

```

#### 示例 5：对用户输入的数据进行编码

使用 Bash shell 编程，你可以通过终端接收用户的输入，并对其进行 Base64 编码。你需要先编写一个简单的 shell 脚本，并在授予可执行权限后执行。

以下就是一个简单的示例，它从用户那里获得输入，然后进行 Base64 编码，最终显示编码的字符串。

```
#!/bin/bash
#Sample program to take input, encode to base64 and display on terminal
#Example by www.debugpoint.com
echo "Enter text for encoding to base64:"
read input_text
output_text=`echo -n $input_text | base64`
echo "The Base64 Encoded text is: $output_text"

```

#### 示例 6：用 Base64 进行简单的身份认证

你可以运用上述的编码和解码方法，实现一个简单的身份验证系统。你可以让用户输入密码或密码，然后将密码存储在文件中。或者进行实时比较。

如果存储的编码字符串与用户输入的文本再编码的字符串相匹配，则用户可以通过验证。虽然这是一种检查身份验证的很简单的方法，但有时这对一些简单的业务案例很有用。

```
#!/bin/bash
#Sample program to take input, encode to base64 and display on terminal
#Example by www.debugpoint.com
echo "Type your password"
read pwd1
decoded_text=`echo 'U2lsZW5jZSBpcyBnb2xkZW4h' | base64 --decode`
if [[ $pwd1 == $decoded_text ]]
then
    echo "You are a valid user."
else
    echo "You are NOT a valid user."
fi

```

### 总结

我希望你能通过这些示例，学会 [Base64](https://linux.die.net/man/1/base64) 编码和解码的基础知识。此外，你也了解到 Base64 的内部编码方式。如果这对你很有帮助，或你还需要有关此主题的其他教程，请在下面的评论区中告诉我吧。

---

via: <https://www.debugpoint.com/bash-base64-encode-decode/>

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

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


打造万圣节 Linux 桌面

Summary: 给你的 Linux 桌面做一个像幽灵般的黑暗改造

给你的 Linux 桌面做一个像幽灵般的黑暗改造

# 打造万圣节 Linux 桌面

马上就到万圣节了，太棒啦！

我相信你已经有了一些庆祝万圣节的想法。给你的 Linux 桌面做一个像幽灵般的黑暗改造，就类似于下面的屏幕截图，你觉得怎么样？

可定制是 Linux 的一大优势，对 Linux 可进行的定制是多种多样且没有尽头的。之前，我们向你展示过 [如何让你的 Linux 看起来像 macOS](https://itsfoss.com/make-ubuntu-look-like-macos/) 的方法。今天，我将继续分享一些定制“万圣节”Linux 桌面的技巧。

可以通过主题、图标、扩展、字体、Conky 等一系列配置组合起来，来实现 Linux 桌面的定制。*虽然，你可以在任何的 Linux 发行版和桌面环境中配置这些东西，但是仅在一个教程中展示所有 Linux 发行版和桌面环境的桌面定制方法，是不太可行的。*

因此，在本文中，我将介绍 Ubuntu 与 GNOME 桌面环境的桌面定制方法。

### 安装所需工具

你需要一些软件包和工具。在开始定制桌面前，请确保你安装了全部（或大多数）的软件包和工具。

*你不必做**所有**这些桌面改变。但你做的越多，你的桌面也会美化得更好看。*

#### 安装 GNOME 优化工具和 GMOME 扩展管理器

使用以下命令，来安装 GNOME <ruby> 优化 <rt>  Tweaks </rt></ruby> 工具和 GMOME <ruby> 扩展管理器 <rp>  （ </rp> <rt>  Extensions manager </rt> <rp>  ） </rp></ruby>：

```
sudo apt install gnome-tweaks gnome-extension-manager

```

在基于 KDE 的 Linux 系统中，没有可以更改 Linux 桌面外观的优化工具。但是，你可以使用 Kvantum-Manager 这一应用程序来更改外观，请参考我在 [KDE 主题指南](https://itsfoss.com/properly-theme-kde-plasma/) 中的讨论。

#### 安装 Conky（可选）

你可以选择是否要安装 Conky ，因为现在 conky-manager 项目已经不再维护了，因此继续使用 Conky 可能会有点棘手。但无论如何，我们用它来增加万圣节外观的感觉。

```
sudo apt install conky-all

```

#### 安装 Neofetch 或者 Shell-color 脚本

这个步骤也可以由你自主选择。你可以选择使用 [neofetch](https://itsfoss.com/using-neofetch/)，因为 `neofetch` 工具已经在 Ubuntu 仓库中了，你可以直接通过 `apt install` 安装，并且 `neofetch` 使用起来也很简单。

```
sudo apt install neofetch

```

[Shell-color 脚本](https://gitlab.com/dwt1/shell-color-scripts) 是另一个不错的选择。在 Arch 用户仓库（AUR）中有该软件包，Arch Linux 用户可以从 AUR 安装 Shell-color 脚本。而在 Ubuntu 中，你则需要手动安装它。

```
git clone https://gitlab.com/dwt1/shell-color-scripts.git
cd shell-color-scripts
sudo make install

```

#### 安装主题、图标、字体和壁纸工具

我正在使用的是 [Sweet](https://www.gnome-look.org/p/1253385) 主题工具、[Beautiline](https://www.gnome-look.org/p/1425426) 图标软件包、[simple1e](https://www.gnome-look.org/p/1405210) 光标工具和 [Grey-Minimalistic](https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564) Conky 主题，下载好这些工具后，再解压包。你还要下载 [Creepster](https://fonts.google.com/specimen/Creepster?query=creepster) 字体。

最后，从互联网上下载一张 [万圣节幽灵氛围的壁纸](https://www.wallpaperflare.com/search?wallpaper=spooky)。

>
> 请注意！你即将要进行大量的定制和更改。要恢复到原来普通的外观，你可以通过撤销你所做的所有更改。一个更简单的方法是：创建一个管理员权限的新用户，并使用该新用户进行所有这些更改。这样，你的原始用户帐户和外观就不会受到影响。在万圣节结束后，你可以删除这个新增的用户。
>
>
>

现在，你有了所有定制桌面的工具和资源，是时候使用它们了！

### 安装并使用扩展

打开 GMOME <ruby> 扩展管理器 <rp>  （ </rp> <rt>  Extensions manager </rt> <rp>  ） </rp></ruby>。在 Ubuntu 22.04 中，你可以在<ruby> 浏览 <rt>  Browse </rt></ruby>菜单下安装扩展。

在其他版本的 Ubuntu 和其他带有 GNOME 的发行版上，你可以通过浏览器 [安装 shell 扩展](https://itsfoss.com/gnome-shell-extensions/)，来安装扩展。为了实现打造万圣节桌面的目的，请安装以下扩展程序：

* [User Themes](https://extensions.gnome.org/extension/19/user-themes/)
* [Dash to Dock](https://extensions.gnome.org/extension/307/dash-to-dock/)
* [Blur my Shell](https://extensions.gnome.org/extension/3193/blur-my-shell/)

此外，请确保所有的扩展都已启用。

### 配置主题、图标和字体

你需要将解压的主题文件夹复制，并粘贴到 `~/.themes` 目录下，将解压的图标和光标文件夹复制，并粘贴到 `~/.icons` 目录下。

接下来，打开 GNOME <ruby> 优化 <rt>  Tweaks </rt></ruby> 工具，并应用主题、图标和字体等设置，如下的截图所示。

要 [在 Ubuntu 中使用自定义字体](https://itsfoss.com/install-fonts-ubuntu/)，请右键单击你下载和解压的字体文件，然后选择使用<ruby> 字体管理器 <rt>  Font manager </rt></ruby>打开。我打算使用的是 [Creepster](https://fonts.google.com/specimen/Creepster?query=creepster) 字体。

然后，点击右上角的<ruby> 安装 <rt>  Install </rt></ruby>按钮。

请注意：在某些系统中，点击安装按钮不会显示“<ruby> 已安装 <rt>  installed </rt></ruby>”的提示。在这种情况下，你只需关闭界面就行了，因为一旦你点击了安装按钮，该字体就已经安装上了。

再重新打开 GNOME <ruby> 优化 <rt>  Tweaks </rt></ruby> 工具，然后前往<ruby> 字体 <rt>  Fonts </rt></ruby>边栏，在这里，你可以更改各个文件类型的字体，如下图所示。

请注意，对于终端，需要等宽字体。在这里，我使用了普通字体，这里可能会让你稍稍有点迷失。

### 应用 Dash to Dock 扩展设置

首先，你要使用 GNOME 扩展应用程序，来**关闭 Ubuntu Dock 扩展**。

如果 Dash to Dock 扩展还尚未运行的话，请先运行它。

然后，右键单击在底部显示的 “Dash to Dock” 按钮，然后选择 “Dash to Dock Settings”。

在设置中，你需要调整一些小东西。

首先，使用滑块，来缩小图标的大小。

之后，你需要减少程序坞的不透明度，我更喜欢完全透明的程序坞。

所以，我将不透明度设置为 <ruby> 固定 <rt>  fixed </rt></ruby>，并使用滑块将其降至零，如下图所示。

### GNOME 终端的设置

你想得到的 Linux 桌面的主要变化是自定义**模糊且有一定透明度**的 `neofetch` 外观（或 shell-color 脚本外观）。

我们之前在 GNOME <ruby> 优化 <rt>  Tweaks </rt></ruby> 工具中应用了等宽字体，因此 GNOME 终端中的字体也会被更改。

首先，从 <ruby> 偏好设置 <rt>  preferences </rt></ruby> 中创建一个新的配置文件。

单击 `+` ，来创建一个新配置文件。输入文件的名称，并点击 <ruby> 创建 <rt>  create </rt></ruby>，如下所示：

在这个新配置文件中，更改透明度设置，将透明度的滑块放在中间，如下图所示：

完成后，要将此配置文件设置为默认的配置文件，单击与新配置文件关联的三角形按钮，然后选择 “<ruby> 设置为默认 <rt>  Set as Default </rt></ruby>”。

#### 设置模糊效果

上述的步骤只会将终端变成一个透明的 shell。但是，如果你还需要有利于提高可见性的模糊效果，你需要进入到 “Blur my Shell” 扩展进行设置。

首先，进入到 <ruby> 应用程序 <rt>  Application </rt></ruby> 菜单。现在，确保终端已打开，并置于屏幕明显的位置。单击 <ruby> 添加 <rt>  Add </rt></ruby> 窗口，然后选择 GNOME 终端窗口，以设置模糊效果。请注意：此功能还处于测试阶段，因此可能会出现一些小故障。

也可以对其他应用程序（例如 Nautilus 文件管理器）重复此过程，来设置模糊效果。

#### 定制 Neofetch

Neofetch 的最佳功能之一是其可定制性。你可以使用多种方法来调整 Neofetch 的外观。为了更有万圣节氛围，我选择了一个南瓜图像，来代替发行版的徽标。

Neofetch 提供以各种格式添加自定义图像的功能。为此，也有各种供支持的后端。在这里，我使用 jp2a 后端，它将使用 [转换成 ASCII 的图片](https://itsfoss.com/ascii-image-converter/)。

```
neofetch --jp2a /path/to/your/image/file.png

```

上述命令将创建一个带有自定义图片的 Neofetch 实例。你可以将此命令写入你的 `.bashrc` 文件，以便永久放置该图片。

*不幸的是，这在我的 Wayland 实例上并不起作用。*

#### 自定义 Shell-Color 脚本

如果你安装的是 Shell Color 脚本工具，则会有多种 shell 脚本。要列出可用的脚本，请使用命令：

```
colorscript -l

```

你可以通过将 `colorscript random` 写入你的 `.bashrc` 文件，以每次都获得一个随机的颜色脚本，或者通过将`colorscript -e <name>`写入你的 `.bashrc` 文件，来得到一个特定的颜色脚本。

### 设置 Conky

我使用的是 Deviantart 的 [Grey-Minimalistic](https://www.deviantart.com/bryantlloyd/art/Grey-Minimalistic-634726564) conky 主题。Conky 主题的每种类型都有不同的安装方法。因此，如果你想要使用另一个 Conky 文件的话，请遵循它的 `README` 文件中描述的设置方法，进行设置。

解压 Conky 主题文件，里面有几个文件夹。首先，你需要安装关联的图标和字体，也就是说，使用 <ruby> 字体管理器 <rt>  font-manager </rt></ruby> 安装给定的字体。接着，将图标文件夹拷贝，并粘贴到 `~/.icons` 文件夹。

然后，进入 Conky 文件夹。确保你已 [启用查看隐藏文件](https://itsfoss.com/hide-folders-and-show-hidden-files-in-ubuntu-beginner-trick/)，将 `.conkyrc` 文件和 `.conky-vision-icons` 文件复制到你的主目录，如上图所示。

现在，启动 Conky，看起来就变成下图这样了。

将 Conky 添加到 [自启动应用程序列表](https://itsfoss.com/manage-startup-applications-ubuntu/) 中，以便在每次开机时都能自启动。

### 更改壁纸

快要完成啦。你现在唯一需要做的就是 [更改背景壁纸](https://itsfoss.com/change-wallpaper-ubuntu/)。我相信你之前已经下载好了有万圣节幽灵气氛的壁纸，右键 “<ruby> 设置为壁纸 <rt>  Set as Wallpaper </rt></ruby>” 就好啦。

### 看看最终成果吧！

如果你遵循上面的大多数步骤的话，你就会得到一个与以下截图相似的桌面。

这个桌面对于万圣节来说够吓人了吗？你觉得怎么样？在评论区中告诉我吧。

---

via: <https://itsfoss.com/linux-halloween-makeover/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #804 你现在需要付费在 Photoshop 中使用某些颜色

Summary: • 你现在需要付费在 Photoshop 中使用某些颜色 • 为修复高危漏洞，Fedora 37 推迟发布 • Linux 6.2 主线内核将支持苹果 M1 系列芯片

单一颜色收费并不可能。出于营收考虑，提供色卡参考收费服务罢了

# 硬核观察 #804 你现在需要付费在 Photoshop 中使用某些颜色

### 你现在需要付费在 Photoshop 中使用某些颜色

从现在起，广泛使用的 Adobe 应用程序，如 Photoshop、Illustrator 和 InDesign 将不再免费支持 Pantone 公司的颜色，那些希望在他们的文件中使用这些颜色的人将需要支付一个单独的许可证。你需要使用一个每月 15 美元的插件才能使用这些颜色。

>
> **[消息来源：Kotaku](https://kotaku.com/photoshop-pantone-color-plugin-adobe-creative-cloud-1849714742)**
>
>
>

>
> 老王点评：连颜色都要付费么~是我孤陋寡闻了。
>
>
>

### 为修复高危漏洞，Fedora 37 推迟发布

Fedora Linux 37 的发布日期从原计划的 10 月底推迟到 11 月 15 日，原因是为了修复一个 OpenSSL 高危漏洞。OpenSSL 计划在 11 月 1 日释出修复漏洞的补丁，因此关于该漏洞的细节尚未公开。安全社区的一种通常做法是在补丁做好准备前对相关信息保密，以防止其被利用。由于 Fedora 是公开构建的，所以不能在漏洞披露前就先打好补丁。但有趣的是，即使发布延迟，但是定于 11 月 4-5 日的 Fedora Linux 37 发布派对会照常举行。

>
> **[消息来源：Fedora Magazine](https://fedoramagazine.org/fedora-linux-37-update/)**
>
>
>

>
> 老王点评：开源项目的开放性往往都是好的，但是在这个情况下，却是一个弱点。
>
>
>

### Linux 6.2 主线内核将支持苹果 M1 系列芯片

本周，苹果 M1 Pro、Max 和 Ultra SoC 的设备树排队进入 Linux 内核 SoC 的 for-next 分支。也就是说，对 M1 系列芯片的支持进入了上游，而且使用这些 SoC 的 Mac Studio 也将得到支持。最终，基于 Arm 的苹果芯片将在 Linux 上得到很好的开箱即用的支持，而不仅仅是 Asahi Linux 发行版。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linux-62-Apple-M1-Pro-Max-Ultra)**
>
>
>

>
> 老王点评：虽然苹果不主动支持，但是 Linux 内核社区还是非常有积极性。
>
>
>


Rhino Linux：滚动发布但也很稳定的 Ubuntu

Ubuntu 能算稳定？

# Rhino Linux：滚动发布但也很稳定的 Ubuntu

>
> 滚动发布的 Ubuntu 发行版？等等，什么？ Rhino Linux 听起来不错……
>
>
>

Rhino Linux 将成为 [Rolling Rhino Remix](https://github.com/rollingrhinoremix) 的继任者。这个由 http.llamaz 构建的 Linux 发行版，提供了滚动发布的**非官方的** Ubuntu 变体版本。

需要澄清的是，该项目从未旨在取代其他稳定的发行版，而纯粹是一个充满乐趣的激情项目。

而随着人们开始将其用作日常使用并对其期望更多，开发人员决定将其变成一个严肃的项目。

Rhino Linux 作为它的继任者。那么，你对它的期待是什么？

### 有请继任者 Rhino Linux

其主要目标是提供稳定的 Ubuntu 体验，同时仍提供滚动发布模式。

目标仍保持不变，但 Rhino Linux 的基础将得到彻底改变。他们有可能使它成为一个令人印象深刻的滚动发布的 Ubuntu 发行版。

**听起来很令人兴奋！?**

在其核心，Rhino Linux 将使用稍微修改过的 [Xfce](https://www.xfce.org/) 版本作为其桌面环境；之所以选择它是因为它众所周知的稳定性和速度。

Rhino Linux 的创始人提到了以下几点：

>
> 滚动版 Ubuntu 仍然是我们的核心理念。Rhino Linux 并不是从 Rolling Rhino Remix 中分离出来的，而是将它重新设想为更稳定、更成熟的发行版，它原本就应该以这种方式出厂。
>
>
>

除此之外，[Pacstall](https://github.com/pacstall/pacstall) 将用作 Rhino Linux 上的默认包管理器及其存储库之一。

>
> ? Pacstall 是一个受 [AUR](https://itsfoss.com/aur-arch-linux/) 启发的 Ubuntu 包管理器。
>
>
>

Pacstall 的开发由其创始人 [Plasma](https://github.com/Henryws) 领导。他还作为新开发人员之一（副项目负责人）加入，而 [Sourajyoti Basak](https://github.com/wizard-28) 作为另一位核心成员加入。

### 前进：可用性和发布

在撰写本文时，Rhino Linux 尚未确定任何具体的发布日期，但你可以预计它会在 **2023** 年的某个时间发布。

Rolling Rhino Remix 会发生什么？

开发者澄清说，它将在 Rhino Linux 发布后继续维护三个月。但是，在 2022 年 1 月 11 日后继发布之后，它没有新的发布镜像。

你可以通过访问其 [官方网站](https://rhinolinux.org/) 了解更多关于 Rhino Linux 的信息。

*? 你觉得 Rhino Linux 怎么样？它可以成为值得尝试的官方 Ubuntu 风格的竞争者吗？*

---

via: <https://news.itsfoss.com/rhino-linux/>

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

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


Kubernetes 能否帮助解决自动化挑战？

# Kubernetes 能否帮助解决自动化挑战？

>
> 组织层面的自动化一直是一个难以实现的目标，但 Kubernetes 或许能够改变这一切。
>
>
>

当我在 2002 年采用 Gentoo Linux 作为我的主要操作系统时，我开始了我的自动化之旅。二十年后，自动化还没有完成。当我与客户和合作伙伴会面时，他们分享了团队内部的自动化成果，但他们也描述了在组织层面实现类似成功所面临的挑战。

大多数 IT 组织都能够端到端地提供虚拟机，从而将过去 4 周的交付周期缩短到仅 5 分钟。这种级别的自动化本身就是一个复杂的工作流程，需要网络（IP 地址管理、DNS、代理、网络区域等）、身份访问管理、[虚拟机管理程序](https://www.redhat.com/en/topics/virtualization/what-is-a-hypervisor?intcmp=7013a000002qLH8AAM)、存储、备份、更新操作系统、应用最新的配置文件、监控、安全和强化以及合规性基准测试，等等。哇，这么多！

满足高速、可扩展和按需自动化的业务需求并不容易。例如，来看看经典的网上商店或提交纳税申报表的在线政府服务，其工作负载有明确的峰值需要面对。

处理此类负载的一种常见方法是拥有一个超大的服务器集群，以供 IT 专业人员的特定团队使用，监控客户或公民的季节性涌入。每个人都希望及时部署整个栈。他们希望基础架构在混合云场景的上下文中运行工作负载，使用“<ruby> 构建-消耗-回收 <rt>  build-consume-trash </rt></ruby>”模型来优化成本，同时从无限弹性中受益。

换句话说，每个人都想要乌托邦式的“云体验”。

### 云真的能交付吗？

尚有一线机会，这主要归功于 [Kubernetes](https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM) 的设计方式。Kubernetes 的指数级普及推动了创新，取代了管理平台和应用的标准传统做法。 Kubernetes 需要使用 “<ruby> 万物皆代码 <rt>  Everything-as-Code </rt></ruby>”（EaC）来定义从简单的计算节点到 TLS 证书的所有资源的期望状态。Kubernetes 强制使用三种主要的设计结构：

* 一个标准接口，以减少内部和外部组件之间的整合问题
* API 优先及仅 API 的方法来标准化其所有组件的 CRUD（创建、读取、更新、删除）操作
* 使用 [YAML](https://opensource.com/article/21/9/yaml-cheat-sheet) 作为通用语言，以简单易读的方式定义这些组件的所有所需状态

这三个关键组成部分基本上是选择自动化平台的相同要求，至少如果你想让跨职能团队轻松采用是这样的。这也模糊了团队之间的职责分工，有助于提高跨越孤岛的协作，这是一件好事！

事实上，采用 Kubernetes 的客户和合作伙伴正在加速进入超自动化状态。Kubernetes 有机地推动团队采用多种 [DevOps 基础和实践](https://opensource.com/resources/devops)，如：EaC、[使用 Git 进行版本控制](https://opensource.com/life/16/7/stumbling-git)、同行评审、<ruby>   文档即代码  <rt>  Documentation as Code </rt></ruby>，并鼓励跨职能协作。这些实践有助于提高团队的自动化技能，并帮助团队在处理应用生命周期和基础架构的 GitOps 和 CI/CD 管道方面取得良好的开端。

### 让自动化成为现实

你没看错！网络商店或政府报告等复杂系统的整个栈可以用清晰、可理解、通用的术语定义，可以在任何本地或云提供商上执行。可以定义具有自定义指标的自动伸缩器以触发所需栈的即时部署，以解决季节性高峰期间客户或市民的涌入问题。当指标恢复正常，且云计算资源不再有存在的理由时，你将它们回收并恢复常规运营，而由一组核心资产在本地接管业务，直到下一次激增。

### 鸡和蛋的悖论

考虑到 Kubernetes 和云原生模式，自动化是必须的。但它提出了一个重要的问题：一个组织可以在解决自动化战略之前采用 Kubernetes 吗？

似乎从 Kubernetes 开始可以激发更好的自动化，但这并不是一个一成不变的结论。工具不是对技能、实践和文化问题的解决方案。但是，设计良好的平台可以成为 IT 组织内学习、变革和跨职能协作的催化剂。

### 开始使用 Kubernetes

即使你觉得自己错过了自动化列车，也不要害怕从简单、不复杂的栈上开始使用 Kubernetes。当你 [掌握了初始步骤](https://opensource.com/article/17/11/getting-started-kubernetes)，就可以拥抱这个出色的编排系统的简单性，并根据更复杂的需求进行迭代。

---

via: <https://opensource.com/article/22/10/kubernetes-solve-automation-challenges>

作者：[Rom Adams](https://opensource.com/users/romdalf) 选题：[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/) 荣誉推出


在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器

# 在 Ubuntu 22.10 上安装 Gedit 并将其设为默认文本编辑器

[GNOME 有了一个全新的文本编辑器](https://itsfoss.com/gnome-text-editor/)，以取代旧的 Gedit 编辑器。

虽然 GNOME 42 已经可以使用了它，但 Ubuntu 22.04 还依赖于 Gedit。

这在 Ubuntu 22.10 中发生了变化。 GNOME <ruby> 文本编辑器 <rt>  Text Editor </rt></ruby> 现在是默认程序，甚至没有安装 Gedit。

虽然新编辑器足够好，但并不是每个人都喜欢它。如果你将 Gedit 与其他插件一起频繁使用，则尤其如此。

如果你属于这类人，让我向你展示如何在 Ubuntu 上安装 Gedit。我还将分享如何将其设为默认文本编辑器。

### 在 Ubuntu 上安装 Gedit

这实际上是不费吹灰之力的。虽然默认未安装 Gedit，但它仍然可以在 Ubuntu 仓库中找到。

所以，你所要做的就是使用 `apt` 命令来安装它：

```
sudo apt install gedit

```

Gedit 也可以在软件中心中找到，但它是 Snap 包。如果你愿意，你可以安装它。

#### 安装 Gedit 插件（可选）

默认情况下，Gedit 为你提供访问一些插件的选项。你可以从 “汉堡菜单-><ruby> 偏好 <rt>  Preference </rt></ruby>-><ruby> 插件 <rt>  Plugins </rt></ruby>” 启用或禁用插件。

你可以在这里看到可用的插件。检查已安装或正在使用的插件。

但是，你可以通过安装 gedit-plugins 元数据包将插件选择提升到一个新的水平。

```
sudo apt install gedit-plugins

```

这将使你可以访问其他插件，如书签、括号补全、Python 控制台等。

**提示**：如果你发现 Gedit 因缺少底角而显得有些格格不入，你可以安装一个名为 [Round Bottom Corner](https://extensions.gnome.org/extension/5237/rounded-window-corners/) 的 GNOME 扩展。这将为包括 Gedit 在内的所有应用强制添加圆底角。

### 使 Gedit 成为默认文本编辑器

好了！你已经安装了 Gedit，但文本文件仍然在双击操作后使用 GNOME 文本编辑器打开。要使用 Gedit 打开文件，你需要右键单击，然后选择“<ruby> 打开方式 <rt>  open with </rt></ruby>”选项。

如果你希望一直使用 Gedit 打开文本文件，你可以将其设置为默认程序。

右键单击文本文件并选择“<ruby> 打开方式 <rt>  open with </rt></ruby>”选项。在此处选择 Gedit 并从底部启用“<ruby> 始终用于此文件类型 <rt>  Always use for this file type </rt></ruby>”选项。

### 删除 Gedit

觉得 Gedit 没达到预期么？这很少见，但我不会评判你。要从 Ubuntu 中删除 Gedit，请使用以下命令：

```
sudo apt remove gedit

```

你也可以尝试从软件中心卸载它。

### 总结

GNOME 文本编辑器是下一代从头开始创建的编辑器，它与新的 GNOME 完美融合。

对于简单的文本编辑来说已经足够了。然而，Gedit 有一个插件生态系统，赋予它更多功能。

对于那些将它广泛用于编码和其他事情的人来说，安装 Gedit 仍然是 Ubuntu 中的一个选项。

那你呢？你会坚持使用默认的新文本编辑器还是回到旧的 Gedit？

---

via: <https://itsfoss.com/install-gedit-ubuntu/>

作者：[Abhishek Prakash](https://itsfoss.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/) 荣誉推出


如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10

# 如何在 Ubuntu 和其他相关 Linux 中安装 Python 3.10

>
> 计划为工作安装 Python 3.10？以下是在 Ubuntu 和相关发行版中安装 Python 3.10 的方法。
>
>
>

Python 3.10 于 2021 年 10 月 25 日发布，具有附加功能和更新。此版本带来了更好的错误消息处理、新的模式匹配功能、<ruby> 类型别名 <rt>  TypeAlias </rt></ruby>、用户定义的类型保护等。你可以在 [此处](https://docs.python.org/3.10/whatsnew/3.10.html) 阅读发布重点。

在编写本指南时，大多数当前发行版都采用 Python 3.10。例如，Ubuntu 22.04 LTS 和 Fedora 36 默认都有 Python 3.10。

也就是说，如果你现在在任何不支持的版本中需要 Python 3.10，你可以使用 [下面的可靠 PPA](https://github.com/deadsnakes) 在 Ubuntu 中安装最新的 Python 3.10。下面是方法。

### 如何在 Ubuntu 上安装 Python 3.10

此 PPA 可用于 Ubuntu 21.10、Ubuntu 21.04、Ubuntu 20.04 LTS、Ubuntu 18.04 LTS 和 Linux Mint 20.x、Elementary OS 6 和其他相关的基于 Ubuntu 的发行版。这些发行版大多数默认情况下不支持 3.10。

打开终端并添加以下 PPA：

```
sudo add-apt-repository ppa:deadsnakes/ppa

```

使用以下命令刷新缓存：

```
sudo apt update

```

并使用以下命令安装 Python 3.10：

```
sudo apt install python3.10

```

### 设置 Python 版本

将 Python 3.10 设置为默认值需要一些额外的步骤。如下。

>
> **警告**：你的 Ubuntu 系统中的许多应用程序依赖于 Python 3.9 的库存版本。因此，请确保你的工作应用（例如 GIMP、GNOME 终端等）与 Python 3.10 兼容。所以，要小心。
>
>
>

**快速提示：** 如果要检查已安装的系统包中的哪些依赖于特定版本，请使用 `apt-cache` 命令的 `rdepends` 开关。在下面的示例中，我检查哪些已安装的包依赖于 Python 3.8。

```
apt-cache rdepends python3.8

```

```
[~]$ apt-cache rdepends python3.8
python3.8
Reverse Depends:
python3.8-dbg
virtualbox
python3.8-venv
python3.8-full
libpython3.8-testsuite
libglib2.0-tests
idle-python3.8
idle-python3.8
python3.8-minimal
python3.8-doc
python3.8-dev
python3.8-dbg
python3-uno
gedit
virtualbox
stimfit
python3.8-venv
python3-stfio
python3-escript-mpi
python3-escript
python3-csound
pitivi
obs-studio
liferea
libpython3.8-testsuite
libglib2.0-tests
kitty
kdevelop-python
idle-python3.8
idle-python3.8
rhythmbox-plugins
python3.8-minimal
python3.8-doc
python3.8-dev
python3
python3-uno
python3-all
cluster-glue
gedit
[~]$

```

#### 使用 Python 3.10 作为默认 Python3

首先，使用终端中的以下命令检查当前默认版本。

```
python3 --version

```

使用 `update-alternatives` 创建指向 `python3` 的符号链接。

```
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

```

```
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2

```

并通过以下命令选择使用哪一个作为 `python3`：

```
sudo update-alternatives --config python3

```

这就是所有步骤。现在，你可以开始在当前的 Ubuntu 版本中使用最新的 Python 进行工作/学习。你可以使用上述命令切换到库存版本并在任何时间更改版本号。

---

via: <https://www.debugpoint.com/install-python-3-10-ubuntu/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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: • Chrome 准备废弃刚刚标准化的 JPEG-XL 图像格式 • VMware 为过期版本修补了一个高危漏洞 • FreeBSD 再次引入 WireGuard

# 硬核观察 #805 Chrome 准备废弃刚刚标准化的 JPEG-XL 图像格式

### Chrome 准备废弃刚刚标准化的 JPEG-XL 图像格式

JPEG-XL 作为一种免版税的下一代有损/无损图像格式，其性能比 JPEG 好得多，因此被人们所看好。JPEG-XL 部分是基于谷歌的 PIK 提案，该文件格式在去年才被标准化。自 Chrome 91 以来，谷歌浏览器通过一个功能标志启用 JPEG-XL 支持，但谷歌正在考虑在 Chrome 110 中废除对该图像的支持。目前还没有公开的评论，说明他们放弃 JPEG-XL 的理由，但是谷歌方面一直在积极推广他们的 WebP 格式。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Chrome-Deprecating-JPEG-XL)**
>
>
>

>
> 老王点评：看来还是谷歌觉得 JPEG-XL 不够亲儿子。
>
>
>

### VMware 为过期版本修补了一个高危漏洞

VMware 修补了一个影响其 VMware Cloud Foundation 和 NSX Manager 产品的高危漏洞，该漏洞允许未经授权的黑客以最高的系统权限执行恶意代码。该漏洞危险等级 9.8/10，存在于其所依赖的 XStream 开源库中，因为危险是如此之高，VMware 不同寻常的为不再支持的版本发布了补丁。

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

>
> 老王点评：还不错，还会为停止支持的过期产品提供安全补丁。
>
>
>

### FreeBSD 再次引入 WireGuard

早在 2020 年，FreeBSD 就引入了 WireGuard，但后来发现其初始实现代码太烂，而在 FreeBSD 13 RC 期间被移除。后来，WireGuard 的上游开发者亲自出手参与了其在 FreeBSD 的实现，经过两年的精细打磨，终于在周五重新进入了 FreeBSD 内核。预计它将出现在 FreeBSD 14 中，之前版本的 FreeBSD 也将会向后移植。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/FreeBSD-WireGuard-Lands-2022)**
>
>
>

>
> 老王点评：为 FreeBSD 的精益求精点赞。
>
>
>


硬核观察 #806 谷歌给出了废弃 JPEG-XL 的理由：不爱了

Summary: • 谷歌给出了废弃 JPEG-XL 的理由：不爱了 • 国外网友发现他的猫在“使用”百度 • 苹果公司增加了漏洞赏金，但不准备针对之前的操作系统

工程师说砍需求就能砍？实际上是M$把一些算法申请了专利，Google不敢用了

jpegxl.io/articles/rans

合着这硬核观察就是机翻一下外网新闻呗

今天好早

Google：互联网内容套娃严重，链接搬运泛滥，独创性不足。<br />
所以根本用不上这么好的东西，大家散了吧

ANS算法av1和zstd也在用，谷歌总不能也废弃av1吧；总之就是欲加之罪何患无辞

# 硬核观察 #806 谷歌给出了废弃 JPEG-XL 的理由：不爱了

### 谷歌给出了废弃 JPEG-XL 的理由：不爱了

昨天我们 [报道](/article-15196-1.html) 过，谷歌准备在 Chrome 110 中废弃 JPEG-XL 的实验性支持。对此，谷歌的一位工程师给出了他们的理由：实验性标志和代码不应该无限期地保留下去；整个生态系统没有足够的兴趣继续实验；新的图像格式并没有带来足够的增量优势；减少维护负担。而事实上，JPEG-XL d 比特流在 2020 年底才被冻结，文件格式在去年才被标准化，编码系统在今年早些时候才被标准化。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Chrome-Dropping-JPEG-XL-Reasons)**
>
>
>

>
> 老王点评：分手就分手，这些都是借口~~
>
>
>

### 国外网友发现他的猫在“使用”百度

一位国外网友给自己的猫买了一个自动喂食器，但是他发现这个喂食器每隔五分钟就会解析一下 `baidu.com` 的域名。经过研究，原来这个带有摄像头、WiFi 功能和云端服务的物联网设备，会通过解析 `baidu.com` 来判断网络联通性。而这是硬编码到其设备代码中的，并且使用了过期的解析库。至于为什么会解析百度而不是谷歌，显然这是一台中国生产的物联网设备。

>
> **[消息来源：SANS](https://isc.sans.edu/forums/diary/Why+is+My+Cat+Using+Baidu+And+Other+IoT+DNS+Oddities/29188)**
>
>
>

>
> 老王点评：这就是产地证明……
>
>
>

### 苹果公司增加了漏洞赏金，但不准备针对之前的操作系统

苹果安全博客带来了修订后的漏洞赏金的消息，有些漏洞赏金最高是以前最高赏金的两倍，一个零点击远程攻击链的理论最高赏金可达 200 万美元。但与此同时，苹果已经表示，旧的操作系统版本可能无法获得所有已知安全问题的修复。

>
> **[消息来源：The Register](https://www.theregister.com/2022/10/28/apple_boosts_bug_bounties_blogs/)**
>
>
>

>
> 老王点评：虽然说是苹果的操作系统是免费升级，但是老设备是不能一直升级下去的，所以，换新设备吧。
>
>
>


为什么我爱 Chromebook：当然是因为它是一个 Linux 桌面系统

Summary: 我们喜欢强力的机器，但有时是为了更快地启动和运行。

原作者小白吧，500美元去买chromebook。。。

我们喜欢强力的机器，但有时是为了更快地启动和运行。

# 为什么我爱 Chromebook：当然是因为它是一个 Linux 桌面系统

>
> 我们喜欢强力的机器，但有时是为了更快地启动和运行。
>
>
>

<img src="content_image/album_202210_31_182750hiawb60cega8bgn3.jpg" alt="" title="">

我喜欢 Linux 桌面这件事对任何读过我作品的人来说都不会感到惊讶。我的意思是，我曾经是一个早已消失的出版物《Linux 桌面》的主要作者和编辑。那么，为什么我在底特律召开的 Kubecon 北美峰会上，在我的惠普 Chromebook x360 上写这篇文章呢？

很简单，因为 Chrome OS 是一个 Linux 发行版。以前是，以后也是。

而这让一些 Linux 粉丝很恼火。他们对 Linux 桌面未来的设想是让每个人都“运行 Ubuntu，不是 Fedora 或 Arch Linux！”，“拜托，Linux Mint 才是赢家”，“MX Linux”，“现实点吧！使用 openSUSE Tumbleweed！” 等等，不一而足。有 [上千种 Linux 发行版](https://distrowatch.com/)，这就是我们永远不会看到他们的 “[Linux 桌面消灭 Windows](https://www.theregister.com/2022/10/14/year_of_linux_desktop/)” 的梦想实现的一个重要原因。

但 Chromebook 不同。当然，Chromebook 的销售已经 [崩溃](https://www.theregister.com/2022/04/14/chromebook_sales/) 了，但部分原因是 Chromebook 太皮实耐用了。与 Windows 机器不同的是，Windows 机器的寿命大概是三年，而我有的 Chromebook 已经运行了七年了。

的确，它们的 [自动更新到期（AUE）日期](https://support.google.com/chrome/a/answer/6220366?hl=en) 已经成为过去了，所以我不能再获得自动更新。但是，那又怎样？甚至谷歌也 [承认](https://support.google.com/chromebook/answer/7052113?hl=en) 你可以在它们的平均五年到期日期之后继续使用它们。

而如果是 Windows，那就不一样了。任何仍在运行 Windows 7 的人都是邀请黑客来黑他，除非他们购买了 [扩展安全更新（ESU）合同](https://learn.microsoft.com/en-us/lifecycle/faq/extended-security-updates)。而且，即使是这样，ESU 也将在 2023 年 1 月结束。

然而，Chrome OS 呢？与每个月都有重大安全补丁的 Windows 不同，Chrome OS 的严重安全问题很少，也很难出现。例如，上一次 Chrome OS 的 [重大安全漏洞](https://www.cvedetails.com/vulnerability-list.php?vendor_id=1224&product_id=20320&version_id=&page=1&hasexp=0&opdos=0&opec=0&opov=0&opcsrf=0&opgpriv=0&opsqli=0&opxss=0&opdirt=0&opmemc=0&ophttprs=0&opbyp=0&opfileinc=0&opginf=0&cvssscoremin=0&cvssscoremax=0&year=0&month=0&cweid=0&order=1&trc=45&sha=b4fed875175c2d9b0370914ce0ba1d4fc2289f40) 突然出现并被修复的时间是 2019 年。

当然，Chrome 浏览器又是另一件事。这个浏览器也是 Chrome OS 的桌面界面，经常有重要的安全更新。但是，谷歌有望将 Chrome OS 和 Chrome 浏览器分开，所以即使你不能得到 Chrome OS 的升级，你也会得到 [浏览器的更新](https://chromeunboxed.com/googles-ceo-may-have-just-confirmed-the-split-of-chrome-and-chrome-os/)。

此外，谷歌和它的合作伙伴现在也在延长 AUE。例如，2022 年 3 月的三星 Galaxy Chromebook 2 的 AUE 支持到 2028 年 6 月。

当然，在这一切之下，是 Linux。而且，如果你愿意，你还可以安装一个全面的 Linux 发行版来搭配它。默认选择是 Debian Bullseye。这很容易。只要多做一点，你也可以安装其他发行版。

我这样做是因为虽然我可以用谷歌文档完成大部分工作，但我喜欢使用 Linux 的 Shell 命令、GIMP 图形编辑器和 LibreOffice 办公套件。

那么，为什么我不在笔记本电脑上运行 Linux 呢？嗯，我也这么做了。我有一台装有 Ubuntu Linux 的戴尔 XPS 13 开发者版，还有一台装有 Mint Linux 的旧 XPS 13，以及我的联想 ThinkPad X1 上的 Fedora 工作站。但是，当我在路上的时候，我喜欢有一台轻便、便宜的笔记本电脑，如果我把它弄坏了，我就可以随时换一台。

作为一个笨手笨脚的人，我经常弄坏我的笔记本电脑。最近，当我在德克萨斯州奥斯汀举行的北美开源峰会上，一个电涌把我的联想 IdeaPad Duet 5，一个顶级的二合一 Chromebook/tablet 炸掉了。衰！

现在，如果我运行的是一台普通的 Windows、MacBook 或 Linux 笔记本电脑，我就会啥也干不了了。我必须买一个新的机器，更新它 —— 如果我是一个 Windows 用户，这绝不是小事 —— 然后安装和更新我的软件。至少，我会损失一天的工作时间，我不知道你怎么想，但我不能占用那么多的工作时间。

相反，我跑到最近的百思买，买了前面提到的惠普 Chromebook X360。从我的旧 Chromebook 爆炸到回到我之前工作的那条线，我的总停机时间只有一个多小时。其中大部分时间是在往返商店的路上度过的。

另一个 Chromebook 的优点是，更换系统的费用不到 500 美元。当然，也有昂贵的 Chromebook。我有很多台 Chromebook，而且我很喜欢它们。但是，你不必在 Chromebook 上花太多的钱，就能获得良好的用户体验。

有许多很棒的、便宜的 Chromebook，价格低于 500 美元。今天，即使是最低端的 Chromebook 也拥有 Chrome OS 和Linux 工作所需的所有能力。如处理器、内存和存储这些技术规格对大多数用户来说并不重要。你只想找一个有体面的屏幕和键盘的产品。

对于 Linux、Mac 和 Windows 则是不同的情况。我不会去碰那些标价低于 800 美元的产品。你可以在任何东西上运行 Linux —— 我是说任何东西 —— 但购买预装了 Linux 的笔记本电脑往往和 Windows 一样贵。此外，当我需要立即恢复工作时，我没有时间去找一台旧的笔记本电脑来安装 Linux。当然，即使是最便宜的 Mac 也要 1000 美元。

因此，至少对我来说，我首选的公路战士 Linux 笔记本电脑是 Chromebook。想想吧，试一试 —— 上帝都知道 Chromebook 足够便宜 —— 你可能会发现你同意我的观点。

---

via: <https://www.theregister.com/2022/10/28/column/>

作者：[Steven J. Vaughan-Nichols](https://www.theregister.com/Author/Steven-J-Vaughan-Nichols) 选题：[wxy](https://github.com/wxy) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-15195-1.html) 荣誉推出


如何从 Ubuntu 22.04 LTS 升级到 22.10

sudo apt update

sudo apt upgrade

应该是两行

谢谢

# 如何从 Ubuntu 22.04 LTS 升级到 22.10

>
> 这里是如何将你当前的 Ubuntu 22.04 LTS Jammy Jellyfish 升级到 Ubuntu 22.10 Kinetic Kudu 的步骤。
>
>
>

始终停留在长期支持的发布版本，这是金科玉律。因为，先前的 [Ubuntu 22.04 LTS](https://www.debugpoint.com/ubuntu-22-04-review/) Jammy Jellyfish 将被支持到 2027 年 4 月。这是一段很长的时间。

此外，LTS 版本超级稳定。它们很少损坏并变得不稳定。因此，如果你在笔记本电脑/台式机电脑或服务器上安装使用 LTS 版本，保持使用它。

然而，如果你想要最新的内核、GNOME 43 和 Pipewire 之类的最新技术 – 你可能会想完成版本跳级，并升级到 [Ubuntu 22.10 Kinetic Kudu](https://www.debugpoint.com/ubuntu-22-10/)。

这里是如何做的方法。

### 升级 Ubuntu 22.04 LTS 到 Ubuntu 22.10

**注意**：我希望你没有运行去年 10 月份发布的 Ubuntu 21.10 Impish Indri 。因为它已经不被支持。但是鉴于某些原因，你正在运行它，我建议你直接重新安装 22.10 。或者，先升级到 22.04 ，再升级到 22.10 。

#### 在你升级前

在你升级前，做一些内务整理。这是非常重要的。

* 备份你的 `/home`、/`downloads` 和其它的文件到 USB 驱动器或任意独立的分区，以防升级失败。
* 如果你随着时间的流逝而添加了一些额外的 PPA ，确保将它们记录下来。虽然，在升级过程开始前，升级过程将禁用 PPA 。而在升级完成后，确保手动启用 PPA 。
* 记录并禁用所有的 GNOME 扩展。如果开发人员没有按照 GNOME 版本进行更新，那么扩展在升级后将会损坏。
* 家中常备一个现场 USB 磁盘。

#### 升级步骤

打开 “<ruby> 软件包和更新 <rt>  Software & Update </rt></ruby>” 。

转到 “<ruby> 更新 <rt>  Updates </rt></ruby>” 标签页。

转到 “<ruby> 通知我新的 Ubuntu 版本 <rt>  Notify me of a new Ubuntu version </rt></ruby>”，选择并将其更改为 “<ruby> 任意新的版本 <rt>  For any new version </rt></ruby>”。

这将告诉软件包管理器来查找 Ubuntu 22.10 发布版本的详细信息。

打开一个终端，并运行下面的命令：

```
sudo apt update
sudo apt upgrade

```

或者，你也可以打开软件包更新程序。安装所有的准备就绪的软件包。

在两个命令完成后，打开软件包更新。你将会看到一个升级到 Ubuntu 22.10 的提示（如下图所示）。

现在，单击 “<ruby> 升级 <rt>  Upgrade </rt></ruby>” 按钮，并按照屏幕上的说明进行操作。升级过程需要一些时间，因此，要耐心等待，直至升级完成。确保在整个升级过程中有稳定的互联网链接。

如果你尚未获得更新，请等待一、两天后再次尝试。

如果你没有看到上述提示，手动重新启动一次系统。并再次添加尝试。

#### 通过终端

在终端中通过 nano 文件编辑器打开下面的文件。

```
nano /etc/update-manager/release-upgrades

```

将 `Prompt=LTS` 更改为 `Prompt=normal` 。注意：如果你已经如上所述将更新标签页更改为 “<ruby> 任意新的版本 <rt>  For any new version </rt></ruby>” ，那么这个文件应该已经更新了。但是，要验证它一次。

分别按下组合键 `CTRL+O` 和组合键 `CTRL+X` 来保存和退出。

最后，你也可以运行下面的命令来从终端中强制升级过程。

```
sudo do-release-upgrade -c

```

升级过程需要花费一些时间（最少半个小时，上不封顶），这主要取决于你的互联网连接和硬件。直至等到其完成。在完成后，重新启动并享受 Ubuntu 22.10 Kinetic Kudu.

在升级过程进行时，看看我们 [不久前发布的关于 Ubuntu 22.10](https://www.debugpoint.com/tag/ubuntu-22-10) 的精彩文章。

---

via: <https://www.debugpoint.com/upgrade-ubuntu-22-04-22-10/>

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

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


设置路径在 Powershell 中使用开源命令

Summary: 在 Windows 上设置你的路径，这样你就可以使用开源的命令。

这教程不误人子弟啊，都把原有的PATH直接给覆盖了<br />
为什么不编辑$PROFILE 给$env:PATH append添加需要的路径？

确实，这个截图显示，他没有原来的 PATH 变量

在 Windows 上设置你的路径，这样你就可以使用开源的命令。

# 设置路径在 Powershell 中使用开源命令

>
> 在 Windows 上设置你的路径，这样你就可以使用开源的命令。
>
>
>

当你在操作系统上启动应用程序时，操作系统需要使用某些代码库和实用程序来运行该应用程序。你的操作系统知道如何找到这些库和实用程序，因为它有一个 *系统路径*，这是一个通往许多应用程序需要的共同共享数据的地图。所有操作系统都有这一点，但用户通常不会意识到这一点，因为他们通常不需要在意它。然而，当你需要编程或使用特殊的网络实用程序或命令时，你可能需要关心你自己的 `PATH` 变量配置。

`PATH` 变量使你可以将命令保存到一致的位置，并使用命令提示符或更强大（而开源的）[Powershell](https://opensource.com/article/18/2/powershell-people) 从系统上的任何位置调用它们。

例如，假设你想安装开源应用程序 `pscp.exe`，它是 Windows 上著名的 PuTTY OpenSSH 客户端的命令行界面。你可以将它下载到你的硬盘，但是你的命令行如何知道它的存在呢？其实一开始，它并不知道：

```
PS> pscp
 pscp: 命令 “pscp” 不能被识别为 cmdlet、脚本文件或可操作程序的名称。
 检查名称的拼写，或者如果包含了路径，则检查路径是否正确，然后再试一次。

```

如果你正在使用一个开源命令行，例如 Powershell 或 [Cmder](http://cmder.app/)，那么你将得到一个有用的错误提示，提示这可能是你的路径有问题（或缺少路径）。下面是解决这个问题的方法。

### 设置 PATH

首先，在桌面上创建一个名为 `App` 的文件夹。

接下来，右键单击屏幕左下角的 Windows 菜单，然后选择 “<ruby> 系统 <rt>  System </rt></ruby>”。

在弹出的 “<ruby> 系统 <rt>  System </rt></ruby>” 窗口中，单击窗口左侧的 “<ruby> 高级系统设置 <rt>  Advanced system settings </rt></ruby>” 链接。

在出现的 “<ruby> 系统属性 <rt>  System properties </rt></ruby>” 窗口中，单击窗口底部的 “<ruby> 环境变量 <rt>  Environment variables </rt></ruby>” 按钮。

在 “<ruby> 环境变量 <rt>  Environment variables </rt></ruby>” 窗口中，单击 “<ruby> 用户变量 <rt>  User variables </rt></ruby>” 面板下的 “<ruby> 新建 <rt>  New </rt></ruby>” 按钮。

在弹出的对话框中，为 “<ruby> 变量名 <rt>  Variable name </rt></ruby>” 字段输入 `PATH`，为 “<ruby> 变量值 <rt>  Variable value </rt></ruby>” 字段输入 `%USERPROFILE\Desktop\App` 。单击 “<ruby> 确定 <rt>  OK </rt></ruby>” 按钮保存更改。

在 `Desktop/Apps` 中放置你想从命令提示符中访问的命令和应用程序，Powershell、Cmder 甚至 Cmd 都能找到它们。

```
PS> pscp –version
 pscp: Release 0.XY
 Build platform: 64-bit x86 Windows
 PS>

```

### 自动设置路径

许多应用程序会在安装过程中自动添加到系统路径中。然而，并不是所有的程序都如此，要么是因为你在安装过程中遗漏了一个复选框，要么是因为应用程序开发人员希望你自己添加它。当自动路径失败时，你现在知道如何自己设置路径。

*（图像来自：Alan Smithee, CC BY-SA 4.0）*

---

via: <https://opensource.com/article/22/10/set-path-powershell>

作者：[Alan Smithee](https://opensource.com/users/alansmithee) 选题：[lkxed](https://github.com/lkxed) 译者：[qfzy1222](https://github.com/qfzy1233) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #807 利用 AI 对动物进行剥削

Summary: • 利用 AI 对动物进行剥削 • 旧金山举办人工智能艺术展 • Discord 半年禁止了 5500 万个账户

有没有什么国内可以访问，使用中文的AI智能作画网站？

# 硬核观察 #807 利用 AI 对动物进行剥削

### 利用 AI 对动物进行剥削

人们设立了自动监听站，它们甚至可以贴在小如蜜蜂的动物身上。这些数字设备的功能就像一个行星规模的助听器：使人类能够观察和研究大自然的声音，超越我们感官能力的极限。这些数据通过 AI 来处理，找到可能帮助我们理解动物之间的对话的模式，现在已经有了鲸鱼的歌声和蜜蜂的舞蹈等数据库。但这也可能带来一个意想不到的滥用：比如将机器人放入蜂巢，欺骗蜜蜂飞到哪里去寻找特定的蜜源，从而对动物进行剥削性使用。

>
> **[消息来源：VOX](https://www.vox.com/recode/2022/10/30/23426406/ai-animals-google-translate-karen-bakker-sounds-of-life)**
>
>
>

>
> 老王点评：AI 确实能做很多好事，但是，如果被滥用也很可怕。你能想象蜜蜂被不断驱使去采蜜直到累死吗？
>
>
>

### 旧金山举办人工智能艺术展

旧金山的一个名为“人工想象”新的艺术展览展示了艺术家们利用 DALL-E 2、GPT-3 和其他 AI 系统生成的作品。作品包括一系列的作品，从视频到静态图像和雕塑。艺术家和策展人说，这个展览是第一个此类展览，是对人工智能艺术确实是艺术的一个重要认可。一些参加展览的艺术家将当前的时刻比作伴随着照相机到来的类似的手忙脚乱。

>
> **[消息来源：axios](https://www.axios.com/2022/10/31/exhibit-ai-images-art-dall-e-2-gpt-3)**
>
>
>

>
> 老王点评：确实，就像相机的出现不但没有消灭传统艺术，反而成了一种新的艺术门类。
>
>
>

### Discord 半年禁止了 5500 万个账户

Discord 最近公布了其季度安全报告，其中指出，在 2022 年 1 月至 6 月期间，约有 5500 万个账户和 68000 个服务器被禁用。其中绝大多数是由于“垃圾信息或与之有关的行为”而被关闭的。只有 1% - 2% 的上诉成功得到了解封。

>
> **[消息来源：The Gamer](https://www.thegamer.com/discord-bans-68000-servers-55-million-accounts/)**
>
>
>

>
> 老王点评：虽然 Discord 上充斥着垃圾信息，但是这么大的数量还是令我吃惊。
>
>
>


如何通过 chroot 恢复 Arch Linux 安装

# 如何通过 chroot 恢复 Arch Linux 安装

>
> 这篇速成指南诠释了一些步骤，它对于恢复一个 Arch Linux 安装很有帮助。
>
>
>

作为一个滚动发布版本，Arch Linux 有时会崩溃。那不是你自身的问题，而是因为数百个其它的原因，例如一个新内核与你的硬件或软件的兼容性。但是，即使如此，Arch Linux 仍然是比较优秀的，并且提供最新的软件包和应用程序。

但是，有些时候，它会给你带来麻烦，最后你只会看到一个闪烁的光标。

因此，在这种情况下，在你放弃希望前，你可能希望尝试恢复系统的安装以及数据，而不是重新格式化或重新安装。这篇指南在这些方面概述了一些步骤。

### 恢复 Arch Linux 安装

第一步是创建一个可启动的 Arch Linux 的<ruby> 现场 <rt>  Live </rt></ruby> USB 。从下面的链接中下载 ISO 镜像文件，并创建一个可启动的 ISO 的启动盘。你可以查看 [这篇](/article-15020-1.html) 关于如何使用 Etcher 创建可启动的 ISO 的启动盘的指南。记住，这一步骤需要在另一个工作稳定的系统上完成，很明显，这是因为你当前系统是不可用的。

>
> **[下载 arch linux](https://archlinux.org/download/)**
>
>
>

你需要知道在 **你的 Arch Linux 安装在哪个分区上**。这是关键的一步。如果你不知道，你可以使用 GParted 来找出来。或者在你的 Grub 菜单中查看，或者也可以运行下面的命令来找出来。这将列出你所有的磁盘分区、大小和标签。

```
sudo lsblk -o name,mountpoint,label,size,uuid

```

在完成后，插入 USB 设备，并从中启动。你应该会在现场 USB 启动后看到 Arch Linux 提示符。

现在，使用下面的命令挂载 Arch Linux 分区。将 `/dev/sda3` 更改为你实际对应的分区。

```
mount /dev/sda3 /mnt
arch-chroot /mnt

```

`arch-chroot` 命令将在终端中挂载你的 Arch Linux 分区，然后，使用你的 Arch 用户名和密码来登录系统。现在，取决于你在这个阶段的需要，你可能有下面的一些选项。

* 你可以前往 `/home` 文件夹来备份你的数据。为防止排错手段不能解决问题。你可以复制这些文件到一块外部的 USB 磁盘或其它的分区。
* 检查日志文件，尤其是 pacman 日志，因为升级一些软件包可能会导致系统不稳定工作，例如，图形驱动程序或其它一些驱动程序。依据日志的记载，如果你有需要的话，你可以降级一些具体指定的软件包。

你可以使用下面的命令来查看 pacman 日志文件的最新的 200 行日志，来找出一些引起失败的项或依赖项的缺失。

```
tail -n 200 /var/log/pacman.log | less

```

上面的命令给出 `pacman.log` 文件的末尾处的 200 行来用于查对。现在，仔细检查自你上次成功启动以来更新了哪些软件包。

在某个地方记录下软件包的名称和版本。你可以尝试逐个降级软件包，或者，如果你认为是某个特定的软件包造成的问题的话，你可以使用 `pacman` 命令的 `-U` 开关选项来降级它。

```
pacman -U <package name>

```

在降级后（如果有一些软件包进行降级的话），你可以运行下面的命令来启动你的 Arch 系统。

```
exec /sbin/init

```

检查你的显示管理器的状态，并检查其是否有一些错误。有时，显示管理器会产生不能与 <ruby> X 服务器 <rt>  X Server </rt></ruby> 通信的问题。例如，如果你正在使用 Lightdm ，那么你可以通过下面的命令来检查它的状态。

```
systemctl status lightdm

```

或者，你可能希望通过下面的命令来启动它并检查错误。

```
lightdm --test-mode --debug

```

这里是一个 Lightdm 故障的示例，它导致了 Arch 系统不稳定工作。

或者，使用 `startx` 来启动 X 服务器进行检查。

根据我的经验，如果你在上面的命令中看到这些错误，尝试安装另外一个显示管理器（例如 sddm）并启动它可以消除错误。

* 根据你的系统的实际状态来尝试上面的步骤并解决问题。针对特定的显示管理器 Lightdm 的错误，我们有一份 [指南](https://www.debugpoint.com/2021/03/failed-to-start-lightdm/)，你可能会想查看它。
* 如果你正在使用 sddm ，那么，试试 [这些排错步骤](https://wiki.archlinux.org/title/SDDM#Troubleshooting) 看看是否工作。

### 结语

每个系统环境都是不同的。上面的步骤不一定适合你。但是，它值得一试，根据我的经验，它是可行的。如果它可行，那么恭喜你。否则，在下面的评论区让我知晓你是如何进行的。

---

via: <https://www.debugpoint.com/recover-arch-linux/>

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

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


Vanilla OS：不只是原味 GNOME 的 Ubuntu

# Vanilla OS：不只是原味 GNOME 的 Ubuntu

>
> Vanilla OS 是建立在 GNOME 上的、具有按需不变性和软件包选择自由的 Ubuntu。听起来很有趣？在这里阅读更多信息。
>
>
>

这正是我第一次接触 Vanilla OS 时的想法。

当 [Bottles](https://usebottles.com) 的创建者 **Mirko Brombin** 在 Twitter 上宣布它时，让我对它产生了兴趣 ?。

我加入了他们的 Discord 频道并成为了一名测试者。虽然我没有做出什么贡献，但关注项目发展是很有趣的。

回到至关重要的问题上：**什么是 Vanilla OS？**

**Vanilla OS 的目标是提供一个干净、原味的 GNOME 体验，并具有按需不变性的能力。**

听起来很有趣？让我告诉你我试了试它的第一个开放测试版本后的一些细节。

>
> ? Vanilla OS 计划在 11 月有一个稳定的版本。
>
>
> 它将跟随 Ubuntu 的小版本发布。
>
>
> 因此，你可以期待每年发布**两个版本**。例如，你可以从 Ubuntu 22.04 升级到 Ubuntu 22.10 甚至更之后的版本。
>
>
> 除非你知道自己在做什么，否则你不应该把它作为日常系统来使用。
>
>
>

### Vanilla OS：又一个基于 Ubuntu 的发行版？

**是，也不是**。

对于初学者来说，我认为有以下独特的理由可以尝试一下：

* 在 Ubuntu 之上获得 **原装 GNOME 体验**。（Fedora 也是一个很好的选择，但并不适合所有人！）
* 在其安装后的首次设置时，**允许你选择并启用 Flatpak/Snap/AppImage**。
* **按需不变性**，意味着你可以使系统变成只读，以防止来自第三方应用程序和更新的关键变化。
* **一个新的软件包管理器**（apx）允许你默认在管理的容器内安装软件包。

首次设置过程的体验很轻松。

>
> ℹ 目前，它使用 Calamares 安装程序。他们打算用 Crystal Linux 中使用的 Jade 取代它。
>
>
>

越来越多的发行版投身于此；我相信更多的用户会乐意加入到 Linux 中来。

*Vanilla OS 对软件包管理器的选择*

当然，像 Ubuntu MATE 和 Pop!\_OS 这样的发行版已经付出了巨大的努力，而 Vanilla OS 也为此增加了一些改进。

这看起来是一种漂亮的体验！?

一旦你完成了首次设置，你就没有什么可担心的了。你会得到通常的 GNOME 桌面，以及由 **Patrik Kramolis** 制作的漂亮的壁纸。

接下来，我试着检查了按需不变性，你可以用以下命令查看和调整：

你可以在 [GitHub](https://github.com/Vanilla-OS/almost) 上了解更多这个（基本上）使之成为可能的工具。

接下来，看看新的软件包管理器，我喜欢 Distrobox 的底层概念，使其与 apx 成为可能。

Distrobox 的创建者 **Luca di Maio** 也参与了 Vanilla OS 的开发。

不过，当用 apx 安装一个软件包时，你需要用命令来初始化容器：

```
apx init

```

如果它能自动完成，那就更直观了。

当然，我不知道技术上的限制。但是，对于用户端来说会感觉更顺滑！

总的来说，一个利用容器安装应用程序的软件包管理器、获得选择你的软件包管理器的能力、按需不变性，以及原味的 GNOME 使它看起来是一个值得关注的好东西。

### 前面的路：第一印象

我觉得，一旦它进入稳定版，它就会成为我的日常使用系统。

**原因是**：我总是喜欢原装的 GNOME 体验，而且不需要处理 Fedora 的定期升级。

当然，等我使用了稳定版之后，我可以给你写一篇整体的用户体验评判。

在那之前，我想说这是一个我相信很多用户都会喜欢的项目 ?。

目前，你可以通过加入其 Discord 频道来下载 ISO。该 ISO 还没有公开向所有人提供。如果你感兴趣，可以看看它的 [文档](https://documentation.vanillaos.org)。

>
> **[Vanilla OS](https://vanillaos.org/roadmap)**
>
>
>

然而，按照路线图，他们计划很快就会有一个候选版本。

---

via: <https://news.itsfoss.com/vanilla-os-beta/>

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

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


硬核观察 #808 欧盟新法律可能迫使苹果公司开放其核心利益

Summary: • 欧盟新法律可能迫使苹果公司开放其核心利益 • Mozilla 公布它的 Manifest V3 扩展方案 • Meta 宣称其 AI 音频编解码器提供 10 倍于 MP3 的压缩率

# 硬核观察 #808 欧盟新法律可能迫使苹果公司开放其核心利益

### 欧盟新法律可能迫使苹果公司开放其核心利益

欧盟新的《数字市场法案》（DMA）于今天生效，进入六个月的实施阶段，将于名年 5 月 2 日开始适用。DMA 将适用于符合其 “看门人” 标准的科技巨头，并迫使他们向其他公司和开发者开放其各种服务和平台。苹果几乎可以肯定被列为“看门人”，因此将受到 DMA 的约束。这可能迫使苹果公司让用户访问第三方应用程序商店，并允许在 iPhone 和 iPad 上进行应用程序侧载，使用第三方支付系统，访问苹果收集的数据，以及提高 iMessage 互操作性等等。

>
> **[消息来源：Mac Rumors](https://www.macrumors.com/2022/11/01/dma-eu-law-could-force-major-changes-apple/)**
>
>
>

>
> 老王点评：不能不说，欧盟的这些法律极大地制裁了那些垄断巨头。
>
>
>

### Mozilla 公布它的 Manifest V3 扩展方案

Manifest V3（MV3）是 Chrome 的新扩展规范，Chrome 将从明年 1 月开始逐步淘汰之前的 MV2 扩展。Mozilla 的 MV3 和谷歌的 MV3 之间有些区别，最重要的是没有采用谷歌的声明式网络请求（DNR），而保留了 MV2 的 WebRequest API。这也是新的扩展系统引发广泛争议的地方，广告屏蔽扩展如 uBlock Origin 使用 WebRequest 在广告下载前屏蔽其请求。

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

>
> 老王点评：我觉得 Mozilla 这次做的很好。
>
>
>

### Meta 宣称其 AI 音频编解码器提供 10 倍于 MP3 的压缩率

上周，Meta 公司宣布了一种名为 “EnCodec” 的人工智能驱动的音频压缩方法，据说可以将音频压缩到比 MP3 格式小 10 倍的 64kbps，而且人耳听不到质量损失。其关键是识别人类无法察觉的变化，他们使用鉴别器来提高生成的样本的感知质量，该模型通过让重建的样本与原始样本在感知上更加相似来生成样本以“欺骗”鉴别器。

>
> **[消息来源：Ars Technica](https://arstechnica.com/information-technology/2022/11/metas-ai-powered-audio-codec-promises-10x-compression-over-mp3/)**
>
>
>

>
> 老王点评：通过 AI 分析人耳不能识别的部分，从而“骗过”鉴别器，这真是一种巧妙的方法。AI 越来越做到一些人所做不到的地方。
>
>
>


如何在 Ubuntu 中安装 Viber

Summary: 这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。

有木有开源的社交软件，自己搭服务器，局域网交流的

来自陕西西安西安交通大学的 Firefox 106.0|Windows 10 用户

你现在不就是在局域网内么？

这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。

# 如何在 Ubuntu 中安装 Viber

>
> 这是在 Ubuntu 和其他 Linux 系统中安装 Viber 的快速指南。
>
>
>

[Viber](https://www.viber.com/) 是一个免费、安全的通话和聊天程序，适用于所有流行的移动平台和操作系统。

它具有丰富的功能，例如语音/视频通话、支持 GIF 的文本消息、贴纸、照片和视频。此外，Viber 还具有群聊、群呼和消失消息功能。

Viber 是一个闭源程序，但有免费的 Linux 原生可执行客户端。

下面是安装它的方法。

### 在 Linux 上安装 Viber

它以 AppImage 可执行文件、deb 和 rpm 包的形式提供。按照下面的相应按钮直接下载。平均可执行文件大小约为 180MB。

>
> **[下载适用于所有 Linux 发行版的 Appimage](https://download.cdn.viber.com/desktop/Linux/viber.AppImage)**
>
>
>

>
> **[适用于 Ubuntu 的 Deb 可执行文件](https://download.cdn.viber.com/cdn/desktop/Linux/viber.deb)**
>
>
>

>
> **[Fedora 的 RPM 包](https://download.cdn.viber.com/desktop/Linux/viber.rpm)**
>
>
>

如果你已下载 AppImage，只需从任意文件管理器将权限更改为可执行文件即可。然后运行。

对于 Ubuntu、Linux Mint、Debian 和相关发行版，你可以通过[多种方法](https://www.debugpoint.com/install-deb-files/)安装 deb 包。

你可以通过已安装的软件管理器双击打开。或者通过 `dpkg` 命令安装，如下所示。

```
sudo dpkg -i viber.deb

```

对于 Fedora 和基于 RPM 的软件包，你可以通过以下命令安装。

```
sudo dnf localinstall viber.rpm

```

对于 Arch Linux 和其他发行版，你可以使用我上面提到的 Appimage。

### 使用

完成安装 Viber 后，通过应用菜单打开它。以下是你需要记住的几件事。

在从笔记本电脑/台式机开始使用 Viber 之前，你需要在手机上进行设置。从以下链接为你的移动平台下载并安装 Viber。

* [谷歌应用商店](https://play.google.com/store/apps/details?id=com.viber.voip&hl=en_IN&gl=US)
* [苹果应用商店](https://apps.apple.com/us/app/viber-messenger-chats-calls/id382617920)

安装后，设置 Viber。请记住，它需要你的手机号码才能注册。

设置完成后，在 Linux 桌面上打开应用。你应该会看到如下页面。

从你的手机应用扫描二维码，你应该可以在 Linux 桌面上使用 Viber。

**注意：** 由于它是一个闭源应用，请确保你在使用 Viber 时了解此应用的条款和与隐私相关的情况。

---

via: <https://www.debugpoint.com/install-viber-linux/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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/) 荣誉推出


关于配置 Terraform 的五条建议

Summary: 本文介绍我使用 Terraform 五年之后吸取到的经验。

本文介绍我使用 Terraform 五年之后吸取到的经验。

# 关于配置 Terraform 的五条建议

>
> 本文介绍我使用 Terraform 五年之后吸取到的经验。
>
>
>

使用 Terraform 五年的经历让我吸取到一些重要经验。无论团队大小、项目性质，有五条要点对于配置合乎逻辑且可用的 Terraform 平台至关重要。

### 1、了解你的目标受众

这一点似乎显而易见，但我也见过一些在这方面犯错的案例。当组织和规划 Terraform 的相关代码时，无论是将目录结构标准化还是确定命名规范，考虑目标受众是非常重要的。例如：你的团队是否会使用这些 Terraform 脚本和模块？你是否会向其他团队交接工作？你的团队是否会有新成员加入？你是否正在独自进行项目开发？你是否会半年或一年后仍然使用这些配置，还是会将它安排给别人？

这类问题会影响某些决策。理想情况下，无论如何都应该有 <ruby>   远程状态  <rt>  Remote State </rt></ruby> 和 <ruby>   状态锁定  <rt>  State Locking </rt></ruby> 两种状态。远程状态确保你的笔记本电脑不是你的 Terraform 唯一运行的机器，状态锁定确保同一时刻只有一个人对基础设施进行修改操作。

命名规范应该对项目的最终拥有者有意义，而不是只对开发团队有意义。如果项目会转交给其他团队，应该确保他们对命名规范有发言权。如果代码由非技术的利益相关者或内部安全/ GCR 团队负责审查，应该确保他们会检查命名规范。另外，对于资源名称，为了让代码审查人员更仔细地进行检查，你应该使用资源标签，把有关的数据分类/隐私需求（高、中、低）标示出来。

### 2、重用，重用，重用

[Terraform 注册表](https://registry.terraform.io/) 为大多数普通用例提供了现成模块类库。我已经使用过 VPC 模块和安全模块中的大量功能，这些功能只需要提供相关的参数就能使用。使用不同的参数，简单调用这些模块对于处理大部分用例已经足够了。尽可能多地重用这些公共模块，可以避免大量且重复的编码、测试、检查、修复、重构等操作。

我也发现，基于使用或变更的频率划分模块和资源大有好处。例如，只使用一次的基础设施手脚架，例如 VPC 相关设置、安全模块、路由表、VPC 端点等，可以放在一起。但是像私有托管域条目、自动伸缩模块、目标模块、负载均衡器等，每次部署时都会变化，所以把这些与一次性的基础设施手脚架分离开来，会令代码检查更方便，调试更快速。

### 3、要明确，而非隐含

Terraform 代码中有一些常见的模式，它会导致设计中出现错误的假设。团队可以假设用来写代码的 Terraform 版本永远保持不变，外部模块不会变化，或它们使用的提供者不会变更。当这些外部依赖不可避免地发生变化时，就会导致一些难以发现的问题。

无论何处（包括主要的 Terraform 组、提供者组、功能模块组）都要确保定义是明确的。事先定义版本，可以确保依赖库是固定的，因此你可以在讨论、审查、测试后，明明白白地更新依赖关系。

### 4、自动化每一处，包括笔记本电脑、共享虚拟机、CI/CD。

在部署的各个阶段使用自动化方法，可以避免可能发生的问题。

在你提交代码前，使用 [Git 预提交钩子](https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6) 运行 `terraform fmt` 和 `terraform validate`。预提交钩子的作用是确保你的代码满足最低程度的格式和语法正确。把这个预提交文件检入到仓库，对你的团队成员都有好处。项目的第一步就进行质量控制相关的操作，它虽然表面上是小事一桩，但也很重要，能为项目节省大量时间。

一切现代化部署工具都有 CI 流程。当你向原始仓库推送代码时，可以使用它来运行 SAST 和单元测试工具。我写过一篇 [博客](https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov)，是关于使用 Checkov 测试 Terraform 代码的安全性和合规性，并为组织特定的惯例创建自定义检查。把这些单元测试工具加入到你的 CI 管道，可以改进代码质量和健壮性。

### 5、写个好的 README.md 文件

我们都认为 Terraform 代码是自文档化的。的确如此，但是只有当未来的团队已经了解你的公司的命名规范、开发指南、机密通信、圈内笑话，以及你的仓库内除有效的 Terraform 代码之外其他所有东西，才会如此。维护 `README.md` 文件是个好习惯，它能节省大量时间，而且团队成员要为自己向 README 文件提交的任何内容负责，这样也就确保团队成员的忠诚度。

你的 README 文件至少应该包含在你的工作环境下（Linux、 Windows、Mac 等等）初始化 Terraform 环境的步骤，包括 Terraform 的版本信息。它应当确定需要的依赖库（Checkov、 TerraGrunt 及其他依赖）和其版本，以及团队使用的方便的 Linux 别名（例如有人喜欢将 `terraform fmt` 简写为 `tff`）。最重要的是，需要确定分支和 PR 审核策略和流程、命名规范和资源标签的相关标准。

README 文件需要通过这样的检验：如果团队有新成员加入，能否告诉他们做什么以及如何正确地完成工作？如果不能，在后续的几个月内，你将面对的是无休止的标准和流程讨论会议。

### 结束语

这些就是我使用 Terraform 多年后，认为需要传授给大家的五条有用的建议。也欢迎你分享自己的最佳实践。

---

via: <https://opensource.com/article/21/8/terraform-tips>

作者：[Ayush Sharma](https://opensource.com/users/ayushsharma) 选题：[lujun9972](https://github.com/lujun9972) 译者：[cool-summer-021](https://github.com/cool-summer-021) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #809 安卓占所有操作系统份额的 40% 以上

Summary: • 安卓占所有操作系统份额的 40% 以上 • 英国准备立法废除传真机 • OpenSSL 3 漏洞补丁释出，危险程度比预想要轻

# 硬核观察 #809 安卓占所有操作系统份额的 40% 以上

### 安卓占所有操作系统份额的 40% 以上

Statcounter 是一个网站分析服务，在 150 万个网站上安装了跟踪代码，记录每个网站的数十亿次页面浏览。据 Statcounter 最新数据，安卓占全球所有操作系统份额为 42.37%，Windows 30.11%、iOS 17.6%、OS X 6.24%、除了安卓之外的 Linux 1.04%。而就桌面市场而言，Windows 占 75.93%，OS X 15.74%，Linux 2.6%，Chrome OS 2.38%。对于移动市场，安卓占 70.96%，iOS 28.43%。

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

>
> 老王点评：安卓的成功，也是移动操作系统的成功，也是广义上的 Linux 的成功。
>
>
>

### 英国准备立法废除传真机

传真机由施乐公司在 1964 年商业化，1980 年代起被世界各地的企业广泛使用，如今已被电子邮件、扫描仪、云端传真和即时通讯服务所取代。虽然传真机早已过时，但英国卫生服务机构仍在大量使用它，英国国家医疗服务系统现在还有数百台传真机。英国通信监管机构 Ofcom 表示它准备修订电信规则淘汰传真机。

>
> **[消息来源：The Register](https://www.theregister.com/2022/11/02/ofcom_fax_death_knell/)**
>
>
>

>
> 老王点评：之前利用互联网发送传真都被视作违法，而现今，几乎没有人用传真了。
>
>
>

### OpenSSL 3 漏洞补丁释出，危险程度比预想要轻

由于 OpenSSL 3 出现了严重安全漏洞，原计划在 10 月底发布的 Fedora Linux 37 延迟发布。现在，OpenSSL 3 发布了补丁，修复了两个缓冲溢出漏洞。漏洞等级从之前被认为与“心脏流血”漏洞相当的“超危”降为“高危”。这两个漏洞影响所有 OpenSSL 3.x 系列，不过目前主要使用的版本 OpenSSL 1.x 不受影响。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/OpenSSL-1-November-2022)**
>
>
>

>
> 老王点评：还好，不过互联网安全需要更可靠安全的 SSL 实现。
>
>
>


Linux Lite 6.2 发布

# Linux Lite 6.2 发布

>
> Linux Lite 6.2 是一个理想的升级，带来一些有用的变化，没什么太花哨的东西。
>
>
>

Linux Lite 是一种流行的轻量级的类 Windows 发行版，为用户提供了一个熟悉的操作系统感受。

最新版本 Linux Lite 6.2 基于 Ubuntu 22.04 LTS，对 UI 进行了各种更改以及各种错误的修复。

### Linux Lite 6.2：有什么新功能？

此版本的 Linux Lite 侧重于用户界面调整和错误修复，并对一些应用程序进行了更改。

一些主要亮点包括：

* 更新的图标
* 新壁纸
* Shotcut 视频编辑器
* 删除微软 Teams
* LibreOffice 7.3.6.2
* Linux 内核 5.15

#### Shotcut 取代 OpenShot

是的，[Shotcut](https://shotcut.org/) 现在取代了 [OpenShot](https://www.openshot.org/)，成为 Linux Lite 6.2 上的默认视频编辑器。

OpenShot 之所以被删除，是因为它不能很好地与 Ubuntu 22.04 配合使用，而如果没有一个好用的视频编辑器，用户将不得不自己寻找一个。

Shotcut 无疑是一款出色的视频编辑器。所以，应该是一个不错的选择。

#### 微软 Teams 已删除

另一个重大变化是微软 Teams 不再包含在发行版中。

其原因是微软停止了 Linux 应用程序，转而支持一个渐进式 Web 应用程序版本。

我们之前的报道可以让你更深入地了解：

>
> **[微软决定放弃 Teams 的 Linux 应用，代之以渐进式Web应用](https://news.itsfoss.com/microsoft-linux-app-retire/)**
>
>
>

#### 更新的图标和新壁纸

Linux Lite 6.2 具有最新的 [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) 图标集以及一系列新的 Linux Lite 主题壁纸。

这应该会给发行版带来用户可能喜欢的焕然一新的外观。

#### ? 其他更改和改进

其他值得注意的变化包括：

* 任务管理器的更新
* 改进了 Lite 升级应用程序中的结束对话。
* 各种应用程序的最新更新、错误修复等。

你可以阅读完整的发行说明以 [了解更多信息](https://www.linuxliteos.com/forums/release-announcements/linux-lite-6-2-final-released/)。

Linux Lite 6.2 看起来是对以前版本的令人满意的升级，有许多重大的变化和补充。

### ? 下载 Linux Lite 6.2

你可以从其官方网站下载最新的 ISO 或使用 Lite 升级工具升级到它。

>
> **[Linux Lite 6.2](https://www.linuxliteos.com/download.php)**
>
>
>

? 你如何看待 Linux Lite 6.2？愿意试一试吗？

---

via: <https://news.itsfoss.com/linux-lite-6-2-release/>

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

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


关于编译代码你应该知道的

Summary: 用这个方便的捕鼠器比喻来理解编译代码。

用这个方便的捕鼠器比喻来理解编译代码。

# 关于编译代码你应该知道的

<img src="content_image/album_202211_04_054126nec50keexencosc4.jpg" alt="" title="">

>
> 用这个方便的捕鼠器比喻来理解编译代码。
>
>
>

源代码必须要经过编译才能够运行程序，而对于开源软件，每个人都可以获取源代码。无论你是自己编写了代码，想要编译和运行它，还是下载了某人的项目来尝试它，了解如何通过 [编译器](https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters) 处理源代码，以及编译器如何处理这些代码，这都很有用。

### 创建一个更好的捕鼠器

一般情况我们不会将一个捕鼠器比作电脑，但不管你信不信，它确实与你正在使用的设备（手机或电脑）的 CPU 有一些相似之处。经典的捕鼠器（我说的不是 ?）有两种状态：打开或者释放。你可以认为 *打开* 是将捕鼠器设置好准备捕获老鼠，以及 *释放* 是捕鼠器被老鼠触发。某种意义上来说，捕鼠器就像是一台有鼠标的电脑。你可以想象一下这个代码，用一种虚构的语言来描述这个过程：

```
if mousetrap == 0 then
  There's a mouse!
else
  There's no mouse yet.
end

```

换句话说，你可以基于捕鼠器的状态发现是否有老鼠（数据）。当然，捕鼠器不是万无一失的，有可能有一只老鼠在捕鼠器旁边，由于老鼠还没有触发捕鼠器，所以它的状态还是 *打开* 的。因此该程序可以进行改进，这都是非常典型的。

### 开关

总的来说，捕鼠器就是一个开关。你会在家里使用开关打开灯。可以从开关中获得许多信息。比如，人们会从你家灯的状态了解到你是否在家。

你可以根据邻居家灯的状态来改变行为。如果邻居家所有的灯都熄灭了，那么请关掉你大声的音乐，因为人们可能已经上床睡觉了。

CPU 也使用这样的逻辑，只不过乘以几个数量级，缩小到了微观级别。当 CPU 在特定寄存器上接收到电信号时，可以触发其他一些寄存器，然后触发另一个，以此类推。如果这些寄存器有特定的意义，那么就可以通信。也许激活同一主板上某处的芯片，或者使 LED 亮起，或者改变屏幕上的像素颜色。

种瓜得瓜，种豆得豆。如果你真的想在多个位置而不是仅限于一处发现老鼠，但是你只有一个捕鼠器，那你应该开发一个应用才行。使用网络摄像头和一些基本的图像识别软件，你可以建立空厨房的模型，然后扫描变化。当老鼠进入厨房，在原先没有老鼠的图像上会有像素的变化。记录下这些数据，如果有无人机可以追踪老鼠并捕获会更好，这样就可以将老鼠赶出厨房了。这时，你通过打开和关闭信号的魔法，创造了一个更好的捕鼠器。

### 编译器

代码编译器将人们可阅读的代码转换成 CPU 可以理解的机器语言。这是非常复杂的过程，因为 CPU 非常复杂（甚至比捕鼠器更加复杂），同时因为该过程比严格“需要”的更加灵活。并不是所有的编译器都很灵活。有一些编译器只有一个目标，它们只会处理特定格式的代码文件，处理过程也因此而简单明了。

幸运的是，现代的通用编译器并不简单。它们允许你编写不同语言的代码，也允许你用不同的方式链接库文件，并且可以生成运行在不同架构上的文件。[GNU 编译器集合](https://opensource.com/article/22/5/gnu-c-compiler)（GCC）的 `gcc` 编译器 `--help` 会输出超过 50 行的选项，LLVM 的 `clang` 编译器的 `--help` 输出超过 1000 行。GCC 指导手册的字数超过 10 万。

当你在编译代码时会有很多选项。

当然，大多数人并不需要知道所有的选项。我从未读过 GCC 的手册页，因为它们是针对 Objective-C、Fortran 以及我从未听说过的芯片架构的。不过我重视它将代码编译为不同的架构 —— 64 位或者 32 位 —— 的能力，以及在其他行业已经落后的计算机上运行开源软件的能力。

### 编译生命周期

同样重要的是，理解编译代码的不同阶段。这是一个简单的 C 语言程序的生命周期：

1. 带有宏定义的 C 源代码 `.c` 文件，用 `cpp` 预处理为 `.i` 文件。
2. 扩展了宏定义的 C 源代码 `.i` 文件，会被 `gcc` 转译成 `.s` 文件。
3. 以汇编语言写的文本文件 `.s` 文件被汇编为目标 `.o` 文件。
4. 带有 CPU 指令的二进制目标代码，以及其他目标文件和库 `*.o` 文件，以内存区域无关的偏移量，使用 `ld` 链接以生成可执行文件。
5. 最终的二进制文件要么包含所有需要的目标，要么设置以动态链接库 `*.so` 文件加载。

你可以试试这个简单示例（可能需要对库路径做一些调整）：

```
$ cat << EOF >> hello.c
 #include
 int main(void)
 { printf("hello world\n");
   return 0; }
   EOF
$ cpp hello.c > hello.i
$ gcc -S hello.i
$ as -o hello.o hello.s
$ ld -static -o hello \
  -L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \
  /usr/lib64/crt1.o /usr/lib64/crti.o hello.o \
  /usr/lib64/crtn.o  --start-group -lc -lgcc \
  -lgcc_eh --end-group
$ ./hello
hello world

```

### 可获得的知识

计算机已经变得非常强大，并且用户友好。请不要走向这两种可能的极端中的任何一种：计算机不像捕鼠器和电灯开关那么简单，但它们也不是无法理解的。你可以了解编译代码、如何链接以及针对不同架构进行编译。一旦你知道了，你就可以更好地调试代码。你可以理解你下载的代码，甚至可以修复其中的一两个错误。同时从理论上来讲，你可以建造一个更好的捕鼠器，或者用捕鼠器造一个 CPU。由你决定。

---

via: <https://opensource.com/article/22/10/compiling-code>

作者：[Alan Smithee](https://opensource.com/users/alansmithee) 选题：[lkxed](https://github.com/lkxed) 译者：[Donkey-Hao](https://github.com/Donkey-Hao) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #810 微软考虑提供用广告和订阅支持的廉价 PC

Summary: • 微软考虑提供用广告和订阅支持的廉价 PC • 阿塔卡马亚毫米波干涉阵望远镜遭受严重网络攻击 • 谷歌的文字转图像 AI 将首次公开亮相

可惜中国人还只能坐井观天，连接触最新的科技消息都做不到。

是您在坐进观天吧？

中国，呵呵

# 硬核观察 #810 微软考虑提供用广告和订阅支持的廉价 PC

### 微软考虑提供用广告和订阅支持的廉价 PC

微软正在为“新成立的 Windows 孵化团队”招聘人员，其任务是“将 Windows 转移到一个结合了云和微软 365 优点的地方”。其可能的模式包括通过订阅提供的低成本 PC，通过广告帮助抵消一些成本。也就是说，你需要接受微软推送的广告。不过，这目前还只是计划。

>
> **[消息来源：The Register](https://www.theregister.com/2022/11/02/microsoft_windows_pc_ads/)**
>
>
>

>
> 老王点评：这是一个提供了硬件的微软 365？
>
>
>

### 阿塔卡马亚毫米波干涉阵望远镜遭受严重网络攻击

前两天，位于智利的阿塔卡马沙漠的亚毫米波干涉阵望远镜（ALMA）遭受严重网络攻击。ALMA 是世界上规模最大、海拔最高、最灵敏的毫米波/亚毫米波干涉阵。ALMA 由 66 个观测天线组成。这次攻击造成 ALMA 停止科学观测，位于智利的网站全部下线。攻击并未造成天线或观测数据库受损，且目前网络威胁已得到控制。但 ALMA 仍未恢复正常运行。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/alma-observatory-shuts-down-operations-due-to-a-cyberattack/)**
>
>
>

>
> 老王点评：连科研机构都攻击。
>
>
>

### 谷歌的文字转图像 AI 将首次公开亮相

AI Testr Kitchen 应用是谷歌对各种 AI 系统进行测试的一种方式，以收集该技术的早期反馈，之前，该应用程序提供了一些与谷歌的文本模型 LaMDA 交互的方式。谷歌的文本转图像 AI 系统 Imagen 也正在被添加到 Kitchen 中，提供了两种方式互动方式：“城市梦想家” 和 “摇摇晃晃”。谷歌说，测试用户的参与度远超预期。

>
> **[消息来源：The Verge](https://www.theverge.com/2022/11/2/23434361/google-text-to-image-ai-model-imagen-test-kitchen-app)**
>
>
>

>
> 老王点评：现在各大公司都展开了 AI 军备竞赛，而且其中一些进展令人惊讶。
>
>
>


12 个对新手最重要的 Linux 命令

Summary: 我向所有的 Linux 初学者推荐以下这些命令。

新手不需要用命令

我向所有的 Linux 初学者推荐以下这些命令。

# 12 个对新手最重要的 Linux 命令

>
> 我向所有的 Linux 初学者推荐以下这些命令。
>
>
>

<img src="content_image/album_202211_05_092308plqfl6a6z0g7afx7.jpg" alt="" title="">

在使用 Linux 命令行时，很容易就会迷失方向，这可能会导致灾难性的后果：我有一次使用删除命令 `rm` 删除文件，然而删除之后我才意识到我刚刚是删除了计算机的引导目录。后来，我学会了使用 `pwd` 命令，来知道当前在文件系统的哪个目录下；并且我使用了 [trashy 和 trash-cli](https://www.redhat.com/sysadmin/recover-file-deletion-linux) 这一命令行回收站工具（LCTT 译注：在删除文件时 `trash-cli` 会充当中间人，将文件先“删除”到桌面上的垃圾箱中，能够通过垃圾箱或通过终端的 `trash` 命令，来恢复垃圾箱中已删除的文件。）

当我刚开始使用 Linux 时，我有一个放在桌子上的“速查表”，它就是《101 条你应该知道的 Linux 命令》，我在管理 Linux 服务器时能参考速查表上面的这些命令。随着我越来越熟悉这些命令，我越来越精通服务器管理了。

以下是我认为最有用的 12 个 Linux 命令。

### 1、打印工作目录（pwd）

`pwd` 命令会打印出你的工作目录。换句话来说，它输出你当前所在目录的路径。`pwd` 命令有两种选项：`-L` 或 `--logical`（即逻辑路径）用来打印当前的目录路径（不解析符号链接），`-P` 或 `--physial`（即物理路径）会打印出解析符号链接后的物理目录。（LCTT 译注：你可以进一步阅读我们翻译的 [另一篇文章](/article-4356-1.html)。）

### 2、创建目录（mkdir）

使用 `mkdir` 命令来创建一个新目录，是非常容易的。以下命令，创建了一个名为 `example` 目录（若 `example` 已存在，则无法创建）：

```
$ mkdir example

```

你也可以在嵌套地创建目录及其子目录：

```
$ mkdir -p example/one/two

```

如果目录 `example` 和目录 `one` 都已存在，则仅会创建目录 `two`。如果上述目录都不存在，则会创建这三个嵌套的目录。

### 3、列出文件（ls）

我最早使用的是 MS-DOS（微软磁盘操作系统），因此我习惯于使用 `dir` 命令，来列出文件。我不记得当时是否能在 Linux 上使用 `dir` 命令，但是如今 `dir` 命令已经包含在 <ruby> GNU 核心实用程序包 <rt>  GNU Core Utilities package </rt></ruby> 中了。大多数人会使用 `ls` 命令，来显示目录中的文件及其所有的属性。`ls` 命令有许多选项，包括 `-l` 查看文件的长列表，显示文件所有者和权限等信息。

### 4、更改当前工作目录（cd）

在 Linux 中经常要更改当前工作目录，这就是 `cd` 命令的功能。例如，以下的示例将让你从 <ruby> 主目录 <rt>  home </rt></ruby> 进入 `Documents` 目录：

```
$ cd Documents

```

你可以使用 `cd ~` 或者 `cd`，来快速转换到你的主目录。你可以使用 `cd ..` 来返回到上一级目录。

### 5、删除文件（rm）

删除文件是很危险的，因为在 Linux 终端上用 `rm` 命令会**彻底地**删除文件，并没有像桌面的垃圾桶那样依旧保存着删除的文件。许多终端用户有一个坏习惯，他们会永久地删除他们认为不再需要的文件。然而，因为没有“取消删除”命令，这个坏习惯可能会导致严重的问题：你会不小心删除了包含重要数据的目录。

Linux 系统为文件删除提供了 `rm` 和 `shred` 命令。要删除文件 `example.txt`，请输入以下内容：

```
$ rm example.txt

```

然而，使用 `trash` 命令要安全得多，例如 [trashy](https://gitlab.com/trashy/trashy) 或者 [trash-cli](https://github.com/andreafrancia/trash-cli)，它会将文件先“删除”到桌面上的垃圾箱中：

```
$ trash example.txt

```

（LCTT 译注：关于 Trash-Cli 的更多信息可以参考我们翻译的 [另一篇文章](/article-10029-1.html)。）

### 6、复制文件（cp）

使用 `cp` 命令，来复制文件。`cp` 的语法是从*旧文件*复制到*新文件*。这里有一个例子：

```
$ cp file1.txt newfile1.txt

```

你也可以复制整个目录：

```
$ cp -r dir1 newdirectory

```

### 7、移动并重命名文件（mv）

重命名和移动文件在功能上是相同的过程。当你移动文件时，从一个目录中取出一个文件，并将其放入一个新目录中；当你重命名文件时，将一个目录中的文件更改为新名称，并放回到同一目录或另一个目录下。无论是重命名还是移动文件，你都可以使用 `mv` 命令：

```
$ mv file1.txt file_001.txt

```

### 8、创建一个空文件（touch）

使用 `touch` 命令可以简单地创建一个空文件：

```
$ touch one.txt

$ touch two.txt

$ touch three.md

```

### 9、更改权限（chmod）

使用 `chmod` 命令，来更改文件的权限。`chmod` 最常见的用途是让文件能够执行：

```
$ chmod +x myfile

```

以下的示例展示了如何用 `chmod` 命令给文件赋予权限，这对于脚本来说特别方便。尝试一下这个简单的练习吧：

```
$ echo 'echo Hello $USER' > hello.sh

$ chmod +x hello.sh

$ ./hello.sh
Hello, Don

```

### 10、提升为 root 权限（sudo）

在管理自己的 Linux 系统时，可能需要提升为超级用户（也称为 root），这就是 `sudo`（即 <ruby> 以超级用户做 <rt>  super user do </rt></ruby>）命令的来源。假设你想要做一些只有管理员（或 root 用户）才能做的事情，只需在命令前加一个 `sudo` 即可：

```
$ touch /etc/os-release && echo "Success"
touch: cannot touch '/etc/os-release': Permission denied

$ sudo touch /etc/os-release && echo "Success"
Success

```

### 11、关机（poweroff）

`poweroff` 命令的功能和它的字面意思一样：把你的计算机关机。需要在 `poweroff` 前面加一个 `sudo` 才能成功关机。

实际上，还有很多方法可以关闭你的计算机，这些方法有略微的不同。例如，`shutdown` 命令会在指定的时间（例如 60 秒）后关闭计算机：

```
$ sudo shutdown -h 60

```

或者立即关闭计算机：

```
$ sudo shutdown -h now

```

你也可以用 `sudo shutdown -r now` 或者 `reboot` 来重启计算机。

### 12、阅读手册（man）

`man` 命令可能是 Linux 中最重要的命令了，你可以通过 `man` 命令查看 Linux 系统上每个命令的官方文档。例如，要阅读更多有关 `mkdir` 的信息，可以输入：

```
$ man mkdir

```

一个与 `man` 相关的命令是 `info` 命令，它提供了一组不同的手册，它通常会提供比简洁的 `man` 页面更详细一点的内容。

### 你最喜欢的 Linux 命令是什么？

Linux 系统上还有数百个其他命令！你最喜欢使用的 Linux 命令是什么呢？什么命令是你一直反复使用的呢？

---

via: <https://opensource.com/article/22/5/essential-linux-commands>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lkxed](https://github.com/lkxed) 译者：[chai001125](https://github.com/chai001125) 校对：[wxy](https://github.com/wxy)

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


如何检查： 是 Xorg 还是 Wayland 显示服务器？

Summary: 以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。

以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。

# 如何检查： 是 Xorg 还是 Wayland 显示服务器？

>
> 以下是快速检查在运行 Xorg 还是 Wayland 显示服务器的方法。
>
>
>

随着时间的推移，现代 Wayland 显示服务器正在进入所有 Linux 发行版。尽管老旧的 Xorg 仍然能用并且会继续存在，但 Wayland 无疑在安全性和其他性能方面更好。

但是，Xorg 不会很快完全淘汰。可能永远不会。

如果你在运行任何 Linux 发行版，如何检查运行的是 Xorg 还是 Wayland？下面是方法。

### Wayland 或 Xorg：你在运行哪一个？

在你的 Linux 发行版（例如 Ubuntu、Fedora、Arch 等）中打开一个终端窗口（`CTRL+ALT+T`）。

然后输入以下命令并回车：

```
echo $XDG_SESSION_TYPE

```

命令输出会告诉你当前会话是 Wayland 还是 Xorg（X11）。

```
[debugpoint@fedora ~]$ echo $XDG_SESSION_TYPEwayland

```

这很简单。但是，还有其他方法。

### 其他方法

#### 使用设置

如果你需要图形方法，请打开你的 Linux 发行版的设置应用。在关于部分，你应该看到某个标签下中的 Wayland/X11。

例如，在 GNOME 设置中，你可以在 “<ruby> 窗口子系统 <rt>  Windowing system </rt></ruby>” 下找到它，如下图所示：

#### 使用会话值

你还可以使用 [systemd](https://www.debugpoint.com/tag/systemd/) 登录管理器 `loginctl` 找到它。请记住，它仅适用于基于 systemd 的系统。

打开终端并运行以下命令。你可以看到会话 id 值。在此示例中为 `c2`：

```
loginctl

```

现在，将会话 ID 传递给以下命令以获取显示服务器类型。确保将 c2 更改为你的系统规格。

```
loginctl show-session c2 -p Type

```

### 总结

这些是你可以确定在 Linux 系统中运行的是 Systemd 还是 Xorg 的一些方法。你还可以在 shell 脚本中使用上述命令来实现进一步的流程自动化。

祝好。

---

via: <https://www.debugpoint.com/check-wayland-or-xorg/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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/) 荣誉推出


# 在 Ubuntu 上安装 WoeUSB 来创建一个可启动 Windows USB

>
> 想在 Linux 上创建一个可启动 Windows USB ？Ventoy 是一个很好的选择。
>
>
>

但是，在 Ventoy 出道之前，WoeUSB 是用于创建可启动 Windows USB 的首选工具。原版 WoeUSB 工程在 2014 年左右香消玉损。

鉴于其流行程度，一位新的开发者接过了将其起死回生的任务。因此，WoeUSB-ng 诞生了。在这里，“ng” 是 <ruby> 新生代 <rt>  new generation </rt></ruby> 的缩写。换句话说，[WoeUSB-ng](https://github.com/WoeUSB/WoeUSB-ng) 是新生代的 WoeUSB 。但是，因为原版的工具已经不存在了，我将 WoeUSB-ng 描述为 WoeUSB 。

在这篇教程中，我将向你展示如何在 Ubuntu Linux 上安装 WoeUSB 。我也将分享使用 WoeUSB 来创建可启动 Windows USB 的步骤。

但是，在此之前，让我们快速查看这个令人惊叹的工具的特色。

### WoeUSB

WoeUSB 是一个简单的工具，其唯一的目的是 [在 Linux 上创建可启动 Windows USB](https://itsfoss.com/bootable-windows-usb-linux/) 。

原版 WoeUSB 是一个 shell 脚本。这个原版 WoeUSB 被使用 Python 重写为 WoeUSB-ng ，它可以安装在你的系统上，并且通过命令行或 GUI 界面。

特色：

* 支持老式 PC 启动或 UEFI 启动
* 支持 FAT32 和 NTFS 文件系统
* 支持使用物理安装盘或磁盘镜像作为源
* 它可以用于 Windows Vista 及其更高版本的任意语言或变体版本
* 老式的 MBR/IBM PC 兼容启动模式
* 本机 UEFI 启动支持 Windows 7 及其更高版本的镜像（仅限于将 FAT 文件系统作为目标的情况）

### 在 Ubuntu 和其它的 Linux 发行版上安装 WoeUSB

Arch Linux 用户可以从 AUR 安装 WoeUSB-ng 。

对于其它的发行版，可以使用 PIP 来安装 WoeUSB 。毕竟，它是一个 Python 应用程序。在这里，我将为 Ubuntu/Debian 提供一些命令。

为安装 WoeUSB-ng ，你首先需要 [安装 PIP](https://itsfoss.com/install-pip-ubuntu/) 和其它必要的依赖项。

```
sudo apt install git p7zip-full python3-pip python3-wxgtk4.0 grub2-common grub-pc-bin

```

在这之后，你可以安装 WoeUSB-ng ，通过运行：

```
sudo pip3 install WoeUSB-ng

```

对于所有的其它安装，你可以参考其 [操作指南](https://github.com/WoeUSB/WoeUSB-ng#installation) 。

>
> **[WoeUSB-ng](https://github.com/WoeUSB/WoeUSB-ng)**
>
>
>

### 前提条件: 获取 Windows 的 ISO 文件和一个兼容的 USB 磁盘

这一点没有什么需要说的。你需要有一个你将要安装的 Windows 版本的 ISO 文件。

从微软的网站，你应该能够获取 Windows 10 和 11 的ISO 文件。

>
> **[下载 Windows](https://www.microsoft.com/en-in/software-download/)**
>
>
>

如果你有较旧的 Windows 版本的 ISO 文件，也可以使用它们。

除此之外，你需要有一个至少 8 GB 大小的 USB 驱动器磁盘。你应该使用 NTFS 的文件系统来格式化它filesystem.

### 方法 1: 使用图形用户界面化的 WoeUSB 来创建一个可启动的 Windows USB（推荐）

从 <ruby> 活动概述 <rt>  activity overview </rt></ruby> 或菜单中打开 woeusb-gui 。

在应用程序窗口中，选择下载的 Windows ISO 和所希望的 USB 驱动器，如截屏所示，然后按下 <ruby> 安装 <rt>  Install </rt></ruby> 按钮。

在应用程序中也其它可用的调整，可以通过顶部的菜单栏来访问使用。

在按下“安装”按钮后，woeUSB 将开始格式化和复制文件。你需要等待一些时间，因为这里有大约 6 GB 的文件需要复制。

在复制完成后，WoeUSB 将会提示一个成功的对话框。你现在可以安全地弹出 USB 驱动器，并将其作为一个可启动 USB 驱动器来使用。

### 方法 2: 从终端中使用 WoeUSB（针对专家）

WoeUSB-ng 软件包也提供一个名称为 `woeusb` 的命令行实用程序。

为使用 WoeUSb 来创建一个可启动的 Windows USB ，你需要运行下面的命令：

```
sudo woeusb --device <path/to/Windows/ISO> <name/of/the/USB/device> --target-filesystem ntfs

```

在这里，`--device` 标识用于擦除 USB 和从零开始创建一个可启动 USB 驱动器。同样，`--target-filesystem` 标识用于设置为 NTFS ，来避免将要复制的文件大小超过 FAT 文件系统的限制。

该过程将花费一些时间来完成复制。在完成复制后，它将显示一条成功的信息。

此时，你可以安全地弹出 USB 驱动器，并在其它的个人电脑上将其作为一个 Windows 可启动 USB 来使用。

### 超值: 使用 WoeUSB 的 Bash Shell 脚本（针对专家）

WoeUSB 也提供一个 Bash Shell 脚本，在你的系统上，它不需要安装任何东西就可以使用。

首先，你需要从 [该工程的发布版本页面](https://github.com/WoeUSB/WoeUSB/releases/tag/v5.2.4) 下载 Shell 脚本。

在 [执行 Shell 文件](https://itsfoss.com/run-shell-script-linux/) 之前，你需要获取所需要的依赖项。为安装它，运行：

```
sudo apt install wimtools

```

现在，通过文件管理器或通过命令行来使它可执行。

或者，你可以运行 `chmod +x <path/to/script>` 来使它可执行。现在，运行已下载目录中的 `./woeusb-5.2.4.bash -h` 来获取帮助。

为创建一个现场 USB ，该进程类似于 woeusb-ng 的命令行部分，但是你没有安装任何东西。

因此，在一个终端中，运行：

```
sudo <path/to/downloaded/script/file> --device <path/to/windows/ISO> <name-of-USB-device> --target-filesystem ntfs

```

这将开始将 ISO 写入 USB 驱动器，如下面的截屏所示：

在完成后，你可以安全地弹出 USB 驱动器，并将其作为可启动 USB 使用。

### 移除 WoeUSB

如果你使用 PIP 安装 WoeUSB ，你也可以类似地移除它：

```
pip3 uninstall WoeUSB-ng

```

你可以在你的系统上保留或移除已安装的依赖项。这完全取决于你。我建议保留它们。

### 总结

大约 10 年前，WoeUSB 是一个非常流行的工具。其他人以另外一种形式将其复活是很好的，这就是开源的艺术。

我希望这篇教程会帮助你。如果通过 WoeUSB 创建的 Windows USB 不能按部就班地工作，你可以 [尝试使用 Ventoy](https://itsfoss.com/bootable-windows-usb-linux/) 。享受它。

---

via: <https://itsfoss.com/install-woeusb-ubuntu/>

作者：[Sreenath](https://itsfoss.com/author/sreenath/) 选题：[lkxed](https://github.com/lkxed) 译者：[robsean](https://github.com/robsean) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #811 用“古代”计算机建造可演奏的手风琴

Summary: • 用“古代”计算机建造可演奏的手风琴 • Web 之父说 Web3 根本不是互联网 • OpenAI 将为 10 家 AI 初创企业各提供 100 万美元支持

没有物理连接去中心化都是G8玩意

# 硬核观察 #811 用“古代”计算机建造可演奏的手风琴

### 用“古代”计算机建造可演奏的手风琴

一位工程师用两台不带显示器的 Commodore 64 “古代”电脑作为键盘，用五寸软盘粘在一起作为风箱，制作了一台可以演奏的手风琴。这个项目采用了大量定制的软件和硬件黑科技。通过测量风箱挤压时通过的空气噪音并转换为信号。Commodore 电脑本身没有音频设备，音频信号是通过插孔输出发声的。Commodore 64 是有史以来最畅销的电脑，于 1982 年开始生产。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2022/11/playable-commodore-64-accordion-delights-with-homemade-chiptune-goodness/)**
>
>
>

>
> 老王点评：有钱有闲的人才能做出来这些“无聊”项目。而为生活，甚至是为基本的生存需求而努力的人是不配谈这些的。有感而发，唉。
>
>
>

### Web 之父说 Web3 根本不是互联网

发明 Web 的蒂姆·伯纳斯-李在里斯本周五举行的 Web 峰会上表示，“真正的 Web3 的名字被以太坊的人拿去做区块链的东西，这真是一个耻辱。事实上，Web3 根本就不是 Web。”Web3 是科技界的一个模糊的术语，用来描述一个假设的未来版本的互联网，它比今天更去中心化，而不被各大巨头所支配。他认为需要澄清 Web 3 和 Web 3.0，并开发了自己的 Web 3.0 项目 Solid。

>
> **[消息来源：CNBC](https://www.cnbc.com/2022/11/04/web-inventor-tim-berners-lee-wants-us-to-ignore-web3.html)**
>
>
>

>
> 老王点评：名词并不重要，重要的真正有用，依我看，Solid 也是空中楼阁，未必比以太坊等 Web 3 项目有希望。
>
>
>

### OpenAI 将为 10 家 AI 初创企业各提供 100 万美元支持

开发了 GPT-3 和 DALL-E 2 等人工智能系统的 OpenAI，推出了一个新项目，为早期人工智能初创企业提供资金和访问 OpenAI 技术和资源。OpenAI 去年宣布了 1 亿美元的创业资金，得到了微软和其他合作伙伴的支持。OpenAI 表示，申请“不要求事先有人工智能系统的工作经验。”

>
> **[消息来源：Tech Crunch](https://techcrunch.com/2022/11/02/openai-will-give-roughly-ten-ai-startups-1m-each-and-early-access-to-its-systems/)**
>
>
>

>
> 老王点评： AI 行业现在是投资热点，这一波 AI 热看来还不会过期。
>
>
>


如何清理 Snap 版本以释放磁盘空间

# 如何清理 Snap 版本以释放磁盘空间

>
> 这个带有脚本的快速指南有助于清理旧的 Snap 版本并释放 Ubuntu 系统中的一些磁盘空间。
>
>
>

我正在使用的 Ubuntu 测试系统中的磁盘空间不足。因此，我通过 GNOME 的磁盘使用分析器进行调查，以找出哪个包正在消耗宝贵的 SSD 空间。除了通常的缓存和主目录，令我惊讶的是，我发现 Snap 和 Flatpak 消耗了大量的存储空间。

尽管如此，我始终坚持一个规则：除非必要，否则不要使用 Snap 或 Flatpak。这主要是因为它们的安装尺寸和其他问题。我更喜欢原生 deb 和 rpm 包。多年来，我在这个测试系统中安装和移除了一定数量的 Snap 包。

但卸载后还有问题。Snap 在系统中保留了一些残留文件，一般用户不知道。

所以我打开了 Snap 文件夹 `/var/lib/snapd/snaps`，发现 Snap 保留了以前安装/卸载的软件包的旧版本。

例如，在下图中，你可以看到 GNOME 3.28、3.34 和 Wine 都被删除了。但它们还在那里。发生这种情况是因为 Snap 的设计，它在正确卸载后保留已卸载软件包的版本。

或者，你可以在终端中使用：

```
snap list --all

```

对于保留的版本，默认值为 3。这意味着 Snap 会保留每个软件包的三个旧版本，包括活动版本。如果你对磁盘空间没有限制，这是可以的。

但是对于服务器和其他情况，这很容易遇到成本问题，它会消耗你的磁盘空间。

但是，你可以使用以下命令轻松修改计数。该值可以在 2 到 20 之间。

```
sudo snap set system refresh.retain=2

```

### 清理 Snap 版本

在 SuperUser 的一篇文章中，Canonical 的前工程经理 Popey [提供了一个简单的脚本](https://superuser.com/a/1330590)，它可以清理旧版本的 Snaps 并保留最新版本。

这是我们将用来清理 Snap 的脚本。

```
#!/bin/bash
#Removes old revisions of snaps
#CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
    snap remove "$snapname" --revision="$revision"
done

```

将上面的脚本以 `.sh` 扩展名保存在一个目录中（例如 `clean_snap.sh`），赋予它可执行权限并运行。

```
chmod +x clean_snap.sh

```

当我运行脚本后，它减少了很多磁盘空间。该脚本还将显示要删除的包的名称。

### 结束语

对于 Snap 的设计效率如何，人们总是争论不休。许多人说，它的设计是坏的，是臃肿的，是消耗系统资源的。这种说法的某些部分是真实的，我不会否认它。如果实施和加强得当，整个沙盒应用的概念是很好的。但我相信，与 Snap 相比，Flatpak 工作做得更好。

也就是说，我希望这可以帮助你清理一些磁盘空间。尽管它只在 Ubuntu 中进行了测试，但它应该适用于所有支持 Snap 的 Linux 发行版。

此外，请查看我们关于 [如何清理 Ubuntu](https://www.debugpoint.com/2018/07/4-simple-steps-clean-ubuntu-system-linux/) 的指南以及其他步骤。

最后，如果你要清理 **Flatpak** 应用，请参阅 [这篇指南](https://www.debugpoint.com/clean-up-flatpak/)。

---

via: <https://www.debugpoint.com/clean-up-snap/>

作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[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/) 荣誉推出