linux如何找到软件包的正确位置

linux如何找到软件包的正确位置

我正在读一本关于 Linux 的书,这本书不太清楚地解释了当你使用 yum 安装软件包时 Linux 会做什么。

当您运行时yum install packagehere,linux 做的第一件事是检查/etc/yum.conf文件以查看软件存储库所在的位置。我/etc/yum.conf新安装的系统上没有。

既然我没有/etc/yum.conf,那么第一件事必须是检查/etc/yum.repos.d文件夹。里面我有fedora.repo,,,。fedora-cisco-openh264.repofedora-updates.repofedora-updates-testing-repo

每个文件都有一行以#baseurl 开头。

假设我运行yum install httpd 我如何知道(实际上Linux如何知道)哪个baseurl包含httpd包?它会扫描所有这些吗?

答案1

所有包管理器都以自己的方式执行此操作,但都共享软件存储库的基本通用概念。

通常,包管理器会找到基本 url,下载包及其版本的索引,有时还会包含其他信息(如文件列表、校验和、相对路径等),在索引中查找包,然后通过构造来自 baseurl 的正确 URL 以及它在索引中找到的信息。

答案2

您可以尝试该模式,控制台输出中verbose最后提到的baseurl或提到的文件就是所选的模式。*.repo通常,如果存储库在 XML 元数据中包含所述程序,那么它会根据您的install命令“找到”该程序。

您可以查看以下响应来了解 yum 内部是如何工作的: https://www.redhat.com/archives/rhl-list/2008-January/msg02246.html

相关内容