2022年11月

Midori 网页浏览器还是活跃的,即将到来的更新整合了一个开源搜索引擎!

几年前,Midori 是一个相当受欢迎的轻量级开源网页浏览器。

有些人认为它已经终止了,不知道它是否还在活动。

好消息是:

作为一个 自由开源的 产品,Midori 网页浏览器是活跃的(在测试阶段)可用的

它是一个基于 Chromium 的以 Electron 构建的浏览器,但没有谷歌的东西和隐私保护功能。

? 2019 年,该项目被终止,并与 Astian 合并为一个移动浏览器,当时我们并没有立即得到消息该浏览器是否将卷土重来或保持开源。

此外,在即将到来的浏览器更新中,他们计划将自己的开源搜索引擎 AstianGO 与之整合。?

这与 Brave(及其搜索引擎)有些类似,但 Brave Search 不是开源的

AstianGO:开源搜索引擎

在一个 Reddit 帖子 中,来自 Astian 的某个人宣布计划在 Midori 网页浏览器中集成一个开源搜索引擎,即 AstianGO,并在下次更新时加入。

源代码还没有发布,应该可以通过 这个 GitLab 页面 获得。

Astiango

透露的细节不多,但以下是他们提到的内容:

我们已经实现并开发了一个完全开源的搜索引擎,没有使用第三方的 API,它不存储用户的 IP 地址,不存储搜索历史。我们把这个搜索引擎称为 AstianGO,这个搜索引擎是用 PHP 开发的,它是自我托管的,尽管它还没有一个集成的更新系统,人们可以把它部署在他们的服务器上。

该搜索引擎使用来自谷歌、Qwant 和 Brave Search 的数据来提供结果。你可以看看它的 FAQ 来了解它的工作原理。

其他的浏览器,有些集成了以隐私为重点的搜索引擎,有些承诺提供隐私保护功能。

当然,这个搜索引擎看起来是一个正在进行的工作。

但是,一个开源的网页浏览器,带有隐私保护的搜索引擎(也是开源的),可能对大多数用户来说是带有太多不确定性。

Midori 浏览器

Midori 的目标是通过这一补充来改变这一状况。

Midori 网页浏览器的状态

这听起来不错,但我认为这并没有充分的计划。

有一个 AppImage 和一个 .deb包 可用。它也可用于其他平台。

我试着从它的 下载页面 安装 Midori 浏览器(.deb 包),但我无法在 Ubuntu 22.04 LTS 上安装它 ?

AppImage 文件可以使用 ✅

下载页面没有反映出所有的信息来告知 Linux 发行版的支持情况;它只是提到了 Debian x64,并没有完全翻译成英文。

所以,我不确定我们是否可以推荐使用该浏览器

当然,考虑到它还在测试阶段,你不应该依赖它。你可以浏览它的 GitLab 页面 来了解更多。

思考?

我认为一个新的开源搜索引擎是一件好事。我仍然不确定 Linux 的 Midori 网页浏览器是否可以推荐,我需要通过测试才能在将来推荐它。

\_是这个开源搜索引擎更让你兴奋,还是浏览器?请在下面的评论中告诉我你的想法。


via: https://news.itsfoss.com/midori-astiango/

作者:Ankush Das 选题:lkxed 译者:wxy 校对:wxy

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

Cinnamon 是 Linux Mint 的默认桌面环境。本快速指南解释了在 Arch Linux 中安装 Cinnamon 桌面环境的步骤。

Cinnamon 桌面环境Linux Mint 的默认桌面风格。创建这个基于 GTK 的桌面环境是为了提供具有以前的 GNOME 的传统桌面风格(即 GNOME 3 之前的外观)。该桌面本身很轻巧,非常人性化。因为它保留了经过时间考验的图标和菜单驱动的桌面行为,因此它被认为(与 Linux Mint 结合)是新 Linux 用户易于使用的桌面之一。

尽管 Cinnamon 及其软件包与 Linux Mint 紧密结合,但该桌面可以作为单独的桌面环境安装在 Ubuntu、Fedora 或 Arch Linux 中。

在 Arch Linux 中安装 Cinnamon 相当容易,就像在 Arch 中安装其他桌面(例如 Xfce 和 KDE Plasma)一样。但它需要安装一些特定的软件包才能使其看起来像一个合适的 Cinnamon 桌面。

让我们开始吧。

在 Arch Linux 中安装 Cinnamon 桌面

第 1 步:安装基本系统

本指南假设你已经安装了基本的 Arch 系统。如果你没有安装基本系统,请按照 自动化 Arch 安装指南(推荐方法)进行安装。然后按照以下步骤操作。

第 2 步:更新你的系统

在你的 Arch 中打开一个终端。并通过运行以下命令确保系统是最新的:

pacman -Syu

第 3 步:安装 yay AUR 助手

配置 Cinnamon 所需的某些包在 Arch 官方仓库中不可用。它们在 Arch 用户仓库(AUR)中。因此,你需要安装 yay 以获得额外的软件包。按照 本指南安装 yay AUR 助手

第 4 步:在 Arch Linux 中安装 Cinnamon 桌面

基本的 Cinnamon 桌面在 cinnamon 包中,它存在于社区仓库中。打开终端并运行以下命令来安装 Cinnamon 桌面和终端应用。

sudo pacman -S cinnamon gnome-terminal

安装显示服务器和显示管理器。LightDM 是轻量级的,非常适合 Cinnamon。不过,你可以使用任何其他显示管理器,例如 SDDM 或 GDM。但我建议你坚持使用 Lightdm。

sudo pacman -S xorg lightdm lightdm-gtk-greeter

使显示管理器和网络服务在下次启动时启动。

systemctl enable lightdm
systemctl enable NetworkManager

重启系统。

第 5 步:配置 Cinnamon 桌面

成功重启后,你应该会看到 Lightdm 登录提示。使用你在安装基本系统时可能已创建的用户名和密码登录。

当我第一次登录基本的 Cinnamon 桌面时,它看起来非常平淡。所以它需要一些定制。

Arch 中的 Cinnamon 桌面(配置前)

打开终端并安装一些重要的软件包,例如声音驱动、浏览器等。这将确保安装正确的字体和其他项目。

sudo pacman -S pulseaudio pulseaudio-alsa pavucontrol firefox vlc gimp xfburn thunderbird gedit gnome-system-monitor

然后为 Cinnamon 特定的图标集安装 faenza 图标主题。

sudo pacman -S mate-icon-theme-faenza

numix 主题需要安装 yay。在运行以下命令安装之前,请确保按照 该指南 安装 yay AUR 助手程序。

yay -S numix-themes

全部安装完成后,重启系统。

当你重新登录时,打开主题应用并按照以下更改窗口边框、图标、控件和桌面。

本指南的主题更改

你也可以在第二个选项卡(添加/删除)中下载其他主题。

其他主题供你下载

将默认的 GNOME 壁纸(Cinnamon 附带)更改为你喜欢的内容。本指南使用来自 cinnamon-look.org 的 Cinnamon 徽标壁纸。

如果一切顺利,你的桌面应该如下所示。

Arch Linux 中的 Cinnamon 桌面

在 Arch Linux 中运行的 Cinnamon 桌面

因此,在 Arch Linux 中安装和配置 Cinnamon 桌面的基本步骤到此结束。你可能想要添加其他设置,例如桌面小程序等。

结束语

Cinnamon 是一款适合新用户的现代且易于使用的桌面。以 Arch Linux 和 Cinnamon 的灵活性为核心,这个组合非常适合许多喜欢 Cinnamon 桌面(主要是 Linux Mint)但又希望同时使用 Arch Linux 的用户。我希望本指南能帮助你在 Arch Linux 中设置 Cinnamon 环境。


via: https://www.debugpoint.com/cinnamon-arch-linux-install/

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

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

你是否在寻找一份在 Debian 11(Bullseye)上安装 Kubernetes 集群的简易指南?

这份分步指南将向你展示如何使用 Kubeadm 工具在 Debian 11 上安装 Kubernetes 集群。

Kubernetes(k8s)集群包含主控节点和工作节点,用于运行容器化的应用程序。主控节点作为控制平面,工作节点为实际工作负载提供环境。

前置条件:

  • 已安装 Debian 11
  • 2 CPU / vCPU
  • 2 GB RAM
  • 20 GB 空闲硬盘空间
  • 有管理员权限的 sudo 用户
  • 稳定的网络连接

实验环境配置:

在本文中,我使用了 3 个 Debian 11 系统的节点,配置如下

  • 主控节点(k8s-master) – 192.168.1.236
  • 工作节点 1(k8s-worker1) – 192.168.1.237
  • 工作节点 2(k8s-worker2) – 192.168.1.238

事不宜迟,我们直接进入安装步骤。

1、设置主机名和更新 /etc/hosts 文件

在主控节点和工作节点上使用 hostnamectl 命令来设置主机名:

$ sudo hostnamectl set-hostname "k8s-master"       // 在主控节点运行
$ sudo hostnamectl set-hostname "k8s-worker1"      // 在工作节点 1 运行
$ sudo hostnamectl set-hostname "k8s-worker2"      // 在工作节点 2 运行

在所有节点的 /etc/hosts 文件末尾添加下面几行内容:

192.168.1.236       k8s-master
192.168.1.237       k8s-worker1
192.168.1.238       k8s-worker2

2、在所有节点上关闭交换分区

我推荐关闭交换分区,以便更丝滑地使用 kubelet。在所有节点上执行以下命令来关闭交换分区:

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3、配置 Kubernetes 集群相关的防火墙规则

如果你的操作系统防火墙是打开的,请分别在主控节点和工作节点允许以下的端口。

在主控节点,执行:

$ sudo ufw allow 6443/tcp
$ sudo ufw allow 2379/tcp
$ sudo ufw allow 2380/tcp
$ sudo ufw allow 10250/tcp
$ sudo ufw allow 10251/tcp
$ sudo ufw allow 10252/tcp
$ sudo ufw allow 10255/tcp
$ sudo ufw reload

在工作节点,执行:

$ sudo ufw allow 10250/tcp
$ sudo ufw allow 30000:32767/tcp
$ sudo ufw reload

注意:如果你的 Debian 11 系统防火墙是关闭的,可以跳过此步骤。

4、在所有节点安装 Containerd 运行时

Containerd 是容器运行时的行业标准,所有节点必须安装 Containerd。

先在所有节点上配置如下的核心参数,再安装 Containerd。

$ cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF

$ sudo modprobe overlay
$ sudo modprobe br_netfilter

$ cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF

运行如下命令,以使上面的更改生效:

$ sudo sysctl --system

现在,在所有节点上运行如下 apt 命令来安装 Conatinerd。

$ sudo apt  update
$ sudo apt -y install containerd

在所有节点上运行如下命令来配置 Containerd:

$ containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

在所有节点上设置 cgroupdriversystemd,编辑 /etc/containerd/config.toml 文件,找到 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 部分,添加一行内容:SystemdCgroup = true

$ sudo vi /etc/containerd/config.toml

systemdCgroup-true-containerd-config-toml

保存并退出文件。

在所有节点上重启并启用 containerd 服务:

$ sudo systemctl restart containerd
$ sudo systemctl enable containerd

5、添加 Kubernetes Apt 库

执行以下命令,添加 Kubernetes Apt 库:

$ sudo apt install gnupg gnupg2 curl software-properties-common -y
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/cgoogle.gpg
$ sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

6、在所有节点上安装 kubelet、kubectl 和 kubeadm

在所有节点上执行以下 apt 命令,安装 Kubernetes 集群组件,如 kubeletkubectl 以及 kubeadm

$ sudo apt update
$ sudo apt install kubelet kubeadm kubectl -y
$ sudo apt-mark hold kubelet kubeadm kubectl

7、使用 Kubeadm 创建 Kubernetes 集群

现在我们可以创建 Kubernetes 集群了,在主控节点上执行以下命令:

$ sudo kubeadm init --control-plane-endpoint=k8s-master

命令输出:

Kubernetes-Control-Plane-Initialization-Debian11

出现以上内容,说明控制平面初始化成功。在输出中,有普通用户与集群交互的命令,也有把任何工作节点加入到集群的命令。

要开始与集群进行交互,请在主控节点上运行以下命令:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

执行以下 kubectl 命令来获取节点和集群的信息:

$ kubectl get nodes
$ kubectl cluster-info

以上命令的输出:

Nodes-Cluster-Info-Kubectl

通过执行 kubeadm join 命令来把两个工作节点加入到集群。

注意:请从 kubeadm init 命令的输出中复制完整的命令。在我的例子中,命令如下:

$ sudo kubeadm join k8s-master:6443 --token ta622t.enl212euq7z87mgj \
   --discovery-token-ca-cert-hash sha256:2be58f54458d0e788c96b8841f811069019161f9a3dd8502a38c773e5c6ead17

在工作节点 1 上的输出如下:

Worker-Node1-Join-Kunernetes-Cluster

在工作节点 2 上的输出如下:

Worker-Node2-Join-Kubernetes-Cluster

在主控节点上执行以下命令,检查节点的状态:

$ kubectl get nodes
NAME          STATUS     ROLES           AGE     VERSION
k8s-master    NotReady   control-plane   23m     v1.25.0
k8s-worker1   NotReady   <none>          9m27s   v1.25.0
k8s-worker2   NotReady   <none>          2m19s   v1.25.0
$

为了使节点状态变为 ready,我们需要安装 容器荚 Pod 网络插件,如 Calico 或 flannel。

8、安装 Calico Pod 网络插件

在主控节点上执行以下命令安装 Calico:

$ kubectl apply -f https://projectcalico.docs.tigera.io/manifests/calico.yaml

输出:

Install-calico-pod-network-addon-debian11

在所有节点上执行以下命令,配置防火墙允许 Calico 的端口:

$ sudo ufw allow 179/tcp
$ sudo ufw allow 4789/udp
$ sudo ufw allow 51820/udp
$ sudo ufw allow 51821/udp
$ sudo ufw allow 4789/udp
$ sudo ufw reload

执行以下命令检查下 Calico 的状态:

$ kubectl get pods -n kube-system

Calico-Pods-Status-Kuberenetes-Debian11

完美!现在再检查下节点状态:

Nodes-status-after-calico-Installation

非常棒!上面的输出说明主控节点和工作节点的状态都是 ready。现在这个集群可以正常工作了。

9、检查 Kubernetes 集群安装是否正确

我们尝试通过 deployment 命令来部署基于 Nginx 的应用程序,来验证 Kubernetes 集群的安装是否正确。执行以下命令:

$ kubectl create deployment nginx-app --image=nginx --replicas 2
$ kubectl expose deployment nginx-app --name=nginx-web-svc --type NodePort --port 80 --target-port 80
$ kubectl describe svc nginx-web-svc

以上命令的输出:

Nginx-Based-App-Kubernetes-Cluster-Debian11

使用以下的 curl 命令通过节点端口 30036 来访问基于 nginx 的应用程序。

注意:在 curl 命令中,可以使用两个工作节点任一的主机名。

$ curl http://k8s-worker1:30036

Access-Nginx-Based-App-via-NodePort-Kubernetes-Debian11

以上的输出说明我们可以正常访问基于 nginx 的应用程序了。

以上为全部内容。希望本文对你有用,参照本文可以在 Debian 11 上正常安装 Kubernetes 集群。如有任何问题,请在下面评论区告诉我。


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

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

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

互联网档案馆上线 PalmPilot 仿真项目

在曾经领袖了 PDA 市场的 Palm 公司于 2011 年被惠普公司关闭之前,PalmPilot 已经走向衰落很多年。但是在上世纪之交使用过 Palm 的人都对它有着深刻的印象。上周,互联网档案馆上传了一个 Palm OS 应用程序的数据库,总共包含大约 560 个程序,介绍了 Palm 发展的历程。

消息来源:Engadget
老王点评:谁也没想到未来不是 PDA,而是智能手机。

爱普生将结束激光打印机销售

爱普生本月宣布,它将在 2026 年之前结束激光打印机硬件的销售和分销,理由是可持续性问题。该公司称,在环境方面,喷墨打印机比激光打印机有更大的潜力来实现有意义的进步。爱普生的无热喷墨技术通过使用机械能将墨水喷到页面上,消耗的电力比激光打印机更少。

消息来源:The Register
老王点评:我对这个理由表示怀疑。

印度使用 AI 来对抗垃圾短信

印度电信管理局之前采用区块链技术来消除垃圾短信,但效果不尽如人意。这个由区块链驱动的应用程序记录了超过 25 万个进行电话营销活动的主要实体的细节,使印度境内的客户对垃圾短信的投诉减少了 60%,但仍有大量投诉。印度电信管理局准备实施新的检测系统,利用人工智能和机器语言对标题和信息模板进行智能清洗等等。

消息来源:The Register
老王点评:从垃圾广告出现的那一天开始,就是一场永恒的对抗。

随着 helloSystem 0.7.0 的发布和更多内部工作,helloSystem 正在增强稳定性,为 macOS 提供一个“开源”的替代方案。

helloSystem 是一个基于 FreeBSD 的轻量级操作系统,旨在为 macOS 提供一个“开源”的替代方案。helloSystem 的主要目标是提供一个易于安装和使用的,真正“开源”的 FreeBSD 替代方案。此外,该团队还专注于从 macOS 转换过来的用户,他们可以舒适的使用类似的桌面,而不会受到系统锁定或 Linux 发行版的复杂性的影响。

考虑到 BSD 系统中的硬件支持,开发这样的操作系统需要时间。团队正在努力从零创建一个桌面 - “hellodesktop”。用 C++ 编写的 hellodesktop 和其他改进正在进行中。

helloSystem 0.7.0 桌面

helloSystem 0.7.0

在 2021 年底,该团队发布了最新一个稳定版本,基于 FreeBSD 13.0 的 helloSystem 0.7.0,并且目前正在将系统移植到 FreeBSD 13.1 和 14 版本。

除此之外,一些新功能也可以在系统中工作了;这是一个总览:

  • 由 FreeBSD 13.0 驱动
  • 通过更新的启动时间和压缩的 UFS 文件系统改进的 现场介质 Live Media
  • 将 ISO 镜像大小减少到 800 MB,以适合 CD
  • 与 Ventoy USB creator 兼容
  • 支持英伟达 GPU,包括旧型号
  • 在目标分区安装时添加了 exFAT 支持
  • 增加了 KDE 开发的 Falkon 浏览器,附带了下载和安装 Chromium 和 Firefox 的附加菜单项
  • 系统提示音
  • 支持通过笔记本电脑键盘的专用键控制亮度和音量

helloSystem 0.7.0 中的菜单与应用

除了上述内容之外,helloSystem 0.7.0 中还添加了一个新部分,以让你可以提前了解团队正在开发的功能。未来版本中将到来的一些最酷的功能包括:

  • BSD 中的 Debian 运行时安装程序,以在 BSD 中运行 Linux 应用程序!
  • 一个独立的应用程序,用于下载应用程序。
  • 新的更新实用程序

此外,0.7.0 中还修复了一些错误并更新了翻译。

安装 Linux 运行时正在开发中

话虽如此,但它仍然需要大量的时间才能成为易于使用的 BSD 变体和 macOS 的“开源”替代方案。自从我 首次报道 以来,已经在图形安装程序,桌面应用程序和错误修复方面进行了巨大的更新。我希望它在随着 2023 年移植到 FreeBSD 14 之后,会变得更加主流。

下载

如果你想在真实的硬件上尝试它,请先进行备份然后尝试。此外,helloSystem 现在完全兼容 VirtualBox 之类的虚拟机。你可以试试。如果你在 VirtualBox 中尝试,请确保将 CPU 更改为 64 位。

官方下载链接(包括 helloSystem 0.7.0 稳定版)可在 此页面 上找到,或者您可以使用下面的链接获取 ISO。

下载 helloSystem 0.7.0

如果你想为测试、开发或任何其他事情做出贡献,请 访问 GitHub 页面以获取详细信息


via: https://www.debugpoint.com/hellosystem-0-7-0/

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

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

你大概知道怎么在 Ubuntu 中使用 apt 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。

那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。

早晚你会碰到那种至少四行的安装说明:你需要安装名为 apt-transport-https 的包、操作一下 GPG 和 源列表 source list 之后,你才能正常安装软件包。

没有什么印象的话,那我分享一个 在 Ubuntu 上安装最新版本的 Yarn 的例子:

sudo apt install apt-transport-https curl
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
sudo apt update && sudo apt install yarn

当你需要直接从开发者那里安装编程工具的时候,大概率会碰到这种安装方式。

许多人只是按照说明进行操作,并不会去思考其中的原理。这也没什么不对,但了解该过程实际上可以提升你在这方面的知识,而且有助于之后排除故障。

我来解释一下这些代码背后的逻辑。

理解从外部存储库安装的过程

在你继续往下阅读之前,我强烈建议你先看看下面这两篇文章,方便理解后续的概念:

为了让你有点印象,这里有一张软件包存储库和 Linux 中的包管理器 的图片。

Illustration of repository and package manager

整件事情其实就是在系统中添加一个新的外部存储库。这样,你就可以从这个新存储库下载并安装可用的软件包。如果这个存储库提供了包版本的更新,你可以在更新系统的同时更新这些软件包(apt update && apt upgrade)。

那么,这是什么工作原理呢?让我们一条一条地过一遍。

第 1 部分:为 apt 获取 HTTPS 支持

第一行是这样的:

sudo apt install apt-transport-https curl

curl 是一个 Linux 终端下载文件的工具。这里主要的部分是安装 apt-transport-https,但事实上已经不需要了。

明白了吗?这个 apt-transport-https 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。

看看下面的截图。 https 这张图是我已经添加到系统中的外部存储库。Ubuntu 的存储库和 PPA 使用 http 协议。

在旧版本的 apt 包管理器中,不支持 https 协议。apt-transport-https 包为 apt 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。

我之前不是说不需要安装这个包了吗?是的,因为较新版本的 apt(高于 1.5)已经支持 https,所以你不需要再安装 apt-transport-https

但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 apt 包。

现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。

第 2 部分:添加远程存储库的 GPG 密钥

Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“ 签名 signed ”,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。

如果 密钥之间不匹配,你的系统会发出提醒,而不会继续从该存储库安装或者更新软件包。

到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

在上面的命令中,你使用 curl 从指定的 URL 下载 GPG 密钥。选项 -sS 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 - 告诉 apt-key 使用 标准输入 stdin 而不是文件(在本例中是 curl 命令的输出)。

apt-key add 命令已经将下载的密钥添加到系统中。

你可以通过 apt-key list 命令查看系统中各种存储库添加的 GPG 密钥。

List GPG keys

这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

你会注意到 apt-key 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 apt-key 命令,但它最终会被删除。现在不需要杞人忧天。

第 3 部分:将外部存储库添加到源列表

下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

有一个文件 /etc/apt/sources.list 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 /etc/apt/sources.list.d 目录中相应的文件里(约定以 .list 结尾)。

External repository should have their own sources list file in the /etc/apt/sources.list.d directory

这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 sources.list 文件。

让我们再仔细地看一下这行命令。

sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

使用 sh 可以在一个新的 shell 进程中运行命令,而不是 子 shel​​l-c 选项告诉 sh 命令从参数而不是标准输入读取命令。然后它运行 echo 命令,也就是把 deb https://dl.yarnpkg.com/debian/ stable main 这一行添加到 /etc/apt/sources.list.d/yarn.list 文件(会创建该文件)。

现在,你可以通过各种方法在指定目录中创建 .list 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用:

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

明白了吧?

第 4 部分:从新添加的存储库安装应用程序

到目前为止,你已经将存储库的 GPG 密钥和存储库的 URL 添加到系统中。

但是系统仍然不晓得这个新存储库中有哪些可用的包。这就是为什么你需要先使用下面这个命令更新包元数据的本地缓存:

sudo apt update

这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包:

sudo apt install yarn

为了节省时间,你可以在 同一行挨着运行这两个命令e。

sudo apt update && sudo apt install yarn

&& 可以确保第二个命令只会在前一个命令没有任何报错的前提下运行。

整个流程就是这样。

有没有豁然开朗呢,还是一脸懵逼?

我已经解释了在 Ubuntu 中使用外部存储库背后的逻辑。希望你现在能更好地理解它,当然可能还有很多细节会让你困惑。

如果你还不清楚或者还有其他问题,可以联系我。如果你发现了技术上的纰漏,记得在评论区告诉我。


via: https://itsfoss.com/adding-external-repositories-ubuntu/

作者:Abhishek Prakash 选题:lujun9972 译者:nophDog 校对:wxy

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