从12.04升级到12.10时如何解决“无法计算升级”问题?

自从今天发布以来我一直在尝试升级到12.10,但我一直遇到这个错误:

An unresolvable problem occurred while calculating the upgrade: E:Unable to correct problems, you have held broken packages. This can be caused by: * Upgrading to a pre-release version of Ubuntu * Running the current pre-release version of Ubuntu * Unofficial software packages not provided by Ubuntu 

我已经尝试更新所有当前安装的软件,删除所有额外的PPA,降级从xorg edgers的ppa安装的文件,但我无法解决问题。

我通过删除使用ppa-purge安装的ppa软件包修复了我的问题

我知道我需要通过检查apt.log文件末尾的/ var / log / dist-upgrade /中的日志来执行此操作,您将看到令人困惑的内容。 我的是一个video驱动程序,我正在运行几个升级,所以我做了:

 sudo ppa-purge ppa:ubuntu-x-swat/x-updates sudo ppa-purge ppa:unity-team/staging sudo ppa-purge ppa:webapps/preview sudo ppa-purge ppa:nilarimogard/webupd8 sudo ppa-purge ppa:scopes-packagers/ppa sudo ppa-purge ppa:glasen/intel-driver 

最后一个 – 格林司机 – 似乎已经为我做了伎俩。 升级现在正常进行。

如上所述,删除PPA源不是每次都有效。

您需要卸载违规包。 你可以找到他们:

 grep Broken /var/log/dist-upgrade/apt.log 

我是一个xorg包。 我用命令删除了它:

 sudo apt-get remove xserver-xorg-video-all 

然后升级可以继续。

对于“NonPainful”版本升级。

  • 在继续之前,请检查新版本是否可用于升级。 打开终端并发出此命令

    do-release-upgrade -c

如果是,请继续:

  • 删除您添加的所有外部PPA。

    从软件中心>编辑>软件源>其他软件。 不要取消勾选,而是删除它们。

  • 然后关闭所有图形应用程序并仅打开一个终端。(全屏更好)给出波纹管命令

     sudo apt-get update sudo apt-get dist-upgrade 
  • 然后给波纹管命令做一点管家工作

     sudo apt-get --purge autoremove sudo apt-get autoclean sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') 
  • 然后你就可以升级了

     sudo do-release-upgrade 

升级期间不要导航或打开窗口或程序。

请耐心等待升级完成。

友善:不要从第一天开始(或急于)升级。 从第二天或第三天(更好)升级。

我设法在不删除任何包的情况下解决了问题。 在更新管理器的设置上,我取消选中所有Ubuntu软件选项,只选中第一个框 – “Canonical-supported free and open-source software(main)”。

我在升级时遇到了这个错误消息,虽然在不同版本之间 – 我正在做14.04 Trusty – > 16.04 Xenial – 但我认为这个提示可能对其他获得相同错误的人有用,因为我花了很长时间才弄明白,这个答案在Google中突出显示。

检查/var/log/dist-upgrade/main.log是否有任何错误很重要 – 在我的情况下,有一个错误,说postgresql-9.3-postgis-2.1被列入黑名单被删除,并且升级过程试图删除它。 删除该包让我升级。

(nb /var/log/dist-upgrade/apt.log可能会通过列出实际上不会阻止升级的“Broken”软件包误导您。)

这也在类似的问题和答案中指出: https : //askubuntu.com/a/541406/13868

顺便说一下, sudo ubuntu-bug ubuntu-release-upgrader-core失败后运行sudo ubuntu-bug ubuntu-release-upgrader-core实际上可以检测到这些问题,并在你的网络浏览器中打开相应的错误报告 – 这就是帮助我找到问题的原因。

 sudo sed -i 's/raring/saucy/' /etc/apt/sources.list sudo apt-get dist-upgrade 

这对我有用。