Yum

linux如何找到一個軟體包的正確位置

  • February 3, 2017

我正在閱讀一本關於 Linux 的書,它對使用 yum 安裝軟體包時 Linux 所做的事情的解釋有些拙劣。

執行yum install packagehere時,linux 做的第一件事就是檢查/etc/yum.conf文件以查看 sotfware 儲存庫的位置。/etc/yum.conf我新安裝的系統上沒有。

既然我沒有/etc/yum.conf,那麼首先必須檢查/etc/yum.repos.d文件夾。在裡面我有fedora.repo, fedora-cisco-openh264.repo, fedora-updates.repo, fedora-updates-testing-repo.

每個文件都有一行以#baseurl 開頭。

假設我執行yum install httpd 我如何知道(實際上 Linux 是如何知道)哪個 baseurl 包含包 httpd?它會掃描所有這些嗎?

您可以嘗試該verbose模式,控制台輸出中最後提到的baseurl*.repo文件是選擇的。通常,如果儲存庫在 XML 元數據中包含所述程序,那麼它會從您的install命令中“找到”該程序。

您可以查看以下響應以了解 yum 內部的工作原理: https ://www.redhat.com/archives/rhl-list/2008-January/msg02246.html

所有的包管理器都以自己的方式做這件事,但都共享一個軟體儲存庫的基本概念。

通常,包管理器會找到基本 url,有時會下載包的索引及其版本以及其他資訊(如文件列表、校驗和、相對路徑等),在索引中查找包,然後通過構造來自 baseurl 的正確 URL 和它在索引中找到的資訊。

引用自:https://unix.stackexchange.com/questions/342222