@HankChow
https://linux.cn/article-16082-1.html
This commit is contained in:
Xingyu Wang 2023-08-11 11:25:49 +08:00
parent 4cb5864137
commit b8becdbc2b

View File

@ -3,13 +3,17 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "HankChow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-16082-1.html"
了解 Ubuntu 的软件存储库系统
======
![][0]
> 了解 Ubuntu 软件仓库系统的基本机制,更好地处理软件包管理问题,避免常见的更新错误。
当你开始使用 Ubuntu 或者其它基于 Ubuntu 的发行版时,你很快就会学会使用 `apt` 命令安装软件包:
```
@ -30,7 +34,7 @@ sudo apt install package_from_ppa
**如果你了解了 Ubuntu 软件存储库的运行机制,你就会很清楚这些问题的根源是什么**,进而对症下药地给出处理方式。
It's FOSS 或者其它类似的论坛上,你可以找到很多相关的零散内容,但那些碎片化的信息并不能让你对其产生一个全面的理解。
技术论坛上,你可以找到很多相关的零散内容,但那些碎片化的信息并不能让你对其产生一个全面的理解。
因此我写出了这篇文章,以便让你全面了解软件存储库是如何运作的。
@ -40,7 +44,7 @@ sudo apt install package_from_ppa
我们会先从关键部分开始,了解软件包管理器和软件存储库的基本概念。这可以为了解它们的底层运作方式奠定基础。
### 什么是包管理器?
### 1、什么是包管理器?
简单地说,包管理器就是让用户在操作系统上安装、移除、升级、配置、管理软件包的工具。
@ -50,9 +54,11 @@ Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了
![][1]
[这篇文章](https://itsfoss.com/package-manager/)详细介绍了软件包管理器的工作原理,欢迎查阅。
下面这篇文章详细介绍了软件包管理器的工作原理,欢迎查阅。
### Ubuntu 的默认软件存储库
> **[Linux 上的软件包管理器](https://itsfoss.com/package-manager/)**
### 2、Ubuntu 的默认软件存储库
在上一节中,你可能已经对软件存储库有了一些认识。
@ -60,12 +66,16 @@ Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了
每个 Ubuntu 版本都有自己的一组四个官方存储库:
- **Main** Canonical 支持的免费开源软件
- **Universe** 社区维护的免费开源软件
- **Main** Canonical 支持的自由开源软件
- **Universe** 社区维护的自由开源软件
- **Restricted** 设备的专有驱动程序
- **Multiverse** 受版权或法律问题限制的软件
### 了解 `sources.list`
下面这篇文章介绍了如何在 Ubuntu 中启用 Universe 和 Multiverse 软件存储库。
> **[如何启用 Universe 和 Multiverse 软件存储库](https://itsfoss.com/ubuntu-repositories/)**
### 3、了解 sources.list
`sources.list` 是 Ubuntu 软件存储库机制的一个组成部分。`sources.list` 文件中存在的错误条目常常是引发一些与更新问题的根本原因。
@ -75,23 +85,29 @@ Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了
![sources.list in Ubuntu][2]
但这些内容需要遵循特定的格式,并且不应出现重复的行。[这篇文章](https://itsfoss.com/sources-list-ubuntu/)中介绍了 `sources.list` 的更多详细内容。
但这些内容需要遵循特定的格式,并且不应出现重复的行。下面这篇文章中介绍了 `sources.list` 的更多详细内容。
### 深入了解 PPA
> **[sources.list 的用法](https://itsfoss.com/sources-list-ubuntu/)**
### 4、深入了解 PPA
尽管 Ubuntu 最近在大力推广 Snap但 PPA 仍然是获取 Ubuntu 最新软件的一个可靠途径。
然而很多 Ubuntu 用户都只是刻板地直接运行上面的三条命令来使用 PPA自然很容易会遇到诸如“repository does not have release file”这样的问题。
[这篇文章](https://itsfoss.com/ppa-guide/)是一篇深入详尽的 PPA 指南。
下面这篇文章是一篇深入详尽的 PPA 指南。
### 添加外部软件存储库
> **[PPA 详尽指南](https://itsfoss.com/ppa-guide/)**
### 5、添加外部软件存储库
除了默认软件存储库和 PPA你还可以从第三方软件存储库中添加软件。比如 Brave 浏览器、Docker 等软件都专门为 Ubuntu 提供了软件存储库。
你可以通过[这篇文章](https://itsfoss.com/adding-external-repositories-ubuntu/)了解使用外部软件存储库的机制。
你可以通过下面这篇文章了解使用外部软件存储库的机制。
### 排查常见错误
> **[通过外部存储库安装软件](https://itsfoss.com/adding-external-repositories-ubuntu/)**
### 6、排查常见错误
现在你已经了解了底层机制,现在可以熟悉一下在使用 Ubuntu 时可能遇到的典型更新错误了。
@ -103,7 +119,7 @@ Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了
#### 下载软件存储库信息失败
如果遇到了这种情况,这仅仅是排查过程的开始
如果遇到了这种情况,就可以开始调查了
![Failed to download repository information][3]
@ -115,11 +131,11 @@ Ubuntu 通过软件存储库为用户提供软件。软件存储库中包含了
sudo apt update
```
检查输出结果的最后几行,它会给出错误信息(也就是以 E: 开头的行)。有了错误信息之后,就可以开始故障排除了。
检查输出结果的最后几行,它会给出错误信息(也就是以 E: 开头的行)。有了错误信息之后,就可以开始故障排除了。
#### 软件存储库中没有发布文件
如果 Ubuntu 用户未检查其 Ubuntu 版本是否存在 PPA,盲目向系统中添加 PPA 时,就很可能会遇到这样的错误。
如果 Ubuntu 用户未检查某个 PPA 是否支持其 Ubuntu 版本,盲目向系统中添加 PPA 时,就很可能会遇到这样的错误。
```
E: The repository http://ppa.launchpad.net/numix/ppa/ubuntu focal Release does not have a Release file.
@ -127,6 +143,10 @@ E: The repository http://ppa.launchpad.net/numix/ppa/ubuntu focal Release
原因很可能就是这个软件存储库没有针对所使用的 Ubuntu 版本进行配置。
下面这篇文章对此做了详细解释。
> **[软件存储库中没有发布文件](https://itsfoss.com/repository-does-not-have-release-file-error-ubuntu/)**
#### MergeList 问题
如果你看到这样的错误:
@ -139,6 +159,10 @@ E:The package lists or status file could not be parsed or opened.
这表明第二行中提到的缓存文件已经损坏。对应的解决方法是清空缓存并重试。
下面这篇文章对此做了详细解释。
> **[MergeList 问题](https://itsfoss.com/how-to-fix-problem-with-mergelist/)**
#### 目标软件包被多次配置
好吧!严格来说,这不是一个错误。它只是一个警告。但它仍然很常见,可能会给许多 Ubuntu 新用户带来麻烦。
@ -147,20 +171,34 @@ E:The package lists or status file could not be parsed or opened.
出现这个问题是因为 `sources.list` 文件中有重复的条目。解决办法是将所有重复的行删除至只保留一行。
### 继续学习
下面这篇文章对此做了详细解释。
> **[目标软件包被多次配置](https://itsfoss.com/fixing-target-packages-configured-multiple-times/)**
### 7、继续学习
在读完这篇文章后,希望你对 Ubuntu 的软件存储库机制能有更深入的了解。下一次当你遇到错误并寻找解决方案时,你就更有可能理解发生了什么。
接下来,你应该学会使用 `apt` 的各种命令管理软件包,不仅仅只是 `apt install``apt remove`
> **[apt 命令详尽指南](https://itsfoss.com/apt-command-guide/)**
你还可以详细了解一下关于软件包管理的其它知识。
> **[完全指南:在 Ubuntu 安装和删除软件](https://itsfoss.com/remove-install-software-ubuntu/)**
由于 Ubuntu 比以往任何时候都更推崇 Snap所以你也应该学习一些必要的 Snap 命令。
> **[完全指南:在 Ubuntu 上使用 Snap 安装包](https://itsfoss.com/use-snap-packages-ubuntu-16-04/)**
Flatpak 应用程序也越来越受欢迎,你也很可能会接触到它们。
> **[在 Ubuntu 上安装和使用 Flatpak](https://itsfoss.com/flatpak-ubuntu/)**
希望你喜欢学习软件存储库的机制,并对软件包管理有更清晰的认识。欢迎在评论区分享你的想法。
*题图MJ/6878226c-f6b0-40e7-aae7-d64932b36464*
--------------------------------------------------------------------------------
via: https://itsfoss.com/ubuntu-repository-mechanism/
@ -168,7 +206,7 @@ via: https://itsfoss.com/ubuntu-repository-mechanism/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[HankChow](https://github.com/HankChow)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -177,3 +215,4 @@ via: https://itsfoss.com/ubuntu-repository-mechanism/
[1]: https://itsfoss.com/content/images/2023/04/image.png
[2]: https://itsfoss.com/content/images/2023/07/image-4.png
[3]: https://itsfoss.com/content/images/2023/07/failed-to-download-repository-information-1.png
[0]: https://img.linux.net.cn/data/attachment/album/202308/11/112409wi0g83krczglar3r.jpg