什么是 Ubuntu 存储库? 如何启用或禁用它们?

这篇详细的文章向您介绍了各种存储库,例如 Ubuntu 中的 Universe、Multiverse 以及如何启用或禁用它们。

因此,您正在尝试遵循网络上的教程并使用 apt-get 命令安装软件,它会引发错误:

E: Unable to locate package xyz

您很惊讶,因为该软件包应该可用。 您在 Internet 上搜索并遇到一个解决方案,您必须启用 Universe 或 Multiverse 存储库才能安装该软件包。

您可以使用以下命令在 Ubuntu 中启用 Universe 和 Multiverse 存储库:

sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt update

您安装了 Universe 和 Multiverse 存储库,但您知道这些存储库是什么吗? 他们如何在安装包中发挥作用? 为什么有几个存储库?

我将在这里详细解释所有这些问题。

Ubuntu 中存储库的概念

好的,所以您已经知道要在 Ubuntu 中安装软件,您可以使用 apt 命令。 这是一样的 APT 包管理器 Ubuntu 软件中心在下面使用。 所以你在软件中心看到的所有软件(除了 Snap 包)基本上都是来自 APT。

你有没有想过 apt 程序从哪里安装程序? 它如何知道哪些包可用,哪些不可用?

Apt 基本上适用于存储库。 存储库只不过是包含一组软件的服务器。 Ubuntu 提供了一组存储库,这样您就不必在互联网上搜索您需要的各种软件的安装文件。 这种提供软件的集中方式是使用 Linux 的主要优势之一。

APT 包管理器从 /etc/apt/sources.list 文件和 /etc/apt/sources.list.d 目录中列出的文件获取存储库信息。 存储库信息通常采用以下格式:

deb https://us.archive.ubuntu.com/ubuntu/ bionic main

事实上,你可以 去上面的服务器地址 并查看存储库的结构。

当您使用 apt update 命令更新 Ubuntu 时,apt 包管理器从存储库中获取有关可用包的信息(及其版本信息)并将它们存储在本地缓存中。 您可以在 /var/lib/apt/lists 目录中看到它。

将这些信息保存在本地可以加快搜索过程,因为您不必通过网络搜索可用软件包的数据库来检查某个软件包是否可用。

现在您知道存储库如何发挥重要作用,让我们看看为什么 Ubuntu 提供了多个存储库。

Ubuntu 存储库:Main、Universe、Multiverse、Restricted 和 Partner

Ubuntu 存储库中的软件分为五类:main、universe、multiverse、restricted 和 partner。

为什么 Ubuntu 会这样做? 为什么不将所有软件放在一个存储库中? 要回答这个问题,让我们看看这些存储库是什么:

主要的

安装 Ubuntu 时,这是默认启用的存储库。 主存储库仅包含 FOSS(免费和开源软件),可以不受任何限制地自由分发。

Ubuntu 开发人员完全支持此存储库中的软件。 这就是 Ubuntu 将提供的安全更新,直到您的系统达到使用寿命为止。

宇宙

此存储库还包含免费和开源软件,但 Ubuntu 不保证定期对此类软件进行安全更新。

此类别中的软件由社区打包和维护。 Universe 存储库拥有大量开源软件,因此它使您能够通过 apt 包管理器访问大量软件。

多元宇宙

Multiverse 包含非 FOSS 的软件。 由于许可和法律问题,Ubuntu 默认无法启用此存储库,也无法提供修复和更新。

由您决定是否要使用 Multiverse 存储库并检查您是否有权使用该软件。

受限制的

Ubuntu 试图只提供免费和开源软件,但在支持硬件方面并不总是可行的。

受限存储库由专有驱动程序组成。

伙伴

该存储库由 Ubuntu 为其合作伙伴打包的专有软件组成。 早些时候,Ubuntu 曾经通过这个存储库提供 Skype。

第三方存储库和 PPA(Ubuntu 不提供)

以上五个存储库由 Ubuntu 提供。 您还可以添加第三方存储库(取决于您是否愿意)来访问更多软件或访问较新版本的软件(因为 Ubuntu 可能会提供相同软件的旧版本)。

例如,如果您添加由 VirtualBox, 你可以获得最新版本的 VirtualBox. 它将在您的sources.list 中添加一个新条目。

您还可以使用 PPA(个人包存档)安装其他应用程序。 我已经详细介绍了 PPA 是什么以及它是如何工作的,所以请阅读那篇文章。

小费

尝试不要在您的 sources.list 文件中添加除 Ubuntu 存储库之外的任何内容。 你应该保持这个文件处于原始状态,因为如果你把它弄乱了,你将无法更新你的系统或(有时)甚至安装新的包。

添加宇宙、多元宇宙和其他存储库

正如我之前提到的,在安装 Ubuntu 时,默认情况下仅启用主存储库。 要访问更多软件,您可以添加其他存储库。

让我先向您展示如何在命令行中执行此操作,然后再向您展示 GUI 方式。

要启用 Universe 存储库,请使用:

sudo add-apt-repository universe

要启用受限存储库,请使用:

sudo add-apt-repository restricted

要启用 Multiverse 存储库,请使用以下命令:

sudo add-apt-repository multiverse

你必须使用 sudo 添加存储库后的 apt update 命令,以便您的系统使用包信息创建本地缓存。

如果你想 删除存储库, 只需添加 -r like sudo add-apt-repository -r 宇宙.

以图形方式,转到软件和更新,您可以在此处启用存储库:

您将在“其他软件”选项卡中找到启用合作伙伴存储库的选项。

要禁用存储库,只需取消选中该框。

额外提示:如何知道包属于哪个存储库?

Ubuntu 有一个专门的网站,为您提供有关 Ubuntu 存档中所有可用软件包的信息。 转到 Ubuntu 软件包网站。

您可以在搜索字段中搜索包名称。 您可以选择是否要查找特定的 Ubuntu 版本或特定的存储库。 我更喜欢在这两个字段中使用“任何”选项。

它将显示所有匹配的包、Ubuntu 版本和存储库信息。

正如您在上面看到的,包 tor 在 Universe 存储库中可用于各种 Ubuntu 版本。

结论

我希望这篇文章能帮助你理解 Ubuntu 中存储库的概念。

如果您有任何问题或建议,请随时在下面发表评论。 如果您喜欢这篇文章,请在 Reddit 和 Hacker News 等社交媒体网站上分享。