当我运行 时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 地址。wireshark
sudo apt update
答案4
查看所有open
调用。阅读man strace
,并执行类似 的操作sudo strace -e open apt update
。