很多时候在安装或尝试运行软件包时,您会收到“无法找到软件包”的错误消息。 这是初学者面临的另一个常见错误,尤其是在基于 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 源列表中缺少/不正确的源或您输入的包名称错误有关。