Сегодня покажу как на wsl хитро поставить свежую версию ubuntu 23.04 или 24.04. Так как в коробке идет только старенькая 22.04, придется немного потыкать в консольке.
Зачем это нужно? Ну например проверить какие-то штуки, которых нет в ubuntu 22. А для чего мне это понадобилось, я напишу в следующем посте, как раз одно на другое наложилось. Если спойлернуть: писал пост про софтину, но она работает только с новыми версиями убунты. Вот и пришлось немного переобуться.
По bash версиям имеем такое:
22.04 - 5.1.16
23.04 - 5.2.16
24.04 - 5.2.21
Так, есть несколько способов вкорячить свежую убунту в 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 уже не нужна. А мне нужна! Пока не знаю зачем, но пусть будет.
➕ Подпишись на BashDays в телеграм
Третий и самый простой.
Поставить Ubuntu (Preview) по этой ссылке прям с магазина микрософта. Кликнул и последняя убунта у тебя в wsl.
В моём случае сразу прилетел Release: 24.04 Codename: noble. Через docker конечно интереснее, есть какая-то прозрачность и контроль.
А так, как я ленивый, я предпочел поставить Ubuntu Preview. Но способ с docker я конечно пощупал и поставил 23 версию. Теперь имею зоопарк 22, 23, 24, думаю для экспериментов вполне хватит.
Да, когда ставишь через docker, оно автоматически пропишется в Windows Terminal и потом всю эту кухню можно запускать кликом мыши, без ввода wsl -d.
Вот и все. Чуть позже закину пост как раз про ту самую софтину, которая хочет работать только на свежих линуксах. Увидимся!