2023年7月

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

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

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

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

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

在 Bash shell 中使用变量

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

var=4

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

[abhishek@itsfoss]:~$ echo The value of var is $var
The value of var is 4
? 变量初始化时 = 前后不能有空格。

如果需要,你可以将该值更改为其他值:

Using variables in shell

在 Bash shell 中,变量可以是数字、字符或字符串(包括空格在内的字符)。

Different variable types in Bash shell

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

在 Bash 脚本中使用变量

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

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

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

mkdir -p bash_scripts && cd bash_scripts

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

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

#!/bin/bash

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

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

这是它为我生成的内容:

Using global variable in Bahs script

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

你可能还注意到,我有时将 "echo 一起使用,但其他时候则不使用。这是故意的。bash 中的引号 有特殊含义。它们可用于处理空格和其他特殊字符。让我展示一个例子。

处理变量中的空格

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

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

greetings=Hello and Welcome

你会得到这样的错误:

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

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

greetings="Hello and Welcome"

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

Using spaces in variable names in bash

将命令输出分配给变量

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

var=$(command)

这是一个例子:

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

Command substitution in bash

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

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

?️ 练习时间

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

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

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

提示:使用全局变量 $USER$PWD$HOME$SHELL

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

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

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

提示:使用 \ 转义特殊字符 $

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

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

(题图:MJ/37c5c26e-3289-4ebd-b8ae-88eb8a3b2eb1)


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

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

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

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

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

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

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

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

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

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

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

消息来源:The Register
老王点评:真是众口难调啊,集市式开发就会像集市一样吵吵闹闹,作为 Linux 内核的最终裁决者,Linus 也挺难的。

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

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

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

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

Linux 的最佳应用坞

Plank

最受欢迎和知名的应用坞是 Plank,许多发行版将其作为默认应用坞。例如,elementary OS 使用 Plank 做为其 Pantheon 桌面环境的应用坞。

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

Plank 应用坞

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

sudo apt install plank

安装完成后,你可以通过命令提示符中输入 plank,或通过应用程序菜单启动它。如果你在 Ubuntu 上使用它,请确保使用任何 GNOME 扩展(例如 Just Perfection)隐藏默认的左侧 启动器 Dash

注意: Plank 在 Wayland 上无法工作。你需要使用 X.Org 会话。

Dash to Dock 扩展

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

Dash to Dock 扩展

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

要安装此扩展,先安装 扩展管理器,然后搜索 “Dash to Dock” 并安装。

Dock from Dash 扩展

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

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

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

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

要安装此扩展,先安装 扩展管理器,然后搜索 “Dock from Dash” 并安装。

Dock from Dash

Latte Dock

Latte Dock 以其庞大的自定义选项而闻名。它是 KDE 系统的一部分,并带有许多依赖项。我将其添加到此列表的主要原因是它是目前最好的应用坞。

然而,问题在于该项目目前没有在维护。Latte Dock 的开发者已经 离开了该项目。KDE 的自动化机制使该项目保持维护模式。因此,如果需要,只需进行少量调整,它就能正常工作。

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

Latte Dock

你可以使用以下命令安装 Latte Dock。如果你在 Ubuntu 上安装它,请记住它将下载大量的 KDE 生态系统的软件包。因此,建议你在任何 基于 KDE Plasma 的 Linux 发行版 上使用 Latte 应用坞以获得最佳体验。

sudo apt install latte-dock

Docky

如果你想要一个类似 macOS 风格的应用坞,可以尝试使用 Docky。Docky 是一个简单易用的应用坞,与 GNOME 桌面环境紧密集成。它是一个轻量、快速和可自定义的应用坞,可用于启动应用程序、访问文件和管理窗口。

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

Docky 和设置

但是有一个问题。

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

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

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

sudo apt install *.deb

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

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

DockbarX

如果你是 Xfce 桌面的忠实用户,可能听说过 DockbarX。它在 Xfce 上运行得很好,但你也可以在 Ubuntu、Linux Mint 或 Arch Linux 上安装它。

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

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

DockBarX

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

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

如果你使用的是 Arch Linux,你可以设置任何 AUR 辅助工具,如 Yay,并使用以下命令安装它。

yay -S dockbarx

KSmoothDock

如果你喜欢在应用坞中显示更多的界面动画效果,那么你可以考虑使用 KSmoothDock。它具备所有常见的应用坞功能,并附加了一些额外的特性。

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

KSmoothDock

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

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

下载 KSmoothDock

一些不活跃的 Linux 应用坞

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

Cairo Dock: 对于最新的 Ubuntu 发行版,目前已不可用。最后一个稳定版本发布于 2015 年。

Avant Window Navigator: 目前无法正常工作。最后一个发布版 发布于 2013 年。

总结

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

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

(题图:MJ/5a640365-8b47-43cc-8d72-2f0af8fc9099)


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

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

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

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

什么是 CloudReady?

CloudReady 是一个基于谷歌的 Chromium OS 开源代码仓库的操作系统。Neverware 公司是 CloudReady 背后的组织,它开发的 CloudReady 可以部署到现有的 PC 和 Mac 上,由于其对硬件的要求极低,因此可以保证在上述硬件上的性能提升。大体上来说,CloudReady 把你的旧计算机变成了 Chromebook。2020 年底 Google 收购了 Neverware

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

谁应该尝试 CloudReady?

CloudReady

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

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

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

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

如果你不确定自己的上网本是否能够运行 CloudReady,Neverware 公司发布了能够运行 CloudReady 的认证机型清单。目前该清单已包含超过 450 种机型。你可以通过 这个官方链接来核查自己的机型

CloudReady 与 Chrome OS 有什么不同?

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

  • 通过 “ Neverware 管理门户 Neverware Admin Portal ”(到 Google 完成收购为止)或 “ 谷歌管理控制台 Google Admin Console ” 来管理 CloudReady 设备。
  • 你的工作可以通过网页浏览器来完成(基于网络服务)。

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

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

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

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

A screenshot of the app drawer in CloudReady with the Google Play Store app icon  along with Chrome Extensions as “Apps”

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

为什么会有 CloudReady?

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

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

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

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

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

获取 CloudReady

CloudReady screenshot

CloudReady 提供三个版本:家庭版(免费)、教育版(付费)和企业版(付费)。如果你想先体验一下 CloudReady,那就选家庭版。

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

Neverware 同时提供一个 RAW 文件,你可以用 任何基于 Chromium 的浏览器Chromebook 恢复扩展 来制作启动 U 盘。

下载 CloudReady 家庭版

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

下载 CloudReady “.ova” 文件

Ubuntu Web:ChromeOS 和 CloudReady 的替代品?

如果你想要在旧电脑上使用 CloudReady,但是它缺少安卓运行时这点让你失望了,也许你可以试试 Ubuntu Web

A screenshot of Ubuntu Web

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

Ubuntu Web 有与 Ubuntu 一样的同步能力,让你能够用 /e/ Cloud(一个专注于隐私的 Google 云同步服务替代品)实现同步。

最重要的是 Ubuntu Web 默认附带了 Waydroid

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

总结

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

对于使用低端硬件的家庭用户来说,它也是一个不错的选择,但是我们 已经有很多轻量级的 Linux 发行版

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

(题图:MJ/5c18795b-6978-48a0-a6f7-baffde69ab48)


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

作者:Pratham Patel 选题:lujun9972 译者:toknow-gh 校对:wxy

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

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

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

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

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

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

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

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

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

消息来源:Slashdot
老王点评:虽然不具备法律效力,但是至少为人工智能抓取制定了一个行为准则和法律底线。

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

你可以 在 Ubuntu 中添加外部仓库 来访问官方仓库中不可用的软件包。

例如,如果你 在 Ubuntu 中安装 Brave 浏览器,则将其仓库添加到你的系统中。如果你添加了一个 PPA,它也会添加为外部仓库。

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

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

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

但在此之前,如果你对这个概念不熟悉,我强烈建议你 熟悉包管理器的概念 和仓库。

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

你知道你还可以使用 apt 命令 来删除仓库吗? 嗯,从技术上讲,它不是核心 apt 命令的一部分,但它的工作方式类似。

在处理外部仓库时,你可以使用 add-apt-repository 或者 apt-add-repository 命令(两者是同一命令)。

首先,使用以下命令列出添加的仓库:

apt-add-repository --list

list enabled repositories in Ubuntu

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

sudo apt-add-repository -r repo_name

例如,如果我想删除 yarn 仓库,我必须使用以下命令:

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

Remove repository using the apt-add-repository command in Ubuntu

按回车键进行确认。

接下来,使用以下命令更新仓库:

sudo apt update

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

apt-add-repository --list

confirm repository removal process by listing enabled repositories in Ubuntu

这就完成了!

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

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

作为 最适合初学者的发行版之一,你可以使用 GUI 来删除仓库,而无需使用终端。

为此,首先从系统菜单打开“ 软件及更新 software & updates ”应用:

search for software and updates from the system menu

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

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

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

  • 选择需要删除的仓库
  • 点击“ 删除 Remove ”按钮
  • 最后,点击“ 关闭 Close ”按钮

Disable repository from Ubuntu

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

只需单击 “ 重新载入 Reload ” 按钮即可:

Click on reload to after removing repository from Ubuntu and save changes

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

sudo apt update

方法 3、通过目录来删除仓库(对于专家?‍?)

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

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

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

list contents of sources.list.d directory

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

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

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

sudo rm Repo_name.list

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

sudo rm nodesource.list

remove repository by removing the repository directory in Ubuntu

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

sudo apt update

想了解更多有关 sources.list 的信息吗?阅读 这篇文章

附加步骤:删除仓库后删除 GPG 密钥(对于高级用户)

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

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

apt-key list

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

以下是要记住的事情:

  • GPG 密钥名称将放置在虚线(----)上方
  • 公钥在第二行

例如,以下是 Chrome GPG 密钥的相关数据:

list GPG keys in Ubuntu

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

例如,以下是我将如何使用 Chrome 浏览器公钥的最后两个字符串(D38B 4796)删除其 GPG 密钥:

sudo apt-key del D38B4796

remove GPG key in Ubuntu

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

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

小心添加和删除的内容

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

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

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

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

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

(题图:MJ/3d436ed6-76fc-47ef-88c3-b5f3e2862c7d)


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

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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