Установка Ubuntu WSL на Windows 10

С 90-х годов в качестве основной операционной системы я задействовал то Windows, то различные дистрибутивы Linux. И почти каждый раз использовал обе эти системы, переключаясь между ними в ходе двойной загрузки либо запуская одну из них на виртуальной машине с помощью стороннего программного обеспечения, такого как VirtualBox.

Упрощенная установка для участников программы предварительной оценки Windows

Процесс установки подсистемы Windows для Linux был значительно улучшен в последних предварительных сборках Windows 10 для участников программы предварительной оценки Windows — приведенные ниже шаги, которые выполняются вручную, были заменены одной командой.

Чтобы использовать упрощенную команду установки wsl —install, вы должны:

  • присоединиться к Программе предварительной оценки Windows;
  • установить предварительную сборку Windows 10 (сборка ОС 20262 или более поздней версии);
  • открыть окно командной строки от имени администратора.

Если эти требования выполнены, выполните следующие действия, чтобы установить WSL:

  • В командной строке, открытой в режиме администратора, выполните команду wsl.exe —install.
  • Перезапустите компьютер.

При первом запуске недавно установленного дистрибутива Linux откроется окно консоли, и вам будет предложено подождать, чтобы файлы распаковались и сохранились на компьютере. Все будущие запуски должны занимать меньше секунды.

Затем необходимо будет создать учетную запись пользователя и пароль для нового дистрибутива Linux.

Поздравляем! Вы успешно установили и настроили дистрибутив Linux, который полностью интегрирован с операционной системой Windows.

Команда —install выполняет следующие действия:

  • включает дополнительные компоненты WSL и платформы виртуальных машин;
  • скачивает и устанавливает последнюю версию ядра Linux;
  • задает WSL 2 в качестве среды по умолчанию;
  • скачивает и устанавливает дистрибутив Linux (может потребоваться перезагрузка) .

По умолчанию в качестве устанавливаемого дистрибутива Linux используется Ubuntu. Чтобы изменить дистрибутив, используйте команду wsl —install -d <Distribution Name>. (Замените <Distribution Name> именем нужного дистрибутива.) Дополнительные дистрибутивы Linux можно добавить на компьютер после первоначальной установки — для этого выполните команду wsl —install -d <Distribution Name>.

Чтобы просмотреть список доступных дистрибутивов Linux, введите wsl —list —online.

WARNING

Помни: сначала WSL необходимо установить. Из коробки подсистема не заработает.

Шаги по установке вручную

Если вы не используете сборку для участников программы предварительной оценки Windows, компоненты, необходимые для WSL, потребуется включить вручную. Для этого выполните приведенные ниже шаги.

Зачем нужна Ubuntu WSL на Windows

Поговорим немного о том, зачем может понадобиться установка Ubuntu WSL в Windows 10. Можно в небольшой список это вынести и перечислить по пунктам:

  1. Первое и самое очевидное — для использования линуксовых утилит — git, ansible, cron, rsync и т.д. Речь в первую очередь идет о том софте, которого нет в windows, либо которое затруднительно или неудобно запускать.
  2. Настройка привычного web окружения в виде lamp (linux, apache, mysql, php) или lemp (то же самое, только с nginx). Особенно это актуально для разработчиков.
  3. Для обычного знакомства и изучения linux. Нет нужды разбираться с виртуализацией или рядом с windows устанавливать отдельно linux. Тут все в комплекте, можно без проблем переключаться между системами в режиме реального времени. В общем, это удобно.

Это то, что первое приходит в голову. Думаю, есть и другие причины, для чего может быть полезно установить ubuntu wsl. Делитесь своим мнением в комментариях. Может я что-то важное упускаю.

Использование Linux в Windows 10

Ниже будет несколько полезной информации и советов по использованию Linux в Windows 10:

  • Получить доступ к файлам установленной ОС Linux можно просто набрав в терминале следующую команду:explorer.exe .

    После выполнения данной команды откроется проводник с открытой домашней директорией текущего пользователя Linux.

  • Получить доступ к файлам Linux из Проводника можно просто указав в адресной строке проводника следующий путь:\wsl$\

    Т. е. если у Вас установлен дистрибьютив Ubuntu, то команда должна выглядеть следующим образом:

    \wsl$Ubuntu

Шаг 2. Проверка требований для запуска WSL 2

Для обновления до WSL 2 требуется Windows 10.

  • Для 64-разрядных систем: версия 1903 или более поздняя со сборкой 18362 или более поздней версии.
  • Для систем ARM64: версия 2004 или более поздняя со сборкой 19041 или более поздней версии.
  • Сборки ниже 18362 не поддерживают WSL 2. Для обновления версии Windows используйте помощник по обновлению Windows.

Чтобы проверить версию и номер сборки, нажмите клавиши Windows+R, введите winver и нажмите кнопку ОК. В меню «Параметры» выполните обновление до последней версии Windows.

X Window, Unity и все-все-все

Установка bash — это лишь полдела. Дальше начинается самое интересное — установка и настройка X-сервера в Windows и запуск графических приложений, в том числе и Unity.

Изначально Canonical и Microsoft добавили возможность запуска Ubuntu поверх Windows 10 для того, чтобы предоставить системным администраторам и разработчикам возможность использования bash и других Linux-инструментов и утилит, таких как make, gawk и grep, непосредственно в Windows. Пользователи Linux, как истинные хакеры (в хорошем смысле этого слова), не заставили себя долго ждать и немедленно приступили к работе над запуском графических окружений рабочего стола в WSL. И угадай, что? Они сделали это. Гватемальский программист, зарегистрированный на GitHub под ником Guerra24, смог (цитата) «запустить Unity (рабочее окружение по умолчанию в Ubuntu) внутри WSL. Это говорит о том, что прослойка от Microsoft, в принципе, вполне способна запускать любые окружения рабочего стола».

Задача эта нетривиальная, и то, что в итоге получится, трудно назвать полноценным рабочим столом Linux, но это только начало. Если ты хочешь использовать рабочий стол Ubuntu в Windows 10 в практических целях, то лучше воспользуйся любой из доступных в данный момент виртуальных машин, например VirtualBox от Oracle. А вот если ты просто хочешь повеселиться и прокачать свои навыки программирования для рабочих столов, то можешь попробовать запустить «нативный» Linux прямо в Windows 10. Для запуска Unity в WSL тебе для начала нужно установить (любым доступным способом, желательно легальным!) версию Windows 10 Anniversary Update за номером 1607. Причем не «домашнюю» версию, а самую что ни на есть «профессиональную», а то и вовсе «корпоративную». После установки обязательно обнови систему и двигайся дальше.

После двух (иногда трех) перезагрузок в процессе обновления, чтобы установить bash, необходимо запустить командную строку Windows (Win + R, ввести cmd — и будет тебе счастье в виде «консоли» Windows) и ввести… да, именно так: bash. Будет предложено согласиться с условиями обслуживания (обязательно прими их, выбора у тебя нет!) и загрузить Ubuntu. На этом этапе тебе нужно просто нажать клавишу Y. Объем загружаемых файлов будет не многим более одного гигабайта. Так что, если у тебя медленный интернет (да, бывает и такое), приготовься ждать. Затем начнется установка, которая, в свою очередь, тоже займет некоторое время, зависящее от производительности компьютера. И в конце всего этого ты попадешь в пространство пользователя (пользовательское окружение) Ubuntu 14.04, работающее поверх WSL.

Технически ты запустишь не Linux. Оно может выглядеть как Linux, но это не Linux. Дело в том, что пользовательское окружение (тот самый bash и прочие) работает не поверх ядра Linux, а внутри прослойки WSL. WSL использует специальный API и набор инструкций, для того чтобы все выглядело как в Linux, но все же это не то же самое. В основе всего этого все еще стоит ядро Windows NT. Это важно понимать, чтобы разобраться в том, как запускается и работает Unity в WSL.

После установки Ubuntu обязательно обнови ее, введя стандартные для этого команды:

# apt-get update# apt-get upgradeVcXsrv — X-сервер для WindowsVcXsrv — X-сервер для Windows

Далее нужно снова вернуться в Windows 10 и установить совместимый с ней X-сервер. Для нашего эксперимента идеально подойдет VcXsrv. Его собрата Xming лучше не использовать, так как с ним, по неизвестной мне причине, возникает проблема: при попытке запустить любое графическое приложение для Linux все просто вылетает, в том числе и консоль Windows. Но это не все. Нужно сказать Ubuntu о том, что следует использовать именно X-сервер VcXsrv. Для этого введи в bash команду

# DISPLAY =: 0.0

Теперь любое графическое приложение Linux будет работать в Windows 10. Но только до закрытия bash. Чтобы WSL работала с графикой Linux все время, автоматически выбирая нужный для работы X-сервер, просто добавь указанную строку в конец конфигурационного файла bash (~/.bashrc):

# echo «export DISPLAY=:0.0» >> ~/.bashrc

VcXsrv — X-clock в Windows. Магия!VcXsrv — X-clock в Windows. Магия!

Firefox для Ubutnu работает отлично, почти не тормозит!Firefox для Ubutnu работает отлично, почти не тормозит!

После этого ты сможешь запускать любые графические приложения Linux, например Firefox или любое DE. Однако они будут работать не так, как в Linux, падая каждую минуту, а некоторые, например Unity, и вовсе не запустятся. Проблема тут в том, что WSL не содержит в себе кода поддержки сокетов (универсальная концепция обмена данными между процессами в UNIX-подобных системах, подробности тут).

Для имплементации концепции сокетов графические окружения Linux по умолчанию используют систему обмена сообщениями D-bus. Большинство графических приложений Linux не смогут даже запуститься без D-bus, не то что работать. Но WSL, к счастью, поддерживает сетевой протокол TCP, что и подвигло пользователя Reddit.com под ником ShaRose найти способ заставить D-bus использовать вместо сокетов протокол TCP. Решение не идеальное, но оно работает. Чтобы «прикрутить» D-bus к TCP, введи в bash:

# sed -i ‘s/<listen>.*</listen>/<listen>tcp:host=localhost,port=0</listen>/’ /etc/dbus-1/session.confСамое главное — правильно указать дисплей!Самое главное — правильно указать дисплей!

Этой командой ты изменишь конфигурационный файл D-bus так, чтобы отныне он использовал TCP вместо сокетов. В этом тебе поможет старый добрый потоковый редактор sed. Что в итоге? Приложения, требующие для своей работы D-bus, теперь запускаются и в WSL.
Следующий шаг — установка графических приложений Linux. Для начала сделай в консоли WSL вот это:

# apt-get install ubuntu-desktop# apt-get install unity# apt-get install compiz-core# apt-get install compizconfig-settings-manager

Долгая установка Unity...Долгая установка Unity…

Первая команда установит основные графические компоненты Ubuntu, в том числе программы для конечного пользователя, такие как LibreOffice. Следующая команда устанавливает рабочий стол Unity. Две остальные команды поставят композитный оконный менеджер Compiz, использующий OpenGL, и графический фронтенд к нему. Именно его и нужно будет правильно настроить на следующем этапе.

Перед тем как начать пользоваться окружением рабочего стола Unity в Windows 10, тебе необходимо правильно настроить CompizConfig Settings Manager (CCSM). После установки всех этих приложений запусти из интерфейса bash CCSM и активируй в нем следующие плагины (все должно быть ИМЕННО так, как на скриншоте!):

Настройки CompizНастройки Compiz

  1. В секции General (Общие):

    • Commands (Команды)
    • Composite
    • Copy to texture
    • OpenGL
  2. В секции Desktop (Рабочий стол):

    • Ubuntu Unity Plugin
  3. В секции Utility (Утилиты):

    • Compiz Library Toolbox
  4. В секции Window Management (Управление окнами):

    • Place Windows (Переместить окно)
    • Resize Window (Изменение размеров окна)
    • Scale (Масштабировать)
    • Snapping Windows
  5. В секции Image Loading (Загрузка изображения):
    • PNG

Далее, чтобы все наконец заработало, закрой CCSM и запусти Compiz из bash командой

$ compiz

Примерно через минуту ты увидишь запущенную оболочку Unity.

Unity во всей красеUnity во всей красе

Отмечу несколько ключевых моментов:

  1. Если ты и правда хочешь запускать иксовые приложения в WSL, устанавливай в качестве X-сервера VcXsrv, а не Xming. Опытным путем доказано, что Xming не желает нормально работать с WSL.
  2. После установки CCSM необходимо настроить его именно так, как показано на картинке (то есть включить то, что отмечено галочками, и выключить все остальное). Только тогда Unity со скрипом, не с первой попытки, но запустится.
  3. Лучше не устанавливать проприетарные драйверы ATI для Ubuntu внутри WSL. Это приводит к полному зависанию всей системы (в том числе и Windows 10) и влечет за собой тотальную переустановку WSL со всеми вытекающими.
  4. Огорчу тебя: не стоит возлагать на получившийся костыль большие надежды. Нормально ЭТО работать не будет. Но на моей тестовой машине Unity внутри WSL работала вполне сносно. Субъективно — чуть медленнее, чем в нативном Linux. Быть может, в будущем кто-нибудь доведет все это дело до ума. И от Unity в WSL таки будет польза.

Что же получится в итоге, после стольких мучений? А в итоге (теоретически, так как на практике выходит пока просто интересный экспериментальный способ запуска Unity и прочих DE внутри WSL) мы получим среду для тестирования Linux-приложений прямо внутри Windows. И Unity, работающую поверх Windows. Конечно, скорость работы и отзывчивость ее не такие, как на реальном железе, но все же быстрее, чем в виртуальной машине. Многие приложения, например Google Chrome или Pidgin, просто не запускаются. А вот Firefox, файловый менеджер, магазин приложений и прочие системные утилиты Ubuntu работают на ура (чуть медленней, чем в «настоящей» Ubuntu, но работают!).

warning-icon.jpg

Шаг 5. Выбор WSL 2 в качестве версии по умолчанию

Откройте PowerShell и выполните следующую команду, чтобы задать WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux:

wsl —set-default-version 2

История ненависти и любви

Издавна Microsoft питала особые чувства к Linux в частности и ко всему миру FOSS в целом. И чувства эти, надо сказать, как правило, были не самыми теплыми — начиная со знаменитого «Открытого письма любителям» Билла Гейтса, написанного в далеком 1976 году (подробности в Вики), где автор обвинял пользователей персональных компьютеров (которые в те доисторические времена были и пользователями, и программистами, и хакерами!) чуть ли не в воровстве его интеллектуальной собственности (того самого бейсика), и заканчивая гневными высказываниями Стива Балмера в 2001 году по поводу Linux: «Linux — это раковая опухоль, которая пожирает всю интеллектуальную собственность, к которой прикасается. Согласно правилам лицензии, если вы используете какие-либо компоненты программного обеспечения с открытым исходным кодом, вы должны открыть код всего имеющегося у вас программного обеспечения».

Спустя пятнадцать лет, однако, Стив смягчил свою позицию: в марте 2016 года бывший генеральный директор Microsoft заявил, что рад видеть, что новый глава компании Сатья Наделла принял решение активнее поддерживать сообщество разработчиков открытого ПО, и «с удовольствием» (loved) наблюдал за анонсом MS SQL Sever для Linux. Во многом такой разворот бывшего гиганта софтверной индустрии — это заслуга сообщества FOSS. Тех тысяч и тысяч программистов, дизайнеров, майнтейнеров, FOSS-активистов и просто неравнодушных людей, которые годами «точили камень, аки вода».

Еще в середине 2000-х годов MS начала менять свою позицию в отношении FOSS. И это не пустые слова, а дела. Даром что ли не так давно Microsoft получила статус «платинового» участника Linux Foundation — главной организации, курирующей разработку Linux, высказала приверженность идеям разработки FOSS-сообщества. Ну и само существование WSL тому подтверждение. Спустя сорок с небольшим лет мы наблюдем, как некогда непримиримые идеологические (и не только идеологические) противники начали работать бок о бок, сообща делая мир лучше. Ну или хотя бы пытаться.

Спустя пятнадцать лет Стив Балмер, по сути, признал свою неправотуСпустя пятнадцать лет Стив Балмер, по сути, признал свою неправоту

То самое письмо Билла Гейтса в защиту копирайтаТо самое письмо Билла Гейтса в защиту копирайта

На данный момент апогеем такого симбиоза можно считать Windows Subsystem for Linux. Да, прослойка пока далека от совершенства. Но направление выбрано верное. И той и другой стороной.

«Дайте ей шанс!»

«Дайте Windows Subsystem for Linux шанс, и вы будете поражены», — говорят в Microsoft. Microsoft наконец-то признала потенциал мира FOSS в целом и Linux в частности. И каждое событие становится для Microsoft уроком, позволяющим оценить свои возможности и расширить свою деятельность в этой области программирования.

Совсем недавно, 16 ноября прошлого года, на сайте Microsoft для разработчиков появился пост с видеороликом под названием «Улучшения в bash на Windows и консоли Windows», в котором старший программист Microsoft Рич Тёрнер призывает Linux-разработчиков взглянуть на то, что Windows 10 может им предложить. «Установите экземпляр сборки Windows 10 для разработчиков (Windows 10 Insider Preview Build) и исполняйте свой код, используйте привычные вам инструменты, размещайте свои сайты на Apache, получайте доступ к своим базам данных MySQL непосредственно из вашего Java-кода», — говорит Тёрнер.

Новое, дружелюбное лицо Microsoft — Рич ТёрнерНовое, дружелюбное лицо Microsoft — Рич Тёрнер

Тёрнер особо отметил, что WSL была создана специально для разработчиков с целью предоставить последним все необходимые инструменты разработки для Linux. И все это, по его словам, без потери новшеств и преимуществ Windows 10. «Независимо от того, какие инструменты вы обычно используете в Linux для создания приложений, будь то Go, Erlang или C, дайте шанс WSL, а самое главное, отправляйте нам отчеты об ошибках. Эти отчеты действительно делают нашу жизнь намного проще, позволяя нам создавать продукт, который мы все можем использовать, чтобы работать более плодотворно», — продолжил он.

Разумеется, Microsoft сама заинтересована в улучшении WSL, и Тёрнер утверждает, что конечная цель всего этого состоит в том, чтобы сделать эту подсистему полностью совместимой со всеми инструментами разработки для Linux. И, по их словам, любой, кто перейдет на Windows 10, будет чувствовать себя так же комфортно, как и в Linux. А это, в свою очередь, обеспечит Microsoft приток новых пользователей. «Пока мы только в самом начале. Нам предстоит долгий путь. В данный момент нельзя сказать, что эта штука действительно полностью совместима с Linux-инструментами и готова к полноценному использованию вами», — сказал он. Это заявление стало для многих людей сюрпризом. Однако, как уже говорилось, Сатья Наделла, нынешний глава софтверного гиганта, применит в отношении FOSS и Linux иной подход, рассматривая открытый и свободный код в качестве источника дохода и новых возможностей.

Отдельно отмечу, что Рич Тёрнер в своей речи не призывает разработчиков отказаться от Linux и нисколько не умаляет преимущества этой ОС, а лишь просит дать WSL шанс.

Как удалить Ubuntu WSL

Если вам нужно удалить Ubuntu WSL из Windows 10, то сделать это можно точно так же, как любое другое приложение, установленное из Магазина. Выбираете Ubuntu WSL через пуск и нажимаете Удалить.

Удаление Ubuntu WSL

То же самое можно сделать и через консоль powershell

wsl —unregister <distribution name>

Список установленных систем смотрим командой:

wsl —list —verbose

Ничего сложного, система удаляется фактически в одну команду. Для повторной установки достаточно еще раз установить ubuntu через Магазин.

Установка Терминала Windows (необязательно)

В Терминале Windows можно использовать несколько вкладок (чтобы быстро переходить между несколькими командными строками Linux, командной строкой Windows, PowerShell, Azure CLI и пр.), создавать пользовательские сочетания клавиш (для открытия и закрытия вкладок, копирования и вставки и пр.), а также применять функцию поиска и пользовательские темы (цветовые схемы, стили и размеры шрифтов, а также фоновое изображение, размытие и прозрачность). Подробнее.

Установка Терминала Windows

Терминал Windows

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: