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_lists
和sudo 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
单击其他然后选择最佳服务器:
之后选择并删除所有其他软件存储库:
最后:
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
希望这可以节省一些人可以救我的时间!