Привет. Сегодня покажу как на wsl хитро вкорячить свежую версию ubuntu 23 или 24. Так как в коробке идет только старенькая 22, придется немного потыкать в консольке.

Зачем это нужно? Ну например проверить какие-то штуки, которых нет в ubuntu 22. А для чего мне это понадобилось, я напишу в следующем посте, как раз одно на другое наложилось. Если спойлернуть: писал пост про софтину, но она работает только с новыми версиями убунты. Вот и пришлось немного переобуться.

По bash версиям имеем такое:

Так, есть несколько способов вкорячить свежую убунту в wsl.

Хитрожопый способ с docker

Заходим в wsl убунты 22 и ставим docker если он у тебя еще не стоит.

curl -sSL https://get.docker.com | sh
usermod -aG docker $(whoami)

WSL DETECTED: We recommend using Docker Desktop for Windows.

Оно грязно выругается, но ждем 20 секунд и установка завершится успехом

Перезапускаем сессию чтобы пользователь смог работать с docker.

Дальше тащим образ ubuntu:lunar, как раз это версия 23.04. Аналогично можешь и другие версии/разновидности дистрибутива на wsl вкорячивать. Все что есть в docker можно поднять в wsl.

docker pull ubuntu:lunar

Запускаем контейнер и выходим из него

docker run -it --name ubuntu23 ubuntu:lunar
exit

Проверяем что контейнер есть:

docker ps -a

Экспортируем

docker export ubuntu23 > /tmp/ubuntu23.tar

В папке /tmp появился tar размером где-то 75 мегабайт. Уже хорошо. Теперь на хостовой с виндой создаем папку. Я сделал ее на диске D: и назвал так D:\\wsl\\ubuntu23

Теперь копируем этот tar на хостовую машину с виндой в папку D:\\wsl\\ubuntu23.

Переходим в powershell и импортируем tar:

wsl --import ubuntu23 D:\wsl\ubuntu23\ D:\wsl\ubuntu23\ubuntu23.tar

В папке D:\\wsl\\ubuntu23 появится новый файл: ext4.vhdx размером около 150 мегабайт. Так, дальше…

Смотрим что у нас есть, в powershell:

wsl -l -v

На экран вываливается примерно такое:

PS C:\Users\user> wsl -l -v

  NAME            STATE       VERSION
* Ubuntu-22.04    Running        2
  ubuntu23        Stopped        2

Собственно на этом всё. Запускаем lunar:

wsl -d ubuntu23

Всё!

Второй способ. Сделать dist-upgrade уже существующей убунты:

sudo sed 's/lts/normal/g' /etc/update-manager/release-upgrades
sudo sed -i `s/jammy/lunar/g` /etc/apt/sources.list
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Хотя апгрейд крайняя мера, когда 22.04 уже не нужна. А мне нужна! Пока не знаю зачем, но пусть будет.

Третий и самый простой.

Поставить Ubuntu (Preview) по этой ссылке прям с магазина микрософта. Кликнул и последняя убунта у тебя в wsl.

В моём случае сразу прилетел Release: 24.04 Codename: noble. Через docker конечно интереснее, есть какая-то прозрачность и контроль.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
А так, как я ленивая жопа, я предпочел поставить Ubuntu Preview. Но способ с docker я конечно пощупал и поставил 23 версию. Теперь имею зоопарк 22, 23, 24, думаю для экспериментов вполне хватит.

Да, когда ставишь через docker, оно автоматически пропишется в Windows Terminal и потом всю эту кухню можно запускать кликом мыши, без ввода wsl -d.

Вот и все. Чуть позже закину пост как раз про ту самую софтину, которая хочет работать только на свежих линуксах. Увидимся!