我正在尝试升级 ubuntu,但收到以下错误do-release-upgrade
:
Calculating the changes
Could not determine the upgrade
An unresolvable problem occurred while calculating the upgrade.
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
If none of this applies, then please report this bug using the
command 'ubuntu-bug ubuntu-release-upgrader-core' in a terminal.
这里有大量有关此消息的问题,但所有问题都是有关具体问题的,并且大多数情况下答案只是猜测(“尝试删除 X”)。
大多数答案都是基于查看grep Broken /var/log/dist-upgrade/apt.log
,但正如其他人指出的那样,这列出了升级程序确实找到解决方案的许多软件包:
Investigating (0) perl-base [ amd64 ] < 5.18.2-2ubuntu1.3 -> 5.22.1-9ubuntu0.2 > ( perl )
Broken perl-base:amd64 Breaks on perl-modules [ amd64 ] < 5.18.2-2ubuntu1.3 > ( perl ) (< 5.22.1~)
Considering perl-modules:amd64 7 as a solution to perl-base:amd64 5277
Added perl-modules:amd64 to the remove list
Fixing perl-base:amd64 via remove of perl-modules:amd64
MarkDelete perl-modules [ amd64 ] < 5.18.2-2ubuntu1.3 > ( perl ) FU=0
所以,我的问题是,我该如何读取这个文件?我想知道具体是哪个包导致了这个问题。
有任何文档可以解释这个日志文件吗?
Investigating (0)
、 、 等是什么Investigating (1)
意思?在我的日志文件中,这个数字上升到(9)
。这是什么意思?- 当它说
Broken X Breaks on Y
,哪个包当前已安装以及哪个包正在升级? - 当它说的时候
Considering X as a solution to Y
,为什么会这样说Adding X to the remove list
?如果 X 是解决方案,难道不应该删除 Y 吗? - 如果说
Holding Back X rather than change Y
,我该如何找出原因? - 我意识到这可能正在通过一系列依赖关系进行工作,直到找到解决方案或放弃。在这种情况下,我应该查看
first package in the list
、the first package with an error
或the last package in the list
?
答案1
答案似乎是“查看/var/log/dist-upgrade/main.log
”:
2018-01-29 11:10:40,663 DEBUG blacklist expr '^postgresql-.*[0-9]\.[0-9].*' matches 'postgresql-9.3-postgis-2.1'
2018-01-29 11:10:40,663 DEBUG The package 'postgresql-9.3-postgis-2.1' is marked for removal but it's in the removal blacklist
2018-01-29 11:10:40,732 ERROR Dist-upgrade failed: 'The package 'postgresql-9.3-postgis-2.1' is marked for removal but it is in the removal blacklist.'
删除 postgis 后,升级就可以继续。
我希望do-release-upgrade
只在其主输出上报告这些错误。
看起来所有的损坏消息apt.log
都只是通过依赖关系起作用,但事实上它确实找到了所有问题的解决方案。