当我尝试apt-get
使用终端做任何事情时,apt-get
就会卡在0% [Working]
。
答案1
我通过高排名的 Google 搜索来到此页面,但这些答案对我没有帮助。相反,我使用以下命令清除了本地存储库中检索到的包文件:
apt-get clean
答案2
您可以尝试检查缓存并清理缓存目录。
按顺序(每个步骤都比较深入,因此找到解决方案后请停止):
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 源列表生成器网站和之后你备份/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
如果失败,请再试一次- 使用和之后备份您的
/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/缓存/apt/档案/部分/
传输中的包文件的存储区域。配置项:Dir::Cache::Archives(部分将隐式附加) - /var/lib/apt/列表/部分/ 传输状态信息的存储区域。配置项:Dir::State::Lists(部分将隐式附加)
- /var/lib/apt/列表/ sources.list(5) 配置项中指定的每个包资源的状态信息的存储区域:Dir::State::Lists。
PS> 如果成功了,记得删除不再需要的备份,但不要删除,因为备份sources.list.000
总是有用的!
你可以在相关内容中找到更多提示回答如下。
更新
有一个老错误,因为包squid-deb-代理客户端 没有清除所有更改,解决方法如下:
删除该行:
Acquire::http::ProxyAutoDetect“/usr/share/squid-deb-proxy-client/apt-avahi-discover”;
从:
/etc/apt/apt.conf.d/30autoproxy
如果可能的话,更彻底地移除该包裹。
答案3
当我切换到一些 https repos 时,我也发现这种情况发生了。需要apt-transport-https
安装 apt 才能工作(当您尝试下载某些东西时,这可以理解为一个问题)。
答案4
如果您更改了位置,也请更改下载服务器:
sudo software-properties-gtk
单击其他然后选择最佳服务器:
之后选择并删除所有其他软件存储库:
最后:
sudo apt-get update
sudo apt-get upgrade