apt-get install 从哪里获取软件包?

apt-get install 从哪里获取软件包?

当我在终端中安装某些东西(例如 Chromium)时,我会输入

sudo apt-get install chromium-browser

终端如何知道要chromium-browser安装的有效软件包?是否有所有可安装软件包的列表?它如何找到这些软件包?

答案1

每当您调用get 读取apt-get update中包含的存储库时sources.list,这会告诉 apt-get 从哪里获取软件包列表。此列表将被下载并存储在 中/var/lib/apt/lists以供以后使用。这些是您选择的存储库中所有可用软件包的列表。即使您删除了 sources.list,此列表仍可用于 APT。这就是为什么您应该update在添加/删除/修改存储库时始终这样做,以保持这些列表更新。


终端如何知道 chromium-browser 是一个有效的可安装包?

“终端”什么都不知道。APT 读取所有列表/var/lib/apt/lists并确定包是否可用。如果在任何列表中都找不到包,您将得到:

E: Unable to locate package <package>

是否有所有可安装软件包的列表?

这因存储库而异。您的活动存储库的本地副本/列表位于 中/var/lib/apt/lists


它是如何找到这些包的?

$ sudo apt-get check
Reading package lists... Done
Building dependency tree       
Reading state information... Done

感兴趣的线是

Reading package lists... Done

它告诉您 APT 从 读取列表/var/lib/apt/lists

答案2

apt-get/etc/apt/sources.list在文件和目录中给出的存储库中搜索指定的包/etc/apt/sources.list.d

答案3

要显示apt-get install特定包(例如 chromium-browser)的来源,请打开终端并输入:

apt-cache policy chromium-browser | grep $(lsb_release -sc)

结果将是一行或两行,显示确切的更新服务器镜像以及 Ubuntu 中的 apt 和 apt-get 从中下载 chromium-browser 包的确切存储库。无需到处搜索,因为所有内容都在一行或两行输出中。如果有两个备用存储库,则结果将打印在两行上,否则,如果只有一个包含 的存储库,则结果将打印在一行上。apt-cache policy <package> | grep $(lsb_release -sc)<package>

解释:

  • $(lsb_release -sc)是你的 Ubuntu 版本的代号

  • apt-cache policy <package>- 打印出每个来源的优先级<package>

相关内容