2023年6月

采用 Apache APISIX 的 API 主导架构。

API 网关是一个单一节点,提供对 API 调用入口。网关聚合了所请求的服务,并相应传回合适的响应信息。为了令你的 API 网关有效地工作,设计一个可靠、高效且简洁地 API 至关重要。本文介绍一种设计风格,但只要你理解其中的重点内容,它就能解决你的相关问题。

由 API 主导的方法

API 主导的方法是将 API 置于应用程序和它们需要访问的业务能力之间的通信核心,从而在所有数字通道上一致地交付无缝功能。API 主导的连接是指使用一种可重用、且设计得当的 API 来连接数据和应用程序的方法。

API 主导的架构

API 主导的架构是一种架构方法,它着眼于实现重用 API 的最佳方式。它能解决以下问题:

  • 保护 API,使外界无法在未授权情况下访问 API
  • 确保应用程序能找到正确的 API 端点
  • 限制对 API 的请求次数,从而确保持续的可用性
  • 支持持续集成、测试、生命周期管理、监控、运维等等
  • 防止错误在栈间传播
  • 对 API 的实时监测和分析
  • 实现可伸缩和灵活的业务能力(例如支持 微服务 架构)

API 资源路由

实现一个 API 网关,把它作为与所有服务通信的单一入口点,意味着使用者只需要知道 URL 就能使用 API。将请求路由到相应的服务端点,并执行相应的功能是 API 网关的职责。

Image depicting the API routing traffic.

由于客户端应用程序不需要从多个 HTTP 端点调用功能,这个办法就减少了 API 使用者的操作复杂度。对每个服务来说,也不需实现一个单独的层级去实现认证、授权、节流和速度限制。大多数API 网关,如开源的 Apache APISIX,已经包含了这些核心功能。

API 基于内容的路由

基于内容的路由机制也使用 API 网关根据请求的内容进行路由调用。例如,一个请求可能是基于 HTTP 请求的头部内容或消息体被路由,而不只基于它的目标 URI。

考虑这样一个场景:为了将负载在多个数据库实例间均分,需要对数据库进行分区。当记录总数较大,单个数据库实例难以管理负载时,常常会用这个办法。

还有一个更好的办法,就是把记录在多个数据库实例间分散开来。然后你实现多个服务,每个不同的数据库都有一个服务,把一个 API 网关作为访问所有服务的唯一入口。然后,你可以配置你的 API 网关,根据从 HTTP 头或有效载荷中获得的密钥,将调用路由到相应的服务。

Image of the API gateway exposing a single customer.

在上面的图表中,一个 API 网关向多个客户服务暴露一个单一的 /customers 资源,每个服务都有对应的不同数据库。

API 地理路由

API 地理路由解决方案根据 API 调用的来源将其路由到最近的 API 网关。为了防止地理距离导致的延迟问题(例如一个位于亚洲的客户端调用了位于北美地区的 API),你可以在多个地区部署 API 网关。对于一个 API 网关,你可以在每个区域使用不同的子域名,让应用程序基于业务逻辑选择最近的网关。因此 API 网关就提供了内部负载均衡,确保进入的请求分布于可用的实例之间。

Image of a DNS traffic management system.

通常使用 DNS 流量管理服务和 API 网关,针对该区域的负载均衡器解析子域名,定位到距离最近的网关。

API 聚合器

这项技术对多个服务执行操作(例如查询),并向客户端服务以单个 HTTP 响应的形式返回结果。API 聚合器使用 API 网关在服务器端代表使用者来执行这项工作,而非让客户端程序多次调用 API。

假定你有一款移动端 APP,对不同的 API 发起多次调用。这增加了客户端代码的复杂性,导致网络资源的过度使用,而且由于延迟性,用户体验也不好。网关可以接收所有需要的信息,可以要求认证和验证,并理解来自每个 API 的数据结构。它也可以传递响应的有效载荷,因此它们也会作为一个用户需要的统一负载传回移动端。

Image of an API gateway.

API 集中认证

在这种设计中,API 网关就是一个集中式认证网关。作为一个认证者,API 网关在 HTTP 请求头中查找访问凭据(例如不记名的令牌)。然后它借助于身份验证提供方执行验证凭据的业务逻辑。

Image of a tree showing API gateway's centralized authentication.

使用 API 网关的集中式身份验证能解决很多问题。它完全取代了应用程序中的用户管理模块,通过对来自客户端应用程序的身份验证请求的快速响应来提高性能。Apache APISIX 提供了一系列插件,支持不同的 API 网关认证方法。

Image showing Apache ASPISIS and various plugins.

API 格式转换

API 格式转换是通过同一传输方式将有效载荷从一种格式转换为另一种格式的能力。例如,你可以通过 HTTPS 从 XML/SOAP 格式转换为 JSON 格式,反之亦然。API 网关提供了支持 REST API 的功能,可以有效地进行负载和传输的转换。例如,它可以把消息队列遥测传输(MQTT)转换为 JSON 格式。

Image depicting APISIX transfers.

Apache APISIX 能够接收 HTTP 请求,对其进行代码转换,然后将其转发给 gRPC 服务。它通过 gRPC Transcode 插件获取响应并将其以 HTTP 格式返回给客户端。

API 的可观察性

现在,你知道 API 网关为进入各种目的地的流量提供了一个中心控制点。但它也可以是一个中心观察点,因为就监控客户端和服务器端的流量来说,它有独特的资格。为了收集监测工具所需要的数据(结构化日志、度量和跟踪),你可以对 API 网关作出调整。

Apache APISIX 提供了 预先构建的连接器,因此你可以跟外部监测工具结合使用。你可以利用这些连接器从你的 API 网关收集日志数据,进一步获得有用的指标,并获取完整可见的服务使用情况。

API 缓存

API 缓存通常在网关内部实现。它可以减少对端点的调用次数,同时通过缓存上游的响应,改进了请求延迟的情况。如果网关缓存对请求资源有一个新副本,它会直接使用这个副本来响应这个请求,而不必对端点发出请求。如果缓存数据不存在,就将请求传到目标上游服务。

Image depicting how the API gateway cache functions.

API 错误处理

由于各种原因,API 服务可能会出错。在这种情况下,API 服务需要有一定的弹性,来应对可预见的错误。你也希望确保弹性机制能正常工作。弹性机制包括错误处理代码、断路器、健康检查、回退、冗余等等。新式的 API 网关支持各种常见错误处理功能,包括自动重试和超时设置。

Image depicting some of the many mechanisms that the modern API Gatway can support.

API 网关作为一个协调器,它会根据各方面情况来决定如何管理流量、将负载均衡发送到一个健康的节点,还能快速失败。当有异常状况,它也会向你发出警示。API 网关也保证路由和其他网络级组件能协同将请求传给 API 进程。它能帮助你在早期检测出问题,并修复问题。网关的错误注入机制(类似于 Apache APISIX 使用的那种)可用于测试应用程序或微服务 API 在各种错误发生时的弹性。

API 版本管理

版本管理是指定义和运行多个并发的 API 版本的功能。这点也很重要,因为 API 是随着时间推移不断改进的。如果能对 API 的并发版本进行管理,那么 API 使用者就可以较快地切换到新的版本。这也意味着较老的版本可以被废弃并最终退役。API 也跟其他应用程序类似,无论是开发新功能还是进行错误修复,都存在演变的过程。

Image of using the API Gateway to implement API versioning.

你可以使用 API 网关来实现 API 版本管理。版本管理可以是请求头,查询参数或路径。

APISIX 的网关

如果你需要令 API 服务可伸缩,就需要使用 API 网关。Apache APISIX 提供了必要的功能,可以实现健壮的入口,它的好处是显而易见的。它遵循 API 主导的架构,并且有可能改变客户端与托管服务交互的方式。

本文经作者许可,从 Apache APISIX 博客改编并转载。

(题图:MJ/f1d05345-48f5-4e3e-9c65-a2ba9105614a)


via: https://opensource.com/article/23/1/api-gateway-apache-apisix

作者:Bobur Umurzokov 选题:lkxed 译者:cool-summer-021 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

数百万 GitHub 项目易受依赖库劫持攻击

安全专家发现,数以百万计的 GitHub 项目易受依赖库劫持攻击,攻击者可以借此发动影响大量用户的供应链攻击。GitHub 上的用户名和项目或库的名字如果改变,为了避免破坏其它项目的依赖关系,GitHub 会创建一个重定向。但如果有人用旧的名字创建了账号,那么就会导致重定向无效。GitHub 可以防御部分此类攻击,但该防御方案可以被绕过。

消息来源:Aqua Sec
老王点评:我觉得 GitHub 应该更认真的解决这个问题,毕竟 GitHub 已经不仅仅是一个代码仓库,而是一个供应链的重要组成部分了。但从另外一个角度看,软件项目依赖这种不确定的供应链是不是也过于宽松了?

美国新数据显示,在家工作成为新常态

许多在大流行期间蜷缩在家里的白领工人已经回到办公室,但没有回到办公室的人特别多。对许多人来说,远程工作似乎是一种新常态。周四公布的美国经济数据显示,在家工作似乎已经成为一种趋势,特别是对女性和受过大学教育的人而言。2022 年的数据显示,34% 的 15 岁以上的人仍然在家里工作,54% 的人拥有学士或更高的学位。而美国旧金山市长已经 提议 将市中心荒废的购物中心改造为足球场,因为越来越多人不再回到市中心上班,旧金山的办公室空置率已达到 30 年来的最高水平。

消息来源:MSN
老王点评:不知道为什么美国人就不回去上班了,而我们似乎都赶紧回去了。

Firewalld 2.0 发布

开源防火墙守护程序 Firewalld 自 2011 年以来一直在开发,而两年前才达到 Firewalld 1.0 的里程碑。因此,发现 Firewalld 2.0 在今天发布有点令人惊讶。2.0 中最重要的变化解决了区域漂移的问题,即防火墙策略可能最终违反了 “数据包只进入一个区域” 的规则。此外,还增加了对 NFTables Flowtable 的支持,可以显著提高转发性能,将网络转发的 iperf 性能提高了约 59%。

消息来源:Phoronix
老王点评:看起来是 Firewalld 的开发在加速,不过我更觉得它是在飙版本号。看看 Firefox、Linux 内核等开源软件的版本号,看来开源软件对版本号的谦虚传统已经被丢弃了。

在本文中,我们将逐步向你展示如何在 Kubernetes(k8s)集群上安装 Ansible AWX。

Ansible AWX 是一个强大的开源工具,用于管理和自动化 IT 基础设施。AWX 为 Ansible 提供图形用户界面,使你可以轻松创建、安排和运行 Ansible 剧本 Playbook

另一方面,Kubernetes 是一种流行的容器编排平台,广泛用于部署和管理容器化应用。

先决条件:

  • Kubernetes 集群
  • Kubectl
  • 具有 sudo 权限和集群管理员权限的普通用户
  • 互联网连接

步骤 1:安装 Helm

如果你的系统上安装了 Helm,则在命令下运行以进行安装,

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod +x get_helm.sh
$ ./get_helm.sh
$ helm version

Install-helm-linux-command-line

步骤 2:安装 AWX chart

在 Kubernetes 上安装 AWX 的最简单方法是使用 AWX Helm “ 海图 chart ”。因此,要通过 “海图” 安装 AWX,首先使用以下 helm 命令添加仓库。(LCTT 译注:Kubernetes 生态中大量使用了和航海有关的比喻,因此本文在翻译时也采用了这些比喻)

$ helm repo add awx-operator https://ansible.github.io/awx-operator/
"awx-operator" has been added to your repositories
$

注意:如果你之前已经添加过此仓库,请在命令下运行以获取最新版本的软件包。

$ helm repo update

要通过 Helm 安装 awx-operator,请运行:

$ helm install ansible-awx-operator awx-operator/awx-operator -n awx --create-namespace

helm-install-awx-operator-kubernetes

这将下载 AWX 海图并将其安装在 awx 命名空间中的 Kubernetes 集群上。安装过程可能需要几分钟,请耐心等待。

步骤 3:验证 AWX 操作员安装

安装成功后,你可以通过运行以下命令来验证 AWX 操作员 operator 状态:

$ sudo kubectl get pods -n awx

你应该看到这样的东西:

awx-operator-pod-status-kubectl

步骤 4: 创建 PV、PVC 并部署 AWX yaml 文件

AWX 需要 postgres 容器荚 pod 的持久卷。那么,让我们首先为本地卷创建一个存储类。

注意:在本文中,我使用本地文件系统作为持久卷。

$ vi local-storage-class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
  namespace: awxprovisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

保存并关闭文件,然后运行:

$ kubectl create -f local-storage-class.yaml
$ kubectl get sc -n awx
NAME            PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   
local-storage   kubernetes.io/no-provisioner   Delete          WaitForFirstConsumer   false                 
$

接下来使用以下 pv.yaml 文件创建持久卷(PV):

$ vi pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: postgres-pv
  namespace: awx
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /mnt/storage
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-worker

保存并退出文件。

Postgres-pv-awx-kubernetes

重要说明:确保文件夹 /mnt/storage 存在于工作节点上,如果不存在,则在工作节点上使用 mkdir 命令创建它。在我们的例子中,工作节点是 k8s-worker

执行下面的命令在 awx 命名空间中创建 postgres-pv

$ kubectl create -f pv.yaml

成功创建 PV 后,使用 pvc.yaml 文件创建 PersistentVolumeClaim:

$ vi  pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-13-ansible-awx-postgres-13-0
  namespace: awx
spec:
  storageClassName: local-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

posgres-pvc-awx-kubernetes

要创建 PVC,请运行以下 kubectl 命令:

$ kubectl create -f pvc.yaml

使用下面的命令验证 PV 和 PVC 的状态:

$ kubectl get pv,pvc -n awx

现在,我们都准备好部署 AWX 实例了。创建一个包含以下内容的 ansible-awx.yaml 文件:

$ vi ansible-awx.yaml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
  name: ansible-awx
  namespace: awx
spec:
  service_type: nodeport
  postgres_storage_class: local-storage

Ansible-awx-yaml-file

保存并关闭文件。

执行以下 kubectl 命令来部署 awx 实例:

$ kubectl create -f ansible-awx.yaml

等待几分钟,然后检查 awx 命名空间中的容器荚状态。

$ kubectl get pods -n awx

Ansible-AWX-Pods-Status-Kubernetes

步骤 5:访问 AWX Web 界面

要访问 AWX Web 界面,你需要创建一个公开 awx-web 部署的服务:

$ kubectl expose deployment ansible-awx-web --name ansible-awx-web-svc --type NodePort -n awx

此命令将创建一个 NodePort 服务,该服务将 AWX Web 容器的端口映射到 Kubernetes 节点上的端口。你可以通过运行以下命令找到端口号:

$ kubectl get svc ansible-awx-web-svc  -n awx

这将输出如下内容:

NAME                 TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
ansible-awx-web-svc   NodePort   10.99.83.248   <none>        8052:32254/TCP   82s

在此示例中,Web 服务在端口 32254 上可用。

Expose-Ansible-AWX-Web-NodePort-Kubernetes

默认情况下,admin 用户是 Web 界面的 admin,密码在 <resourcename>-admin-password 机密信息中。要检索管理员密码,请运行:

$ kubectl get secrets -n awx | grep -i admin-password
ansible-awx-admin-password        Opaque               1      109m
$
$ kubectl get secret ansible-awx-admin-password -o jsonpath="{.data.password}" -n awx | base64 --decode ; echo
l9mWcIOXQhSKnzZQyQQ9LZf3awDV0YMJ
$

你现在可以打开 Web 浏览器并进入 http://<node-ip>:<node-port>/ 来访问 AWX Web 界面。在上面的示例中,URL 是:

http://192.168.1.223:3225

AWX-Login-URL-Kubernetes

输入凭据后单击登录。

Ansible-AWX-Web-Dashboard

恭喜! 你已在 Kubernetes 上成功安装 Ansible AWX。你现在可以使用 AWX 来自动化你的 IT 基础架构,并让你作为系统管理员的生活更轻松。

(题图:MJ/bfd354aa-2ee5-4555-98b8-ac5207cbeabe)


via: https://www.linuxtechi.com/install-ansible-awx-on-kubernetes-cluster/

作者:Pradeep Kumar 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

一份新鲜的最佳 Linux 发行版清单,提供轻量级的 Xfce 桌面环境。

Xfce 是一个以速度、性能和资源效率为重点的轻量级桌面环境。它在不牺牲功能的情况下,提供了一个干净直观的用户界面。它采用了经过时间验证的、传统的图标和菜单驱动的用户界面,对提高生产力非常有效。此外,Xfce 还允许用户根据自己的偏好进行个性化设置。

许多 Linux 发行版都将 Xfce 作为其主打桌面环境,并进行了各种调整和定制。如果你喜欢 Xfce 并希望将其用于日常驱动程序,可以查看以下发行版的清单。

排名仅基于我们的推荐和各个发行版的新鲜度。

带有 Xfce 桌面环境的最佳 Linux 发行版

默认带有 Xfce 的 Debian

Debian Linux 以其稳定性和可靠性而闻名,提供了 Xfce 作为默认的桌面环境。当你安装 Debian 桌面的 ISO 时,如果没有选择特定环境,它会安装 Xfce。

Debian 和 Xfce 的强大组合提供了稳定性、安全性和广泛的软件仓库,非常适合各类用户。无论你是寻找可靠的桌面操作系统还是稳定的服务器平台,Debian 和 Xfce 都提供了用户友好的体验,可以根据你的具体需求进行定制。

Debian 12 Bookworm Desktop (Xfce)

如果你不喜欢 Ubuntu,但想要在 APT 生态系统中使用 Xfce,你可以考虑使用带有 Xfce 的 Debian Linux。这将是一个理想的组合,适用于高效的日常使用发行版。最后,你将能够通过此变体体验原始的 Xfce 桌面环境。

你可以从下面的页面下载 Debian Xfce ISO 文件。

下载带有 Xfce 桌面环境的 Debian

Linux Mint Xfce 版本

如果你是 Linux Mint 的粉丝,希望使用 Xfce 桌面环境,那么你应该尝试它的 Xfce 版本。尽管 Mint 的主打的是 Cinnamon 桌面,但 Xfce 版也同样出色。

Linux Mint Xfce 版本引入了许多很酷的 Mint 应用程序(Xapps),使 Xfce 桌面对你来说更具生产力。内置的自定义和主题也让它在外观上优于默认的 Xfce 感觉。

Linux Mint with Xfce desktop

此外,你还可以轻松享受顺滑的系统更新、版本升级以及许多系统级操作,只需点击几下。Linux Mint Xfce 版本提供了一个顺滑且愉悦的计算体验,可能是最稳定且易于使用的 Xfce 发行版。

你可以通过以下链接下载 Linux Mint Xfce ISO。

下载 Linux Mint Xfce Edition

MX Linux

MX Linux 是一款受欢迎且可能是最受关注的新兴发行版,因其多样性和简单性而受到许多用户的关注。它基于 Debian 的稳定版本,并配备了定制的 Xfce 桌面环境。

在其核心部分,MX Linux 是没有 systemd 的。因此,你可以轻松使用这个超快的发行版在旧硬件上运行。MX Linux 还提供了 “MX 工具”,简化了在桌面上执行各种任务的过程。这些工具涵盖了系统管理、硬件设置和软件包管理等多个功能,使用户能够轻松定制自己的体验。

MX Linux 21.3 运行 Xfce 4.18

以下是 MX Linux 成为此列表中值得考虑的一个产品的一些关键原因:

  • 基于 Debian 的稳定版本
  • Xfce 桌面环境,并提供 Fluxbox 选项
  • 无 systemd
  • 出色的性能和稳定性
  • 可访问广泛的软件仓库
  • 方便定制的 MX 工具
下载 MX Linux

Fedora Xfce 版本

如果你想要基于 Fedora 的 Xfce 桌面环境,那么你的选择相对有限。其中一个选择是 Fedora Xfce 版本,它带来了最新的软件包和升级。Fedora Xfce 通常每年两次提供最新版本的 Xfce 桌面环境。此外,Fedora Linux 带来了最新的技术升级和软件包,使其成为基于 Xfce 的发行版的最佳选择。

Fedora Linux 中的 Xfce

Fedora Linux 中的 Xfce 桌面环境是其原装版本,没有任何定制。因此,你可以根据自己的喜好和需求 自定义 Xfce 桌面环境。此外,Fedora Linux 提供了一个广泛的软件仓库,提供各种应用程序、库和开发工具。

你可以从以下页面下载 Fedora Xfce 版本。

下载 Fedora Xfce 版本(种子文件)

Xubuntu

Xubuntu 是将受欢迎的 Xfce 桌面环境与 Ubuntu 操作系统集成在一起的 Linux 发行版。它为用户提供了轻量级、高效的计算体验,并融入了熟悉的 Ubuntu 生态系统。Xubuntu 专注于 Xfce 桌面环境,能够实现快速响应的用户界面,并节省系统资源。

Xubuntu 23.04 桌面

然而,Xubuntu 遵循 Ubuntu 的基础软件包,其中包括 Snap 和其他 Ubuntu 桌面应用程序。如果你能接受这些,那么 Xubuntu 是一个稳定的基于 Xfce 的发行版的绝佳选择。

你可以从以下页面下载 Xubuntu。

下载 Xubuntu

EndeavourOS

EndeavourOS 是这个列表中第一个基于 Arch Linux 的 Xfce 发行版。三年前,一个小团队的贡献者们开始了 EndeavourOS,以继承已停止的 Antergos 项目。从那时起,EndeavourOS 因其简便的安装、用户体验和功能而变得受欢迎。

尽管还有其他几个桌面环境可用,但 EndeavourOS 默认配备 Xfce 桌面环境。它的 Xfce 桌面环境经过了轻微的定制,这个基于 Arch Linux 的发行版提供了几乎原汁原味的 Xfce 桌面环境。

EndeavourOS with Xfce desktop

如果你曾经尝试过 EndeavourOS,你一定会“感受”到作为 Arch Linux 发行版,对于终端用户来说,执行任务有多么地“轻松”。这个发行版的座右铭是成为一款“面向大众”的 Arch Linux 通用目的发行版,摒弃了新用户对 Arch Linux 安装的恐惧和使用 Arch 的优越感。

EndeavourOS 是其他提供 Xfce 和 Arch Linux 的发行版中最好的选择。你可以从以下页面下载 EndeavourOS。

下载 EndeavourOS

Linux Lite

Linux Lite 6.0,又名 Linux Lite 操作系统,基于 Ubuntu 并遵循其 LTS(长期支持)生命周期。这意味着在 Ubuntu Linux 发布后的五年内,你将获得类似的发布时间表和安全更新。轻量级桌面环境 Xfce 是其主要且唯一的桌面环境。Linux Lite 操作系统主要针对希望开始他们的 Linux 之旅的 Windows 用户。因此,你可以将其视为一个“桥梁” Linux 发行版。

Linux Lite 6 Xfce 桌面

它提供的 Xfce 桌面环境经过轻微的主题、壁纸和字体定制。不过,它是另一个基于 Ubuntu 的带有 Xfce 的发行版。你可以试试看。

你也可以阅读有关 Linux Lite 评论 中有关其性能和其他方面的内容。

下载 Linux Lite

Manjaro Xfce

Manjaro Linux 是一款著名且经受时间考验的发行版,将 Arch Linux 带给了广大用户。它经过精心设计,旨在打破“Arch Linux 很难”的迷思。此外,一旦开始使用,你不会感觉到它是一个 Arch Linux 发行版。它可能感觉更像是基于 Debian 或 Fedora 的发行版。

尽管 Manjaro Linux 也提供了其他桌面环境,如 KDE Plasma,但它的 Xfce 变体也是以基于 Arch Linux 核心为基础设计的。如果你需要另一款基于 Arch Linux 的带有 Xfce 的发行版,可以尝试它。

你可以在我发布的 多篇点评 中了解更多关于这个发行版的信息。

Manjaro Linux 21.3 GNOME 桌面

下载 Manjaro Linux

Peppermint OS

接下来是 Peppermint OS,这是一个基于 Debian 稳定版的发行版,非常适合日常使用。它包括预安装的应用程序,帮助你快速上手,并带有定制的 Xfce 桌面环境。之前,Peppermint OS 使用的是 LXDE,但最近切换到了 Xfce。

Peppermint 2022-02-02 桌面

除了基于 Debian 之外,Peppermint OS 还具有两个关键应用程序:Peppermint Welcome 应用程序为新用户提供有关发行版的基本概述;另一个应用程序,Peppermint Hub,提供了一些快捷方式,用于管理你的系统,比如更改主题和从软件仓库下载软件。如果你是 Peppermint OS 的新用户,Peppermint Hub 可以从一个便捷位置处理大多数系统管理任务。

你可以尝试一下,但是 Xfce 桌面体验与本列表中的第一个发行版相同。

下载 Peppermint OS

Kali Linux

Kali Linux 是网络安全行业中广为人知的发行版,它基于 Debian 的测试分支,在这个列表中它是一个必不可少的选项。尽管它是针对某个特定领域的,但默认的 Xfce 桌面环境使它成为这个列表中的另一个候选项。

Kali Linux 配备了各种专门用于渗透测试、漏洞评估和数字取证的工具。这些工具包括密码破解、网络扫描和无线攻击,使其成为评估和保护系统的理想解决方案。

Kali Linux with Xfce Desktop Environment

它的 Xfce 桌面环境经过大量定制,使其成为外观出色的发行版之一。但是,它面向的是专门的用例。因此,你应该只将 Kali 用于那些特定功能。

下载 Kali Linux

对于你来说哪个是最好的?

嗯,这要取决于你的个人喜好和使用场景。如果你不确定,我建议你尝试 Linux Mint Xfce 或 MX Linux。它们应适用于各种用途。

如果你需要 Fedora 或 Arch Linux 基础,可以尝试 Fedora Xfce 或 EndeavourOS。

其余的发行版可能适用于需要 Ubuntu 或 Debian 基础的特定用例。

结论

总之,我们介绍了几个针对 Xfce 桌面环境进行优化的优秀 Linux 发行版。无论你是初学者还是高级用户,这些发行版都为你的计算需求提供了轻量、高效和可定制的平台。每个发行版都具有独特的功能和优势。

希望你能找到适合你的喜爱的基于 Xfce 的发行版!

(题图:MJ/a1b83f34-f5c2-43cd-aeb8-9f614c5dd1aa)


via: https://www.debugpoint.com/best-xfce-distributions/

作者:Arindam 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

人工智能工件需要新的开源许可证

上世纪七八十年代,由于自由软件运动的兴起,从版权法中衍生出来了自由及开源软件许可证,护航了自由及开源软件的蓬勃发展。人工智能诞生于开源软件,像 TensorFlow、PyTorch 这样的人工智能程序在其开源许可下运行良好。但新的人工智能工件,如数据集、模型、权重等并不完全适用于传统的版权模式。就像对 GitHub Copilot 输出的代码建议的起诉案,相信对用于训练人工智能违例使用各种训练素材的起诉会越来越多。甚至,会有像专利巨魔一样的许可证巨魔出现。开源倡议(OSI)和许多开源和人工智能领导人正在努力将人工智能和开源许可证以对两者都有意义的方式结合起来。

消息来源:The Register
老王点评:人工智能崛起的太快,一年前还没什么人谈论人工智能,以至于很多事情都来不及做好准备。所以,现在需要一个像当年的自由软件宣言一样的提纲挈领的倡议出现,以及在这个基础上建立的不同的许可证,才能真正为人工智能的发展铺平道路。

安卓的紧急呼叫打爆英国 999 紧急电话

安卓 12 系统为紧急服务增加了一个简单的功能:只要连按五次电源键,你的手机就会为你拨打紧急服务。当手机放在你的口袋里,或者你有一个不正常的电源按钮时,这显然很容易意外地做到。英国警方称,“所有紧急服务机构目前都在经历创纪录的 999 电话量”。有趣的是,带有这个功能的安卓 12 是在一年半前推出的,但直到现在才逐步普及到足够多的设备上。从那时起,就有源源不断的帖子提醒人们注意这个问题。在补丁出来之前,谷歌目前的建议是关闭该功能。

消息来源:Ars Technica
老王点评:这又是一个产品经理想当然的功能。

新车质量因使用更多新技术而下降

据研究,在美国销售的新车的质量正在下降,因为越来越多地使用了新技术和某些零件的制造质量下降等因素使这些车型更有“问题”。报告说,在过去两年中,每 100 辆车的问题数(PP100)上升了 30。特斯拉的 PP100 质量评级,同比增加了 31,到 2023 年达到了 257。新车提供的电子触摸式设计的门把手也成为了一个问题,在 10 个问题最多的车型中,有 7 个是电池电动车。

消息来源:路透社
老王点评:电动车是有很多先进的地方,但是堆砌不成熟的新技术往往是造成崩溃的原因。这有点像一个刚刚学会使用新框架的开发者,喜欢利用各种新功能来开发软件,但是往往出现一些问题。

这篇初学者指南解释了在 Ubuntu、Linux Mint 和 Windows 中升级到最新 LibreOffice 所需的步骤。

LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish

LibreOffice 被全球数百万用户使用,是当今最流行的免费办公套件。它由电子表格程序 (Calc)、文档处理器(Writer)、演示文稿(Impress)、绘图(Draw)和数学模块组成,可帮助你完成大部分办公、商务、学术和日常工作。

由于与 DOCX、PPTX 和 XLSX 等专有文件格式兼容,LibreOffice 可以作为付费的微软 Office 套件的出色替代品。它是 Apache OpenOffice 生产力套件的一个分支,由数以千计的全球贡献者积极开发。

LibreOffice Logo

升级到最新的 LibreOffice

LibreOffice 改变了它的版本命名方式,不再采用"Fresh"和"Still"的概念。现在,LibreOffice 有一个社区版和一个推荐的企业版。这是因为许多企业使用带有最新功能的最新 LibreOffice 版本,这对开发工作造成了阻碍。因此,团队建议企业用户从 LibreOffice 官方合作伙伴那里获得付费支持,以获得长期支持。你可以在 此处 阅读博文。

以下是当前的版本:

最新的 LibreOffice 版本

  • 当前的 LibreOffice 社区版本系列是 LibreOffice 7.4.x
  • LibreOffice 稳定推荐的商业版本是 LibreOffice 7.3.x

在 Ubuntu、Linux Mint 和其他基于 Ubuntu 的发行版中升级到最新的 LibreOffice

Ubuntu 22.04 LTS Jammy Jellyfish 具有 LibreOffice 7.3.x。

Ubuntu 20.04 LTS 目前有 LibreOffice 6.4.7,很快就会得到下一次迭代的更新。

Ubuntu 18.04 LTS 支持到 2023 年 4 月,具有 LibreOffice 6.2 版本。Linux Mint 19.x 也提供了相同的版本。你仍然可以在 Ubuntu 18.04 或 Linux Mint 19.x 中下载并安装 LibreOffice 6.3.x 版本。

坚持使用发行版提供的 LibreOffice 版本是比较明智的。此外,除非你需要最新的功能,否则不应升级。如果你喜欢尝试,你可以继续:

通过 PPA

你可以使用官方 LibreOffice PPA 安装和升级到最新的版本。打开终端并在 Ubuntu 或 Linux Mint 中运行以下命令。

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt update && sudo apt install libreoffice

降级 LibreOffice 并删除 PPA,请从终端按顺序运行以下命令。

sudo add-apt-repository --remove ppa:libreoffice/ppa
sudo apt install ppa-purge && sudo ppa-purge ppa:libreoffice/ppa

通过 Snap

你也可以选择通过下面的选项用 Snap 安装最新的LibreOffice。Snap 包 可以作为独立包在受支持的 Linux 发行版中使用。因此,你可以保留现有的 LibreOffice 安装并仍然运行最新的 Snap 版本。

请记住,从技术上讲,你可以使用一个 Snap 版本并行运行两个版本的 LibreOffice。但是,请确保可能存在轻微的文件关联问题和其他问题。这也适用于 Flatpak。

用 Snap 下载 LibreOffice

通过 Flatpak

Flatpak 是另一种方式,你可以通过它获得最新的 LibreOffice 以及发行版提供的版本。你可以安装 Flatpak 并通过以下链接下载 LibreOffice。

用 Flatpak 下载 LibreOffice

Windows 升级

对于 Windows,你不能直接从现有安装升级。你可以从 本页 下载最新的 LibreOffice 并进行安装。在安装过程中,你现有的版本将被卸载。

升级故障排除

如果升级后遇到任何问题或系统不稳定,最好进行全新安装。因此,你可以从 此链接 下载最新版本并进行安装。如果你使用的是 Ubuntu 或 Linux Mint,请不要忘记在安装最新版本之前先删除现有版本。

最后,如果你在 Ubuntu Linux 和其他操作系统中升级到最新的 LibreOffice 时遇到问题,请在下方发表评论。


via: https://www.debugpoint.com/libreoffice-upgrade-update-latest/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出