Apt-get卡在0% [正在工作中]。

当我尝试在终端中使用apt-get执行任何操作时,apt-get会在0% [Working]处卡住。

关于资质呢?aptitude install firefox - Rahul V Sharma
能力测试好像是在工作,我猜。我打开它,它运行得很好。我从来没有用过它。 - Digital
我尝试了aptitude install,但它(在几个步骤之后)也卡住了。 - Digital
1ping -c 3 google.com 的结果是什么? - pmichna
你使用了代理服务器吗? - Ade Malsasa Akbar
不,我不使用代理服务器。而且我的互联网访问正常,可以在Ubuntu和Windows上使用互联网。 - Digital
等一下。你的Ubuntu版本是什么?你的sources.list内容是什么? - Ade Malsasa Akbar
1每当我的apt-get尝试连接到一个IPv6地址时,它都会卡住...这个Stack Exchange的回答解决了这个问题:http://askubuntu.com/a/575130/421665 - Eric
你必须用这个链接替换旧的列表 https://gist.github.com/ChampionCynthia/e4deb4410105c3ecdffb85630a4c5b96 - High Tech 4 You
13个回答

我通过高排名的谷歌搜索进入了这个页面,但这些答案没有帮助我。相反,我清空了我的本地存储库中检索到的软件包文件:

apt-get clean

你可以尝试检查缓存并清理缓存目录。
按顺序进行(每一步都更深入,所以找到解决方案后停止):
  • sudo apt-get clean(更新)在最新版本中,它会清除本地存储的软件包文件。大多数情况下这已经足够了。但在早期版本中不是这样。

    它会从 /var/cache/apt/archives/ 和 /var/cache/apt/archives/partial/ 中删除除了锁文件以外的所有内容。

  • 查看 /var/lib/apt/lists/partial/ 目录,应该是空的。
    如果不是,你可以决定清空它 sudo rm /var/lib/apt/lists/partial/* ,如果需要的话也可以使用 sudo rm -f /var/lib/apt/lists/partial/*

  • sudo apt-get check

    它会更新软件包缓存并检查是否存在损坏的依赖关系。

  • /etc/apt/sources.list 文件中的仓库列表缩减为正常(不是很多)数量。
    如果仓库列表太多,系统可能会在尝试构建所有依赖树时卡住。
    你可以从 Ubuntu Sources List Generator site 创建一个最小的仓库集合,并且在备份了 /etc/apt/sources.list(例如使用 sudo cp -i /etc/apt/sources.list /etc/apt/sources.list.000)之后,你可以将该集合粘贴到你当前的列表中。

  • 最后,你可以检查是否有一个使用 https 而不是 http 的源列表文件,但是没有安装 apt-transport-https(参见 comment)。
  • 再次尝试 sudo apt-get update ,如果失败了
  • 备份你的 /var/lib/apt/lists 目录,使用 sudo cp -r -p -i /var/lib/apt/lists ${HOME}/temp_apt_lists ,然后执行 sudo rm -R /var/lib/apt/lists/*
  • 再次运行 sudo apt-get update
可能需要手动清理以下目录(您可以随时备份它们,然后再删除其中的文件):
- /etc/apt/sources.list.d/:用于获取软件包位置的文件片段。配置项:Dir::Etc::SourceParts。 - /etc/apt/preferences.d/:用于版本偏好的文件片段。配置项:Dir::Etc::PreferencesParts。 - /var/cache/apt/archives/partial/:软件包文件在传输过程中的存储区域。配置项:Dir::Cache::Archives(partial将被隐式添加)。 - /var/lib/apt/lists/partial/:状态信息在传输过程中的存储区域。配置项:Dir::State::Lists(partial将被隐式添加)。 - /var/lib/apt/lists/:每个在sources.list(5)中指定的软件包资源的状态信息存储区域。配置项:Dir::State::Lists。

PS> 如果你成功了,记得删除那些不再需要的备份文件,但是不要删除 sources.list.000,它可能会有用!
你可以在相关的答案链接中找到额外的提示。

更新
由于软件包 squid-deb-proxy-client 没有清理掉所有的更改,导致了一个旧的 bug,解决方法如下:

删除以下行:
Acquire::http::ProxyAutoDetect "/usr/share/squid-deb-proxy-client/apt-avahi-discover";

from:
/etc/apt/apt.conf.d/30autoproxy

也许这个错误线程可能会有用

如果可能的话,更彻底地删除该软件包。


1嗯,这看起来很有希望,我明天试试看(其实是今天,只是中间有一段睡觉的时间 :b)。我会发布结果! - Digital
晚上好,做个美好的梦... 并且想一下第三点(替换源列表/减少源的数量)。如果清除缓存通常可以解决问题。始终检查是否能够访问您的软件仓库。例如,在浏览器中粘贴http://extras.ubuntu.com/ubuntu...(或者更好地将这些行粘贴到您的/etc/apt/sources.list文件中) - Hastur
我尝试了每一步,但出于某种原因它们都没有起作用。我想我会重新安装我的Ubuntu。有人可以告诉我如何重新安装已经作为辅助操作系统(与Windows)安装的Ubuntu吗?我需要手动删除所有Ubuntu的文件然后再次安装吗,还是有其他方法? - Digital
另外,当我使用Control-C中断“工作”操作时,在终端上会出现以下内容:http://pastebin.com/GgJ2R3Ph。你能从那里找到任何答案吗? - Digital
如果你想更改国家前缀,请使用类似于这样的存储库集合。在执行sudo apt-get update之后,尝试使用sudo apt-get -f install再次尝试。如果需要的话,还可以尝试dpkg-reconfigure -a。祝你好运。apt-avahi-discover似乎存在一个错误。我已经更新了答案。 - Hastur
今天稍后我会尝试一下“更新的解决方案”和Hastur的建议。之后会发布结果。再次感谢! - Digital
备份你的 /var/lib/apt/lists 目录... 成功。谢谢! - SRDC
删除剩余的鱿鱼线"/etc/apt/apt.conf.d/30autoproxy"在另一台曾经使用不再运行的鱿鱼服务器的计算机上起作用了。谢谢! - SRDC
@SRDC 不客气。看起来程序在不断变化,但有些问题(以及它们的解决方案)总是喜欢回归... - Hastur
4我遇到了一个问题,sources.list 中的一个主机使用的是 https 而不是 http,但是没有安装 apt-transport-https - cimnine
这是一个非常好的回答,但是对我没有帮助。我不得不重新启动才能让apt再次工作。 - Drew

我在切换到一些https仓库时也遇到了这个问题。apt需要安装apt-transport-https才能正常工作(当你尝试下载一些东西时,这可能是一个问题)。

如果你改变了位置,也要更改你的下载服务器:
sudo software-properties-gtk

点击其他,然后选择最佳服务器:

select best server 1 select best server 2

在此之后,选择并删除所有其他软件仓库。

delete all other software repositories

终于:
sudo apt-get update
sudo apt-get upgrade

确保您可以从自己的网络中ping出去,更重要的是能够ping通Ubuntu网络,即:
 ping us.archive.ubuntu.com
 OR
 ping security.ubuntu.com

你应该得到一个类似的输出:
 PING security.ubuntu.com (91.189.88.161) 56(84) bytes of data.
 64 bytes from keeton.canonical.com (91.189.88.161): icmp_seq=1 ttl=52 time=127 ms
 64 bytes from keeton.canonical.com (91.189.88.161): icmp_seq=2 ttl=52 time=128 ms

  --- security.ubuntu.com ping statistics ---
  2 packets transmitted, 2 received, 0% packet loss, time 1000ms
  rtt min/avg/max/mdev = 127.325/127.952/128.579/0.627 ms

安装apt-transport-https在新的Debian 9上对我很有帮助。
sudo apt-get install apt-transport-https


我执行了sudo aptitude update命令,现在又卡在了0% [Working] - Digital
我也尝试更换了镜子,但是我没有看到任何变化。 - Digital
1你遇到了一个奇怪的问题...我对此进行了研究...但是没有任何结果。 - Rahul V Sharma

这可能也是由于使用了阻止访问的代理而导致的。有时我会遇到一个NODATA错误...有时它只停留在0% [正在工作...]。

检查一下你的网络是否可访问。就我个人而言,我重新安装了我的树莓派。我检查了树莓派的日期和时间,发现它没有更新。所以我手动更改了日期。
sudo date -s "2019 Mar 20 02:42"

重启一下。现在我的树莓派运行得很好。

我遇到了同样的问题,但是我是这样解决的:
sudo systemctl restart networking

希望这能有所帮助。