Redian新闻
>
了解 Ubuntu 的软件存储库系统 | Linux 中国

了解 Ubuntu 的软件存储库系统 | Linux 中国

科技
 
导读:了解 Ubuntu 软件仓库系统的基本机制,更好地处理软件包管理问题,避免常见的更新错误。       
本文字数:3906,阅读时长大约:6分钟

了解 Ubuntu 软件仓库系统的基本机制,更好地处理软件包管理问题,避免常见的更新错误。

当你开始使用 Ubuntu 或者其它基于 Ubuntu 的发行版时,你很快就会学会使用 apt 命令安装软件包:

  1. sudo apt install package_name

你可能还会使用这三条 PPA 命令安装其它软件:

  1. sudo add-apt-repository ppa:PPA_Name/ppa
  2. sudo apt update
  3. sudo apt install package_from_ppa

但当你添加一些外部的软件存储库时,很可能会遇到一些更新错误。

尽管你可以在互联网上搜索到同样的报错以及对应的解决方案,但在大多数情况下,你并不知道这些错误为什么会出现,也不知道它们是怎么被解决的。

如果你了解了 Ubuntu 软件存储库的运行机制,你就会很清楚这些问题的根源是什么,进而对症下药地给出处理方式。

在技术论坛上,你可以找到很多相关的零散内容,但那些碎片化的信息并不能让你对其产生一个全面的理解。

因此我写出了这篇文章,以便让你全面了解软件存储库是如何运作的。

本文的内容适用于 Linux Mint、Elementary OS 以及其它基于 Ubuntu 的发行版(Debian 或许也适用)。

本文主要面向终端用户而不是开发者,我只会介绍维护系统软件存储库所需要的知识,不会展示如何在 Ubuntu 中打包应用程序。

我们会先从关键部分开始,了解软件包管理器和软件存储库的基本概念。这可以为了解它们的底层运作方式奠定基础。

1、什么是包管理器?

简单地说,包管理器就是让用户在操作系统上安装、移除、升级、配置、管理软件包的工具。

Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了各种不同类型的软件包以及它们的元数据文件,元数据文件中记录了软件包的信息,包括软件包名称、版本号、软件包描述和软件存储库名称等。

软件包管理器与元数据进行交互,并在你的系统上创建本地的元数据缓存。当你需要安装软件时,软件包管理器会引用这些缓存来获取信息,通过互联网连接到对应的存储库下载软件包,然后再将软件包安装到系统上。

下面这篇文章详细介绍了软件包管理器的工作原理,欢迎查阅。

Linux 上的软件包管理器🔗 itsfoss.com

2、Ubuntu 的默认软件存储库

在上一节中,你可能已经对软件存储库有了一些认识。

你可能已经猜到,没有哪个软件存储库会包含所有软件包。因为软件包会被分类放置在不同的软件存储库中,这样就可以方便地启用或禁用部分软件存储库。

每个 Ubuntu 版本都有自己的一组四个官方存储库:

◈ Main – Canonical 支持的自由开源软件
◈ Universe – 社区维护的自由开源软件
◈ Restricted – 设备的专有驱动程序
◈ Multiverse – 受版权或法律问题限制的软件

下面这篇文章介绍了如何在 Ubuntu 中启用 Universe 和 Multiverse 软件存储库。

如何启用 Universe 和 Multiverse 软件存储库🔗 itsfoss.com

3、了解 sources.list

sources.list 是 Ubuntu 软件存储库机制的一个组成部分。sources.list 文件中存在的错误条目常常是引发一些与更新问题的根本原因。

因此,了解 sources.list 很重要。

sources.list 是一个记录了软件存储库信息的文本文件,每一行未被注释的内容都代表一个单独的软件存储库。

sources.list in Ubuntu

但这些内容需要遵循特定的格式,并且不应出现重复的行。下面这篇文章中介绍了 sources.list 的更多详细内容。

sources.list 的用法🔗 itsfoss.com

4、深入了解 PPA

尽管 Ubuntu 最近在大力推广 Snap,但 PPA 仍然是获取 Ubuntu 最新软件的一个可靠途径。

然而很多 Ubuntu 用户都只是刻板地直接运行上面的三条命令来使用 PPA,自然很容易会遇到诸如“repository does not have release file”这样的问题。

下面这篇文章是一篇深入详尽的 PPA 指南。

PPA 详尽指南🔗 itsfoss.com

5、添加外部软件存储库

除了默认软件存储库和 PPA,你还可以从第三方软件存储库中添加软件。比如 Brave 浏览器、Docker 等软件都专门为 Ubuntu 提供了软件存储库。

你可以通过下面这篇文章了解使用外部软件存储库的机制。

通过外部存储库安装软件🔗 itsfoss.com

6、排查常见错误

现在你已经了解了底层机制,现在可以熟悉一下在使用 Ubuntu 时可能遇到的典型更新错误了。

当你看到出现错误之后,你会得到一些关于它的根本原因的提示。在了解根本原因后,你就能知道某个解决方案是如何解决问题的了。

这就是本文的目的。让你充分了解软件包管理系统的底层知识,从而避免常见错误或者直接有效修复这些错误。

你不仅要知其然,还要知其所以然。

下载软件存储库信息失败

如果遇到了这种情况,就可以开始调查了。

Failed to download repository information

在某些情况下,可能是网络连接的问题,但也有可能是因为你自行添加了某些软件存储库,或者 sources.list 中的条目有误。

这个时候应该在终端中尝试刷新软件包缓存。

  1. sudo apt update

检查输出结果的最后几行,它会给出错误信息(也就是以 “E:” 开头的行)。有了错误信息之后,就可以开始故障排除了。

软件存储库中没有发布文件

如果 Ubuntu 用户未检查某个 PPA 是否支持其 Ubuntu 版本,就盲目向系统中添加该 PPA 时,就很可能会遇到这样的错误。

  1. E: The repository http://ppa.launchpad.net/numix/ppa/ubuntu focal Release’ does not have a Release file.

原因很可能就是这个软件存储库没有针对所使用的 Ubuntu 版本进行配置。

下面这篇文章对此做了详细解释。

软件存储库中没有发布文件🔗 itsfoss.com

MergeList 问题

如果你看到这样的错误:

  1. E:Encountered a section with no Package: header,
  2. E:Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise_universe_binary-i386_Packages,
  3. E:The package lists or status file could not be parsed or opened.

这表明第二行中提到的缓存文件已经损坏。对应的解决方法是清空缓存并重试。

下面这篇文章对此做了详细解释。

MergeList 问题🔗 itsfoss.com

目标软件包被多次配置

好吧!严格来说,这不是一个错误。它只是一个警告。但它仍然很常见,可能会给许多 Ubuntu 新用户带来麻烦。

这是一个能让你把新学到的知识用在这里的好例子。

出现这个问题是因为 sources.list 文件中有重复的条目。解决办法是将所有重复的行删除至只保留一行。

下面这篇文章对此做了详细解释。

目标软件包被多次配置🔗 itsfoss.com

7、继续学习

在读完这篇文章后,希望你对 Ubuntu 的软件存储库机制能有更深入的了解。下一次当你遇到错误并寻找解决方案时,你就更有可能理解发生了什么。

接下来,你应该学会使用 apt 的各种命令管理软件包,不仅仅只是 apt install 或 apt remove

apt 命令详尽指南🔗 itsfoss.com

你还可以详细了解一下关于软件包管理的其它知识。

完全指南:在 Ubuntu 安装和删除软件🔗 itsfoss.com

由于 Ubuntu 比以往任何时候都更推崇 Snap,所以你也应该学习一些必要的 Snap 命令。

完全指南:在 Ubuntu 上使用 Snap 安装包🔗 itsfoss.com

Flatpak 应用程序也越来越受欢迎,你也很可能会接触到它们。

在 Ubuntu 上安装和使用 Flatpak🔗 itsfoss.com

希望你喜欢学习软件存储库的机制,并对软件包管理有更清晰的认识。欢迎在评论区分享你的想法。

(题图:MJ/6878226c-f6b0-40e7-aae7-d64932b36464)


via: https://itsfoss.com/ubuntu-repository-mechanism/

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

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

LCTT 译者 :Hank Chow
🌟🌟🌟🌟🌟
翻译: 80.0 篇
|
贡献: 2079 天
2017-11-29
2023-08-09
https://linux.cn/lctt/HankChow
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
备受欢迎的数字音频工作站 Studio One 新增了对 Linux 的支持 | Linux 中国弃 Ubuntu 转 Manjaro 一周后的使用体验 | Linux 中国如何创建 Ubuntu 持久化立付 U 盘 | Linux 中国Ubuntu 23.10 将首次推出基于 Flutter 的新 Ubuntu 商店 | Linux 中国Ubuntu 23.10 将提供实验性 TPM 支持的全磁盘加密 | Linux 中国逃得过死亡,逃不过丈母娘如何在 Ubuntu 22.04 中安装和使用 Wireshark | Linux 中国长篇小说《如絮》第一百三十一章 哈尔滨-1955年 全家福Tube Downloader:下载 YouTube 视频的开源工具 | Linux 中国10 个最佳 Linux 虚拟化软件 | Linux 中国在 Linux 的 VirtualBox 中从 USB 驱动器启动 | Linux 中国如何从 Ubuntu 中删除软件仓库 | Linux 中国在 Ubuntu 上安装和使用 Flatpak | Linux 中国10 分钟让你了解 Linux ABI | Linux 中国Ubuntu Linux 的 7 个最佳应用坞 | Linux 中国一直在期待的基于 Ubuntu 的滚动发布 Rhino Linux 终于来了 | Linux 中国市场分析:分布式存储、软件定义存储、超融合存储(2023)美国宪法是为了制约民主选举结果在 Ubuntu、Linux Mint 和 Windows 中升级到最新的 LibreOffice | Linux 中国软件存漏洞,现代召回近3.8万辆车任务中心:一款流畅的 Linux 系统监控应用 | Linux 中国Wolfi:改进云软件供应链的 Linux “非”发行版 | Linux 中国中国医疗队在坦桑尼亚记实 (五)在 Ubuntu 上安装 VSCodium | Linux 中国迪拜喷泉灯光秀如何在 Linux 中查找映射到 VxVM 磁盘的 SAN LUN | Linux 中国如何在 Ubuntu 中安装 Wine | Linux 中国在 Linux 文件系统中使用 attr 添加扩展属性 | Linux 中国比 Ubuntu 更好?Ubuntu 爱好者的 11 款最佳 Linux 发行版 | Linux 中国如何在 Linux 中映射 SAN LUN、磁盘和文件系统 | Linux 中国如何在 Linux 中扩展 Veritas 文件系统(VxFS) | Linux 中国Ubuntu 与 Kubuntu:哪一个更适合你? | Linux 中国UbuntuDDE Remix 23.04 登场! | Linux 中国如何在 Ubuntu 和其他 Linux 发行版中查看 AVIF 图像 | Linux 中国2023 年最佳 Linux 视频编辑软件 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。