如何找到 apt 正在下载的索引文件的准确 URL

如何找到 apt 正在下载的索引文件的准确 URL

当我运行 时apt update,apt 会访问其存储库并下载索引文件。如何查看每个下载文件的确切 URL?

以下是一个例子:

apt update
Hit:1 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:5 https://artifacts.elastic.co/packages/8.x/apt stable InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
108 packages can be upgraded. Run 'apt list --upgradable' to see them.

那些apt update回应类似于 URL,但它们在后台被翻译成其他内容。“其他内容”是什么?我正在寻找完整、准确的 URL每一个apt 正在使用此命令下载的文件。

一点背景知识:我正在尝试代理artifacts.elastic.co 包。我找不到正确的路径。artifacts.elastic.co 拒绝显示目录的内容,所以我无法使用 Web 浏览器查找正确的魔法路径/URL。

注意:即使我的示例使用了,apt但使用apt-get或任何其他显示完整 URL 的工具都是可以接受的答案。

答案1

为什么不直接询问apt或者apt-get通过添加选项来显示 URI --print-uris

apt-get --print-uris update

答案2

手动操作:

http://us.archive.ubuntu.com/ubuntu bionic InRelease从 Web 浏览器开始

在此处输入图片描述

秘诀就是dists目录。就是这样。这就是您真正需要知道的一切。浏览该目录,您将在预期的位置找到 InRelease 文件。

http://us.archive.ubuntu.com/ubuntu bionic InRelease

... becomes ...

http://us.archive.ubuntu.com/ubuntu/dists/bionic/InRelease

现在,让我们将这些知识应用到不同的来源:

https://artifacts.elastic.co/packages/8.x/apt stable InRelease

... becomes ...

https://artifacts.elastic.co/packages/8.x/apt/dists/stable/InRelease

当我在 Web 浏览器中打开该 URL 时,InRelease 文件就会下载。

答案3

安装wireshark。。https://www.wireshark.org/启动,监控您的界面,执行。这将向
您显示所有数据包,包括目标 IP 地址。wiresharksudo apt update

答案4

查看所有open调用。阅读man strace,并执行类似 的操作sudo strace -e open apt update

相关内容