如何分析apt-get update时出现“[Waiting for headers]”问题?

如何分析apt-get update时出现“[Waiting for headers]”问题?

sudo apt-get update有时会卡住:

...
99% [Waiting for headers]

这似乎是一个常见问题,可能有几个原因。例如,在一台机器上,这是因为我使用了错误的代理服务器配置。

有没有办法系统地分析问题?我查看了man apt-get但找不到任何可以提供更多信息来隔离问题的选项。除了apt-get这些之外,还有什么工具可以用来获得更多见解吗?

答案1

更好的是,只需这样做:

apt-get -o Debug::Acquire::http=true update

答案2

我能够修复它。http://debian.sur5r.net/i3/(量子、宇宙)没有响应。禁用它后,apt-get update成功了。

对于遇到此问题的下一个人的提示:

  1. 启动synaptic并禁用源,直到Reload不再挂起。特别是,第三方源似乎是候选者。
  2. 反复响应各个来源,直到找到导致问题的那个来源。

synaptic非常适合诊断。当Reload挂起并中止它时,它会打印出当前存储库。就我而言,它恰恰是坏的:

Failed to fetch http://debian.sur5r.net/i3/dists/quantal/InRelease  
Some index files failed to download. They have been ignored, or old ones used instead.

答案3

我试过

apt-get -o Debug::Acquire::http=true update

但解释输出时存在问题。

然后我找到了这个解决方案https://serverfault.com/a/677533

sudo -s
echo 'Acquire::http::Timeout "1";' >> /etc/apt/apt.conf.d/00timeout
apt update

这将打印类似

Ign:7 https://debian.qgis.org/debian jammy InRelease                                                                                                                                                        

一秒钟后,您就可以轻松发现导致超时的来源并将其删除或替换。

顺便一提:

apt-get -o Acquire::http::Timeout=1 update

似乎不起作用。

相关内容