如何修复“无法找到包”? –(使用 APT 源修复)

很多时候在安装或尝试运行软件包时,您会收到“无法找到软件包”的错误消息。 这是初学者面临的另一个常见错误,尤其是在基于 Debian/Ubuntu 的系统上。 在本模块中,我们将学习如何逐步解决此问题。

修复 Linux 中“无法定位包”错误的步骤

今天让我们回顾一下修复 Linux 系统错误的步骤。 我们将根据 apt 包管理器处理错误。

1. 分析源列表

源列表用于定位系统上正在使用的包分发系统的档案。 这意味着当我们请求安装包时,源列表负责从其存档中定位相同的包,因此它遵循通用逻辑,它们直接暗示了错误。 这 男子 页面描述源列表如下:

The source list /etc/apt/sources.list and the files contained in /etc/apt/sources.list.d/ are designed to support any number of active sources and a variety of source media. The files list one source per line (one-line style) or contain multiline stanzas defining one or more sources per stanza (deb822 style), with the most preferred source listed first (in case a single version is available from more than one source). The information available from the configured sources is acquired by apt-get update (or by an equivalent command from another APT front-end). 

让我们假设我们要安装非常流行的端口扫描工具 映射 在 Debian 机器上,使用 apt 产生以下结果:

$ sudo apt install nmap Reading package lists... Done Building dependency tree        Reading state information... Done E: Unable to locate package nmap 

所以apt找不到 映射 从其档案中打包。 我们知道 易于 使用下面的源列表 /etc/apt/sources.list 定位包。 所以用你最喜欢的文本编辑器和超级用户权限打开它。 在这里,我们应该找到这样的东西:

# deb https://deb.debian.org/debian bullseye main # deb-src https://deb.debian.org/debian bullseye main 

确保您拥有特定发行版和版本的所有官方源代码库。 您可以在 Distro 的官方网站上获取官方镜像列表。

2. 解释源列表

让我们分析第一行以了解每个组件的含义:

# deb https://deb.debian.org/debian bullseye main 
  • #: 这表示注释,即不考虑以下行。
  • 德布: 这表示这个存档包含预编译的二进制文件 .deb 格式化同时 deb-src 包含可以根据需要构建和修改的包的源代码。 [Read on how to easily build packages from the source here]
  • https://deb.debian.org/debian:接下来,我们有存储库的 URL,包管理器从这里下载包元数据和其他信息,以了解哪些包可用以及在哪里下载它们。
  • 靶心:这表示我们的 Debian/Ubuntu 系统的代号,可以通过以下方式获得:
$ lsb_release -c Codename:	bullseye 
  • 主要的:包存储库可能分为许多子部分,例如:
    • 主要的:它包含官方支持的开源软件
    • 受限制的 它包含官方支持的闭源软件
    • 宇宙:它包含由社区维护的开源软件
    • 多元宇宙:它包含不受支持的、闭源的和受专利保护的软件

所以我们可以看到我们的两行都被注释掉了。 因此 apt 没有可以从中找到包的源存储库。 因此,我们取消注释这两行,使其看起来像:

deb https://deb.debian.org/debian bullseye main deb-src https://deb.debian.org/debian bullseye main 

3. 更新 APT 缓存

现在我们已经更新了我们的源列表以包含所需的镜像,我们可以更新 易于 缓存:

$ sudo apt update 

随后,做了一个 安装 应该给我们取包裹:

$ sudo apt install nmap 

注意:有时,甚至在 /etc/apt/sources.list 还建议获取不可用的包,但它们通常会在以后的升级中引起冲突。 因此,在这种情况下,建议从以下位置安装所需的包 .deb 文件或删除/注释掉其中的行 /etc/apt/sources.list 安装所需的软件包后。

结论

因此,我们学会了如何修复这个非常常见的错误。 如果错误仍然存​​在,我们可以参考其他镜像,但始终注意其他镜像的上述说明。 此外,我们总是可以从源代码构建包,从预编译的二进制文件中安装它们,或者使用其他包管理器,例如 折断, 资质, 等等。

最后一点,请记住,此错误通常与 apt 源列表中缺少/不正确的源或您输入的包名称错误有关。