Apt-陷入0%

当我尝试使用终端对apt-get做任何事情时, apt-get被卡在0% [Working]

我通过排名靠前的谷歌搜索来到这个页面,但这些答案对我没有帮助。 相反,我清除了我的检索包文件的本地存储库:

 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站点创建一组最小的存储库,然后备份 /etc/apt/sources.list (例如sudo cp -i /etc/apt/sources.list /etc/apt/sources.list.000 )你可以粘贴它而不是你现在的列表。

  • 最终,您可以检查是否有源列表文件使用https而不是http,但未安装apt-transport-https (请参阅注释 )。
  • 再次尝试sudo apt-get update ,如果失败了
  • 使用sudo cp -r -p -i /var/lib/apt/lists ${HOME}/temp_apt_listssudo rm -R /var/lib/apt/lists/*后备你的/var/lib/apt/lists目录
  • 再次运行sudo apt-get update

您可能需要手动清理以下某些目录(您可以随时备份它们并且仅在删除其中的文件后):

  • /etc/apt/sources.list.d/
    用于从中获取包的位置的文件片段。 配置项:Dir :: Etc :: SourceParts。
  • 等/公寓/ preferences.d /
    版本首选项的文件片段。 配置项:Dir :: Etc :: PreferencesParts。
  • 在/ var /缓存/ apt / archives目录/分/
    传输中的包文件的存储区域。 配置项:Dir :: Cache :: Archives(部分将隐式附加)
  • / var / lib / apt / lists / partial /传输中的状态信息的存储区域。 配置项:Dir :: State :: Lists(将隐式附加部分)
  • / var / lib / apt / lists / source.list(5)中指定的每个包资源的状态信息的存储区域配置项:Dir :: State :: Lists。

PS>如果你成功了,记得删除你不再需要的备份副本,但不要删除sources.list.000它总是有用!
您可以在相关答案中找到其他提示。

更新
有一个旧的bug,因为包squid-deb-proxy-client没有清理它的所有更改,因此解决了:

删除行:
获取:: http :: ProxyAutoDetect“/ usr / share / squid-deb-proxy-client / apt-avahi-discover”;

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

也许这个bug线程很有用

如果可能的话,更彻底地删除包裹。

确保你可以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 

当我切换到某些https回购时,我也发现这种情况发生在我身上。 apt需要安装apt-transport-https才能工作(当你试图下载一些东西时,这可能是个问题)。

首先尝试更新它

 aptitude update 

然后运行apt-get

或者应该将镜子改成离你最近的地方,看看这个 – 我怎样才能使用靠近我的镜子,或选择更快的镜子?

这也可能是由于阻止访问的代理背后造成的。 有时我得到一个NODATA错误 …有时它只是停留在0% [Working...]

如果您更改了位置,请更改下载服务器:

 sudo software-properties-gtk 

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

选择最佳服务器1选择最佳服务器2

之后选择并删除所有其他软件存储库:

删除所有其他软件存储库

最后:

 sudo apt-get update sudo apt-get upgrade 

在debian 9中,我的apt在执行任何需要访问互联网的任务之前已经停留在0%[工作]。 尝试了很多其他方法后,当我禁用网络管理器并开始使用systemd-networkd时,这个问题终于解决了。

我在互联网上找不到的答案,但实际上是根据我几小时前执行的命令找到的。 这种命令的一个例子是

 echo "deb http://dl.bintray.com/tproenca/pmsarm7 jessie main" | sudo tee /etc/apt/sources.list.d/pms.list 

之后将文件添加到/etc/apt/sources.list.d/。 在此目录中,还可以添加源。 在我的情况下,它是teamviewer,它包含自己的列表,其中包含无效的URL。 因此导致我的更新失败。 这些是我执行的命令。

注意: teamviewer.list导致我出现问题,但它可以在此目录中为您提供任何帮助。 尝试一下,做备份!)

 cd /etc/apt/ cp sources.list.d/* sources.list.d.backup/ rm sources.list.d/teamviewer.list apt-get clean apt-get check apt-get update 

希望这可以节省一些人可以救我的时间!