我可以将WSL中现有的Ubuntu安装从16.04升级到18.04吗?


46

我目前正在使用WSL(Windows 10 v1709或更高版本)运行Ubuntu 16.04 lxrun

我可以升级到18.04吗?

如果是这样,怎么办?如果没有,什么时候?


在这里,您可以阅读“ 我们将寻求18.04支持,但尚无官方时间表。
sba

@Biswapriyo不知道如果我这样做是适当的,但sudo do-release-upgrade -d随后强制apt upgrade以武力改变源(xenial→仿生)的工作很适合我。只要确保linux-image从WSL中删除诸如grub之类的东西即可。
iBug

Answers:


36

我只是从16.04强制进行了升级,尽管过程并不顺利,但它还是成功的。

sudo do-release-upgrade -d

首先进行升级。正如人们在评论中所报告的那样,在18.04设置完成之前,您可能需要做的所有事情。在像我这样的少数情况下,它将在显示为“失败”的同时完成大多数事情。

如果显示为“ failed”,请打开/etc/apt/sources.list所有“ xenial”并将其替换为“ bionic”,然后按sudo apt update && sudo apt -y upgrade。大多数人在这一点上应该做的一切。

在某些情况下(但不是全部),APT和Debian Packager在此过程中可能会失败。根据此GitHub线程,您需要删除grub和内核(如果存在):

sudo apt -f purge grub-pc
sudo apt -f purge linux-image*

重复最后一个命令几次,因为dpkg在删除每个软件包后将失败。删除所有这些Linux映像之后,您将在WSL中获得一个可以正常工作的Bionic Beaver。

阅读更多:升级Ubuntu应用程序发行指南–开发人员的Windows命令行工具


12
FWIW,也许您遇到的问题已在Windows 10 April 2018更新中得到修复,但我做到了sudo do-release-upgrade -d,它已升级到18.04,没有错误,它正确设置了我的sources.list,并且未安装grub-pc或linux-image *软件包。它工作得很好!
保罗

@Paul它们是先前安装的,并已一起更新。
iBug

10
可以确认sudo do-release-upgrade -d现在效果很好。

21

是的你可以!

现在,Window Store提供了三种Ubuntu版本。

Windows应用商店的屏幕快照,显示了可用的三种Ubuntu版本。

  • Ubuntu:这将始终是最新的稳定LTS版本。
  • Ubuntu 18.04 LTS:适用于特别想要版本18.04的开发人员。
  • Ubuntu 16.04 LTS:适用于特别想要版本16.04的开发人员。

如果在Windows Store上提供18.04之前安装了普通的 “ Ubuntu”应用程序(无版本号),则可以使用以下命令集对其进行升级:

sudo apt update -y         # makes apt system up-to-date 
sudo apt dist-upgrade -y   # upgrades Ubuntu 16.04 packages to latest

sudo do-release-upgrade    # performs the upgrade to Ubuntu 18.04

遵循所有提示,并注意所有出现的警告。它们通常归因于您自己添加的自定义项和第三方库或存储库。

官方来源: https : //blogs.msdn.microsoft.com/commandline/2018/07/09/upgrading-ubuntu/


2
应该是sudo apt dist-upgrade,真的或保持升级将阻止发行版升级
Chris Browet

8

Windows商店现在有官方的Ubuntu18.04,以及Ubuntu16.04。

尽管我还没有找到任何官方信息,但这两者与Ubuntu之间有什么区别。

是的,目前Windows存储中有三种不同的Ubuntu。


3
带有最后一个版本号的两个安装适用于希望使用特定版本并坚持使用的人。标记为“ Ubuntu”的版本适用于那些希望始终运行最新版本的用户。
DaveTheMinion

是的,后来在一些博客上找到了。
X.Arthur,

1
我给人的印象是,如果您使用的是“ Ubuntu”,它将通过应用程序商店更新到最新版本,但事实并非如此。
DaveTheMinion

@DavidB在MS测试其稳定性后应进行更新。似乎当前的18.04发生了很多变化,有些需要在WSL上进行新的实现。希望下一个Windows版本将包含此内容。
X.Arthur

你确定吗?我升级了,一切似乎都正常进行。
DaveTheMinion

2

免责声明:以下过程需要在WSL中预安装GNU / Linux发行版(例如OP已安装Ubuntu 16.04)。提供的链接将来可能无法使用。您可以在下面发表评论。它几乎不需要GNU / Linux命令行工具(例如tarUnsquashFS等知识。请按照以下步骤安装这些工具。

  • Installer Executable:您需要导入WslRegisterDistribution的可执行文件功能来安装发行版。有两种方法。您可以从源代码(link1)编译自己的安装程序,也可以从Microsoft提供的Appx软件包(link2)中提取安装程序。

  • 获取Ubuntu 18.04:下载Ubuntu 18.04 SquashFS文件。现在,在该下载文件夹中运行带有WSL的旧版Ubuntu,并以root用户身份登录。在下面运行以下命令(仅对于root用户):

cp ./ubuntu-18.04-server-cloudimg-amd64.squashfs ~ 
cd ~ 
unsquashfs -d temp ubuntu-18.04-server-cloudimg-amd64.squashfs 
cd temp 
tar -czf ../Ubuntu.tar.gz --hard-dereference * 
cd .. 
mv Ubuntu.tar.gz /mnt/c 

cp命令将SquashFS文件复制到主目录中(必需)。UnsquashFS提取文件temp夹中的文件并tar以一种.tar.gz格式压缩所有文件。然后mv命令将该文件移到先前的下载文件夹中。您可以temp使用rm -rf ~/temp命令删除文件夹。

  • 安装:将可执行文件和tar.gz文件都放置在要安装的文件夹中。您必须运行命令(link1)或双击可执行文件(link2)进行安装。根据您的机器,它需要15-30秒才能安装。

3
似乎也有类似github.com/Biswa96/WSLInstallgithub.com/DDoSolitary/LxRunOffline之类的工具,它们似乎可以用于安装部分(尽管我自己并未对其进行测试)。
phk

啊哈,我的第一个github链接实际上指向您的存储库,所以不要紧。干杯!
phk
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.