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


20

自从今天发布以来,我一直在尝试升级到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安装的文件,但是我无法解决问题。

Answers:


7

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

我知道我需要通过检查apt.log文件末尾的/ var / log / dist-upgrade /中的日志来执行此操作,您会发现造成混乱的原因。在我的系统中,它是一个视频驱动程序,我正在运行几次升级,所以我做了:

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

最后一个-glasen驱动程序-似乎对我有用。升级现在正常进行。


23

如前所述这里,除去PPA源不工作每次。

您需要卸载有问题的软件包。您可以通过以下方式找到它们:

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

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

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

然后升级可以继续。


4
感谢您指出损坏的包装在哪里。这是我成功升级到13.10的关键。
2013年

是! 都是因为xserver-xorg- *。(apt-get remove xserver-xorg-*
K-Gun 2014年

1
而不是“破损”,而是“无法满足”,这是在搜索有问题的软件包时使用的更具体的关键字。
ultrajohn

1
我得到了大约100个包裹的很长的清单。
whoknows 2015年

我有900多个,甚至花了几个小时通过apt.log上的侦探工作将它们剔除掉,但这也使我大约只有350。知道我所遇到的问题是我多年来手动安装的所有东西,我终于崩溃了,只删除了Synaptic的“状态”选项卡中列出的所有“已安装(本地(或过时)”)条目。是的,我知道这将需要从Live CD进行chroot修改,以使所有内容重新获得操作系统,但它确实起作用。
Plenus Franckly

16

对于“ 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
    

升级期间请勿浏览或打开窗口或程序。

请耐心等待升级完成。

友好:请勿从第一天开始运行(或急于升级)。从第二天或第三天开始升级(更好)。


谢谢!您的回答非常有教育意义!但是,在阅读您的回复之前,我已解决了问题。我必须启用有冲突的PPA,然后清除它们以完成工作。
Vagrant232

怎么sudo apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')办?
whoknows 2015年

1
@whoKnows对不起,您的回答很晚。这将搜索并删除所有已标记为要删除但尚未被删除的剩菜。这就是“ rc”的意思。
NickTux

这对我不起作用,但是下面的一个对我
John Small

3

我设法解决了这个问题,而没有删除任何程序包。在更新管理器的设置中,我未选中所有Ubuntu软件选项,仅选中了第一个框-“规范支持的免费和开源软件(主要)”。


我赞成这个答案,因为它解决了一个问题。取消选中“社区维护...(Universe)”就足够了。我遇到了与该主题完全相同的问题。我使用“ Software Updater”从14.04升级到16.04.1。
莫格·李

这对我有用,关于清除软件包的评论没有。
约翰·

2

我在升级时有此错误消息,尽管版本不同-我正在执行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可能通过列出实际上不会阻止升级的“损坏的”软件包来误导您。)

在类似的问答中也指出了这一点:https : //askubuntu.com/a/541406/13868

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


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

对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.