Mar*_*rby 14 do-release-upgrade
我回答了这个关于do-release-upgrade
不允许从 14.10 升级到 15.04 只升级到 15.10 的问题,我认为这是由于 15.04 生命周期结束。
一位用户 (@xangua ) 发帖说,不可能跳过带有 的发布do-release-upgrade
,因此我通过在 14.04 机器上运行命令来查看此信息,但这就是混乱开始的地方。
我的 14.04 想直接升级到 15.04?
当然,这使我的答案无效,因为 15.04 是生命周期的结束,但是如果不是基于生命周期的结束,为什么这个命令似乎正在跳过版本?
没有迹象表明升级会下载 14.10 中的任何内容,并software-updater
表示现在可以下载 Ubuntu 15.04,对此进行一些澄清会很棒。
小智 12
你原来的猜测是对的。15.04 支持到 2016-02-04,因此do-release-upgrade
与您拥有的版本相比,尝试将您升级到下一个受支持的版本。
以下是正常升级提示模式的说明/etc/update-manager/release-upgrades
:
检查是否有新版本可用。如果发现多个新版本,则版本升级程序将尝试升级到当前运行的版本的后继版本。
因此,如果我在 14.04,它应该试图将我带到 14.10,但现在do-release-upgrade
正在尝试将 OP(和我)改为 15.04。
因此,/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.py
在确定要升级到哪个版本时,我们似乎跳过了不受支持的版本(除非您使用了开发人员标志):
# then see what we can upgrade to
upgradable_to = ""
for dist in dists:
if dist.date > current_dist.date:
# Only offer to upgrade to an unsupported release if running
# with useDevelopmentRelease, this way one can upgrade from an
# LTS release to the next supported non-LTS release e.g. from
# 14.04 to 15.04.
if not dist.supported and not self.useDevelopmentRelease:
continue
upgradable_to = dist
self._debug("new dist: %s" % upgradable_to)
break
Run Code Online (Sandbox Code Playgroud)
我应该补充一点,我不建议尝试使用do-release-upgrade -d
. 当我尝试使用 时prompt=normal
,我得到了 404,因为 14.10 是 EoL。我还认为在我的精神错乱中我一定尝试过do-release-upgrade -p
,它试图将我直接带到 16.04。当我意识到它把我带到 xenial 时,一切都坏了,我不得不从工厂恢复。最后我决定等到 16.04 发布并重新安装。
do-release-upgrade 对“跳跃版本”一无所知。它只是从 Ubuntu 存储库维护者那里下载升级计划。这在do-release-upgrade README 中指定:
2) 升级工具必须能够下载更新的信息如何执行升级(例如额外的步骤,比如先升级某些库)
此外,在关于自动升级的规范中:
包含可用发行版信息的元发布文件存储在中央服务器上,并且在每次运行更新管理器时都经过 If-Modified-Since 测试。如果找到新版本,update-manager 会直观地显示出来。
这就是允许 do-upgrade-release 和任何其他工具无缝升级的原因。
归档时间: |
|
查看次数: |
1753 次 |
最近记录: |