I'm currently running Ubuntu 16.04 in WSL (Windows 10 v1709 or later), installed using lxrun
.
Can I upgrade it to 18.04?
If so, how? If not, when?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityI just forced an upgrade from 16.04 and it was successful, though the process was not all well.
sudo do-release-upgrade -d
First do the upgrade. As people have reported in comments, it's likely all that you need to do before 18.04 is all set up. In a few cases like mine, it will do most of the things while showing as "failed".
In case it shows as "failed", open /etc/apt/sources.list
and replace all "xenial" with "bionic", and sudo apt update && sudo apt -y upgrade
. Most people should have everything done at this point.
In some cases (but not all), APT and Debian Packager may fail during the process. According to this GitHub thread, you need to remove grub and kernels, if present:
sudo apt -f purge grub-pc
sudo apt -f purge linux-image*
Repeat the last command several times as dpkg will fail after removing every package. After all those Linux images are removed, you get a fully working Bionic Beaver in your WSL.
Read more: A Guide to Upgrading your Ubuntu App’s Release – Windows Command Line Tools For Developers
sudo do-release-upgrade -d
and it upgraded to 18.04 with no errors, it correctly set my sources.list, and no grub-pc or linux-image* packages were installed. It worked perfectly fine!
sudo do-release-upgrade -d
, got [sudo] password for cwang: Traceback (most recent call last): File "/usr/bin/do-release-upgrade", line 11, in <module> from UpdateManager.Core.MetaRelease import MetaReleaseCore File "/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py", line 25, in <module> import apt File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> import apt_pkg ImportError: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0: symbol _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4...
sudo apt -f purge grub-pc
got apt: relocation error: /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0: symbol _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
Yes, you can!
There are now a few choices for Ubuntu in the Window Store.
If you installed the plain "Ubuntu" app (with no version number) before 20.04 or 22.04 was made available on the Windows Store, you may upgrade it with the following set of commands:
sudo apt update -y # makes apt system itself up-to-date
sudo apt dist-upgrade -y # updates current Ubuntu packages to latest
sudo do-release-upgrade # perform an upgrade to Ubuntu 22.04
Follow all prompts and heed all warnings. They are usually due to customization and third-party libraries or repositories you added yourself.
Official source: https://devblogs.microsoft.com/commandline/upgrading-ubuntu/
sudo apt dist-upgrade
, really, or held upgrades will prevent the release upgrade
Dec 1, 2018 at 21:08
There is official Ubuntu18.04 in the windows store now, as well as Ubuntu16.04.
Though I haven't found any official information what is the difference between these two and the Ubuntu.
Yes, there are three different Ubuntu in windows store at the moment.
Disclaimer: This following procedure requires a pre-installed GNU/Linux Distributions in WSL (like OP has Ubuntu 16.04 already installed). The provided links may not work in future. You may comment below if any. It requires little knowledge of GNU/Linux command line tools e.g. tar
, UnsquashFS
etc. Install these tools before following this procedure.
Installer Executable: You need an executable importing WslRegisterDistribution function which installs the distribution. There are two ways. You can compile your own installer from source code (link1) or extract the installer from Microsoft provided Appx package(link2).
Get Ubuntu 18.04: Download the Ubuntu 18.04 SquashFS file. Now run old Ubuntu with WSL in that download folder and login as root
user. Run the following commands below (only with root user):
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
The cp
command copies the SquashFS file in home directory (required). UnsquashFS
extracts files in temp
folder and tar
compresses all the files in a .tar.gz
format. Then mv
command move that file in previous download folder. You may delete the temp
folder with rm -rf ~/temp
command.
sudo do-release-upgrade -d
then force anapt upgrade
with force changed sources (xenial→bionic) worked well for me. Just make sure to remove things likelinux-image
and grub from WSL.