我在 Windows Subsystem for Linux (WSL) 中尝试将 Ubuntu 16.04 LTS (xenial) 升级到 17.10 (artful) 时运气不佳。以下是我最好的尝试示例:
从全新安装开始Ubuntu在 Windows 10 Pro(内部版本 16299.248)上,我执行以下操作:
$ sudo vim /etc/update-manager/release-upgrades # set Prompt=normal
$ sudo apt update
$ sudo apt install update-manager-core
$ sudo env RELEASE_UPGRADER_NO_SCREEN=1 do-release-upgrade
完整输出为这里,但这是我得到的错误:
0% [Connecting to archive.ubuntu.com]
http: ../sysdeps/posix/getaddrinfo.c:2603: getaddrinfo: Assertion `IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32)' failed.
我运行时有时会遇到同样的错误sudo apt update
:
$ sudo apt update
0% [Working]http: ../sysdeps/posix/getaddrinfo.c:2603: getaddrinfo: Assertion `IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32)' failed.
Reading package lists... Done
E: Method http has died unexpectedly!
E: Sub-process http received signal 6.
$ sudo apt update
Hit:1 http://security.ubuntu.com/ubuntu artful-security InRelease
Hit:2 http://archive.ubuntu.com/ubuntu artful InRelease
Hit:3 http://archive.ubuntu.com/ubuntu artful-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu artful-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
388 packages can be upgraded. Run 'apt list --upgradable' to see them.
但它是间歇性的,似乎是随机的。我可以重新运行sudo apt update
直到它工作,但这似乎do-release-upgrade
太长太复杂了。有时它比其他时候走得更远,但它总是在某个时候死机,出现那个getaddrinfo
错误(和大量的堆栈呕吐)。
(另请注意某物升级尝试后发生了变化,因为现在apt
正在查看artful
东西。)
我有尝试过A很多的建议没有任何改进。(值得注意的是,我似乎无法禁用 IPv6。)但答案并不多,我认为每个人都遇到了这个问题。
这种升级是否可行?如何升级?
答案1
正如 @bengt-olsson 上面指出的那样,这个问题应该会在 2018 年春季版本中得到修复,很快就会发布 :)
另请注意:将 Linux 发行版升级到 Windows 应用商店中提供的最新版本以上可能会导致失败,因为较新的代码可能使用 WSL 团队尚未实现的系统调用。
如果您想要稳定的体验,我们建议您不要升级 Windows 商店中发布的受支持的发行版以外的版本。我们与发行版供应商合作,帮助测试和认证新的发行版,供应商将在准备就绪时升级其发行版。