这些 apt 命令起什么作用?

这些 apt 命令起什么作用?

这些命令起什么作用?

获取::http::No-Cache=True -o
获取::BrokenProxy=true 更新
获取::http::Max-Age "0"

答案1

  • 以下命令Acquire::http::No-Cache=True -o 它为 APT http 请求添加 No-Cache 标头

  • 此命令Acquire::BrokenProxy=true update 用于修复您的本地代理我猜。

  • 此命令Acquire::http::Max-Age "0" 包裹最长保留时间

答案2

我无法代表其他选择发言。

但从今天起,Acquire::BrokenProxy什么也没做。自 2011 年以来,它什么都没做。在发布此问题时,它在 Ubuntu 的最新版本中什么都没做。如果您在apt.conf手册页中查找它,它不在那里。如果您在源代码中查找它apt,它不在那里。它不完全是使用正则表达式来解析 HTML,但它绝对不会解决您的问题,任何人都不应该使用它。

2005 年 4 月 1 日星期五晚上 10 点 59 分(UTC 时间),在那短暂而闪亮的时刻,当它从迈克尔·沃格特的脑袋里冒出来时,以及 2006 年 2 月 20 日星期一晚上 8:38(UTC),当他不得不不情愿地放下它时,设置Acquire::BrokenProxy将强制 APT 始终重新下载软件包存储库的签名文件,而不是仅在文件被修改时才要求发送。这可能是因为一些“损坏的”代理即使文件已更改也只是发送旧版本。

据我所知,这就是它所做的一切。您可以git clone https://salsa.debian.org/apt-team/apt.gitgit log -S "BrokenProxy"其中找到在 APT 源代码中添加和删除此字符串的提交;我只算了两个。

此功能最初在 APT 版本中推出,根据这些提交时的变更日志文件的状态,0.6.35ubuntu1上次可用时间应该是在 APT 版本左右。通过挖掘文件0.6.43.3Packages.gzhttp://old-releases.ubuntu.com,看起来应该对Ubuntu 5.04(灰白刺猬)Ubuntu 5.10(Breezy Badger), 和Ubuntu 6.06 LTS(Dapper Drake)(已提供0.6.40.1ubuntu9)。版本 6.06 是 LTS 版本,已于 2011 年停止支持。2011 年之后,或在任何 Ubuntu 6.10(Edgy Eft)上使用 apt0.6.45ubuntu14或更高版本,没有人使用此选项。

然而,它至今Acquire::BrokenProxy仍是一种流行的选择。它于 2005 年 12 月开始出现,当时它的作者建议将其作为一种故障排除方法apt.conf关于 BADSIG 错误的 Ubuntu 错误报告。在接下来的几年里,许多迷失的灵魂找到了这个错误报告,一些人尝试将这个错误报告传递-o Acquire::BrokenProxy=true给他们的包管理器,因为 2006 年有一位用户报告说这个选项对他们有用,这令人鼓舞。尽管后来有几份报告说这个选项没有帮助(并且,根据 Ubuntu 版本,很可能不再有帮助),但在 2009-2010 年,这个选项在博客论坛到 2012 年,它又被发布到 BADSIG 漏洞上,作为“修复”对于行为不当的代理。

2013 年,两项重大技术问世,彻底改变了计算领域:Docker 容器管理系统和APT99fixbadproxy配置文件

Acquire::http::Pipeline-Depth "0";
Acquire::http::No-Cache=True;
Acquire::BrokenProxy=true;

很快,人们开始将这两种技术结合起来,大概是因为 Docker 镜像构建是一种apt压力测试,而其他两个选项实际上可以做一些有用的事情。今天,99fixbadproxy使用此选项的文件这在任何以 Docker 镜像形式提供的 Ubuntu 版本中都没有产生任何影响可以在 Github 上的 Dockerfile 中找到它甚至已经成为 Github 本身的一部分:如果你使用 Github Actions 在 Ubuntu 上运行任务,你的 Ubuntu 机器将由Acquire::BrokenProxy-descendant配置99fixbadproxy

确实,不可能低估该Acquire::BrokenProxy选项的威力。它完全没有作用,它与其他代码相连,可能有助于解决间歇性故障,也可能无助于解决间歇性故障,而且它看起来非常合理,几乎没有人(在座的各位除外)曾想过质疑它的存在。

相关内容