从17.04升级至17.10时do-release-upgrade卡在Reading Cache求助
我之前在Ubuntu版本升级时也碰到过一模一样的情况,尤其是从17.04这类旧版本往17.10升级时,缓存读取环节很容易因为缓存损坏、依赖残留或者源的问题卡住。结合我踩过的坑,给你几个实用的解决思路:
彻底清理并重建APT缓存
缓存文件损坏、冗余是最常见的原因,先把旧缓存清干净再重建:sudo apt clean sudo apt autoclean sudo rm -rf /var/lib/apt/lists/* sudo apt update执行完这些步骤后,再重新运行
do-release-upgrade,新生成的缓存应该能避免读取异常。检查并修复系统依赖问题
之前的dist-upgrade可能没彻底解决依赖冲突,先手动修复:sudo apt --fix-broken install sudo apt full-upgrade确保所有安装包的依赖都处于正常状态,没有半完成的安装任务,这能减少升级过程中的阻塞点。
临时切换到Ubuntu官方主源
如果当前用的是第三方镜像源,可能存在同步不及时或者连接不稳定的情况,导致缓存读取失败。可以临时切换到官方源试试:
编辑源列表文件:sudo nano /etc/apt/sources.list把所有源地址替换成官方主源(17.04对应的版本代号是
zesty,源地址为http://archive.ubuntu.com/ubuntu/),保存退出后执行sudo apt update,再重新启动升级流程。手动预加载升级元数据
可以先手动触发升级相关的元数据下载,再启动升级:sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/ubuntu-release-upgrader-*.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"这个命令会专门处理升级工具所需的源数据,完成后再运行
do-release-upgrade,可能会绕过缓存读取的卡点。开启升级调试模式定位问题
如果以上方法都没用,可以用调试模式启动升级,查看详细日志找具体原因:do-release-upgrade -d虽然
-d原本是针对开发版升级的参数,但它会输出更详细的执行日志,能帮你定位到缓存读取时到底是哪个源出问题、哪个包元数据损坏等具体故障点。
内容的提问来源于stack exchange,提问作者literallywho

