Любая программа написанная под linux заработает на windows

Можно ли программу, скомпилированную в Linux запустить на Windows ? C++ Решение и ответ на вопрос 1526879

0 / 0 / 0

Регистрация: 13.08.2015

Сообщений: 71

1

08.09.2015, 13:24. Показов 4215. Ответов 8


Есть программа, собранная в Qt Creator в Linux Ubuntu , какие есть способы запустить её на Windows ? и есть ли способ сделать это без перекомпиляции ?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



76 / 76 / 29

Регистрация: 21.05.2015

Сообщений: 257

08.09.2015, 14:17

2

Pepslee, можно в Windows установить виртуальную машину с Linux и запускать там.



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

08.09.2015, 14:25

3

Цитата
Сообщение от Pepslee
Посмотреть сообщение

Есть программа, собранная в Qt Creator в Linux Ubuntu , какие есть способы запустить её на Windows ? и есть ли способ сделать это без перекомпиляции ?

Без перекомпиляции нельзя.



0



693 / 303 / 99

Регистрация: 04.07.2014

Сообщений: 842

08.09.2015, 14:47

4

Программа написана на С++. После компиляции она использует конкретные версии библиотек (Qt, стандартная библиотека С++) и API ядра ОС. Уже на другой версии LInux они могут быть другими и программа не запустится. Так что ответ: «без перекомпиляции нельзя». Но есть и хорошая новость. Так как использовалось Qt, то большая вероятность, что скомпилируется и под Win.



0



0 / 0 / 0

Регистрация: 13.08.2015

Сообщений: 71

08.09.2015, 15:07

 [ТС]

5

дело в том, что программа юзает некоторые библиотеки, которые есть только для Linux, отсюда и проблема…
вариант виртуальной машины не подходит !!

кто знаком с andLinux ? не знаете, может с помощью него можно ?



0



2758 / 1912 / 569

Регистрация: 05.06.2014

Сообщений: 5,561

08.09.2015, 15:27

6

Не совсем то, но теоретически можно графический интерфейс программы запустить под Виндой, а саму программу — под Линуксом. Вот статейка на тему, но сам я работоспособность этого метода не проверял.



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

08.09.2015, 15:28

7

Цитата
Сообщение от Pepslee
Посмотреть сообщение

которые есть только для Linux

Да и каким чудом она тогда должна заработать?
Только через виртуалку.

Не по теме:

P.S: Включайте мозги.



0



0 / 0 / 0

Регистрация: 13.08.2015

Сообщений: 71

08.09.2015, 19:56

 [ТС]

8

да на своём компе я могу её запустить и cygwine, ну точнее перекомпилировать ( это без проблем ), но мне нужно чтоб программа работала и на других ПК, не буду ж я бегать всем cygwin устанавливать



0



Содержание

  1. Linux-разработка в Windows с WSL и Visual Studio Code Remote
  2. Первым делом: установка необходимых компонентов
  3. Windows Subsystem for Linux
  4. Visual Studio Code
  5. На старт, внимание, Linux!
  6. Это не просто изолированный Python, вы можете использовать VSCode Remote и WSL в любом Linux-проекте
  7. программирование ПО на Linux под Windows
  8. В Windows 10 появилась поддержка любых приложений Linux
  9. Анонсы конференции Microsoft Build 2020
  10. WSL2 и графические приложения Linux
  11. «Родной» эмулятор терминала
  12. Пакетный менеджер в стиле Linux
  13. Унификация Win32 и UWP
  14. Разработка Linux программ из Windows
  15. Visual C++ for Linux Development: Практика использования для Windows разработчиков
  16. Отладка первой программы
  17. Подключаемые файлы
  18. Дополнительные команды компилятора и линкера
  19. Запуск отладки с правами администратора
  20. Копирование дополнительных файлов
  21. Что в итоге

Linux-разработка в Windows с WSL и Visual Studio Code Remote

Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

image loader

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

Чтобы выполнить все действия описанные в данной статье, вам понадобятся WSL и VS Code с установленным расширением VS Code Remote — WSL. Давайте быстро рассмотрим, что это такое и как это установить.

Windows Subsystem for Linux

Инструмент Windows Subsystem for Linux, сокращённо WSL, позволяет запускать неизмененные двоичные файлы Linux непосредственно в Windows. Это означает, что вы можете использовать ваши любимые инструменты Linux, приложения командной строки и рабочие процессы на вашем компьютере с Windows, без необходимости использовать сложные настройки, такие как Dual Boot. А лучше всего то, что WSL является тесно интегрированным решением между Windows и Linux. Иначе говоря, если вы любите Linux, то вы можете получить доступ ко всем файлам и исполняемым файлам Windows прямо из оболочки bash, а если вы любите Windows, то вы можете легко получить доступ к двоичным файлам и файлам Linux из PowerShell или CMD.

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

Visual Studio Code

Вам также потребуется расширение VS Code Remote — WSL, которое позволяет использовать контейнер, удаленный компьютер или Windows Subsystem for Linux (WSL) в качестве полнофункциональной среды разработки. Чтобы узнать больше и начать работу, посетите страницу с документацией по VS Code Remote.

На старт, внимание, Linux!

Вместо написания длинного раздела по началу работы с VS Code Remote в WSL, мы решили снять это небольшое видео, демонстрирующее ведение разработки на Python в WSL, с использованием VS Code Remote.

Это не просто изолированный Python, вы можете использовать VSCode Remote и WSL в любом Linux-проекте

При использовании VS Code Remote в WSL команды и расширения запускаются непосредственно в дистрибутиве Linux, поэтому вам не нужно беспокоиться о проблемах двоичной совместимости или других проблемах, связанных с кросс-ОС. Вы можете использовать VS Code в WSL так же, как и в Windows.

VS Code Remote и WSL меняют правила игры, когда дело доходит до разработки под Linux на Windows. Эти инструменты позволяют разрабатывать, запускать и отлаживать тонны приложений Linux непосредственно на вашем компьютере с Windows, предоставляя вам лучшее из среды Windows и Linux.

Если вы желаете узнать больше о Windows Subsystem for Linux и все о командной строке Windows, то следите за обновлениями в этом блоге! А если вам интересно узнать больше о VS Code Remote, вы можете прочитать статью в блоге здесь и обширную документацию, охватывающую архитектуру, здесь.

Мы рады представить вам мощную комбинацию из VS Code Remote и WSL!

Источник

программирование ПО на Linux под Windows

из-за некоторых обстоятельств, мне пришлость установить Ubuntu на свой компьютер, и снести Windows с него (пару дней назад)(т.е. я практически не знаком c Linux). я учусь в университете, и мне приходиться писать много программ. к примеру, реализовать метод Гаусса программно, и неважно на каком языке и среды. в университете в комьютерных классах установлен Windows.

Может решение в платформо-независемом программирование. (только как. )

(Знаком с языками С++, С#, Delphi)

P.S. Надеюсь, что вопрос написал понятно. и ещё я не спец. по программированию, по компьютерам, наверное я чайник

45775:248764200

Используй С++ и QtCreator (есть на обоих платформах). Компилятор под винду minigw.

можно по подробней

42869:784503728

Я когда был в такой ситуации стал писать все курсовые на жаве. Но тут сам смотри, насколько тебе срочно и сможешь ли ты освоить жаву на достаточном уровне до следующей сдачи.

29658: 202236613

Есть есчё и cyqwin, код написанный под него, обычно работает так же и на юнихподобных.

59595:2145330873

52249:1484105682

Источник

В Windows 10 появилась поддержка любых приложений Linux

Анонсы конференции Microsoft Build 2020

В рамках конференции Microsoft Build 2020, которая в этом году впервые полностью проходит в онлайн-формате, компания анонсировала новые инструменты и возможности, которые, в первую очередь, нацелены на разработчиков.

В частности, на мероприятии были представлены Project Reunion, направленный на унификацию разработки приложений для Windows 10, новые терминал и пакетный менеджер для этой ОС, а также существенные улучшения подсистемы Windows для Linux (WSL, Windows Subsystem for Linux).

WSL2 и графические приложения Linux

Усовершенствованная версия подсистема Windows для Linux (WSL2) получит возможность прямого запуска приложений Linux с графическим интерфейсом, а также поддержку аппаратного ускорения с помощью GPU. Таким образом, программы, предназначенные для Linux, смогут работать бок о бок с «родным» ПО Windows 10.

winlin

О разработке второй версии WSL Microsoft впервые сообщила в мае 2019 г. Новое поколение эмулятора для запуска бинарных файлов станет важной частью предстоящего релиза Windows 10 2004, который должен состояться в конце мая 2020 г. Однако некоторые из улучшений, в том числе и поддержка приложений Linux с графическим интерфейсом, не будут доступ доступны на старте, их развертывание будет происходить поэтапно.

Первое поколение Windows Subsystem for Linux было анонсировано в апреле 2016 г. и вошло в состав финальной сборки Windows 10 в августе 2016 г. Это своего рода эмулятор для запуска бинарных файлов Linux непосредственно в среде Windows (WSL есть в Windows 10 и Windows Server 2019), релиз которого способствовал появлению в дальнейшем дистрибутивов Ubuntu, Fedora и Suse в фирменном магазине приложений Microsoft Store. После установки, к примеру, Ubuntu пользователь получает возможность запускать скрипты Bash, пользоваться инструментами командной строки Linux, такими как awk и grep, а также использовать Python, Ruby и Git непосредственно внутри Windows. В марте 2018 г. список доступных дистрибутивов пополнил Kali Linux.

«Родной» эмулятор терминала

Microsoft также сообщила о релизе первой стабильной версии эмулятора терминала Windows Terminal с открытым исходным кодом.

Помимо централизованного доступа к средам Powershell, Cmd и WSL, утилита Windows Terminal обеспечивает поддержку нескольких вкладок, а также выбор темы и кастомизацию для тех, кто хочет точнее настроить программу под свои нужды.

windowsterminal

Для работы Windows Terminal используется движок рендеринга текста на базе DirectX с поддержкой графических ускорителей. Благодаря этому увеличились скорость и плавность вывода текста, а также появилась поддержка юникода. Терминал поставляется со специальным шрифтом Cascadia Code.

Приложение доступно в Microsoft Store и на Github – в виде исходных кодов. Microsoft также планирует выпускать ежемесячные экспериментальные обновления программы, которые можно будет установить отдельно от стабильной версии.

Microsoft представила Windows Terminal в рамках Microsoft Build 2019. Релиз первой официальной версии ожидался в конце 2019 г.

3

В Windows Terminal Microsoft объединила функции Powershell и CMD с доступом к Linux-командам через WSL, а также добавила поддержку вкладок, шрифтов, тем оформления, расширений, эмоджи (смайликов) и рендеринга с помощью графических ускорителей.

Пакетный менеджер в стиле Linux

Microsoft анонсировала новый менеджер пактов для операционной системы Windows 10, который облегчит разработчикам настройку рабочего окружения.

Представленный диспетчер пакетов winget во многом напоминает аналогичное ПО, применяемое в популярных дистрибутивах Linux, к примеру, APT из Debian. Он позволяет находить необходимые приложения в заранее подготовленном репозитории (поддерживать его собирается сама Microsoft), а затем при помощи одной простой команды (“winget install ”) осуществлять их установку.

winget

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

Для работы winget требуется Windows 10 не старше версии 1709. Программу уже сейчас можно загрузить на Github в виде исходных кодов. Первый стабильный релиз запланирован на май 2022 г.

Унификация Win32 и UWP

В рамках проекта «Воссоединение» (Project Reunion), анонсированного Microsoft, компания планирует обеспечить простую интеграцию между программными интерфейсами Win32 и Universal Windows Platform (UWP). предоставляя единую платформу для разработки с поддержкой обратной совместимости.

Другими словами, теперь разработчики смогут создавать такие приложения, которые заработают на любом устройстве с Windows 10, вне зависимости от аппаратной платформы и версии операционной системы. Существующие приложения также будет возможно адаптировать к новой модели.

Первыми компонентами новой платформы стали нативный фреймворк для проектирования интерфейса WinUI 3 и WebView2, позволяющий интегрировать веб-содержимое в любое приложение.

Исходный код обеих библиотек открыт и доступен любому желающему в соответствующих репозиториях Github.

Источник

Разработка Linux программ из Windows

Никогда не имел дело с линукс-программами, а сейчас понадобилось написать сервер, который будет запущен на Ubuntu.

Мне сказали просто

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Разработка приложения под Linux в Windows
Добрый день. Необходимо написать программу, которая будет запускаться в Debian на устройстве Orange.

Разработка многопоточных программ в Windows
Разработать программу вычисления максимального значения в двумерном массиве. Требования.

Разработка под Windows + Linux
Всем привет! Имеется большой проект на с++ в среде Embarcadero Builder и собирается он сейчас.

Написание программ на C++ в Linux под Windows
Извиняюсь за туповатый вопрос, но подскажите, можно ли из Linux (на C++) писать программы для.

сам вообще использую kwrite (это блокнот с подсветкой) и make
раньше юзал kdevelop, пробовал eclipse
в kdevelop проблемы с дебаггером, в eclipse проблемы с настройками

Дело в том что сервер будет удаленный и без админ панели. То есть мне или себе на комп ОС поставить и компилировать или как-то на стороне сервера это научиться делать, через командную строку наверное? Я еще не знаю как выглядит удаленное управление ОС (кажется Ubuntu будет).

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

Буст он и под винду есть, и дока по нему есть.
Хорошо бы вам разобраться что такое демоны в линукс и как их писать
Поставьте себе виртуалку ту же убунту, там и работайте.
Компилировать лучше (но не обязательно) на самом сервере.

Удаленое упроавление: подключаетесь по ssh к тому серверу клиентом (для винды, например,putty) получаете в распоряжение консоль точно такую же как вы имели бы сидя непосредственно на самом сервере. И выполняете нужные команды.
Компилириовать точно так же как и в виндовой командной строке:

Выбор остановил на ubuntu 10.

voral, порасспрашивал админа немного, он сказал что putty это ssh клиент для винды. а ssh это такая крутая штука для администрирования ОС. Сказал что даже программировать можно внутри нее. Подскажи пожалуйста, где можно почитать про SSH и putty? А то замучаю тут всех))

Начинайте здесь http://ru.wikipedia.org/wiki/SSH
По сути вам ssh изучать не надо. Вам надо изучить основы работы в никсовой консоли.

Консоль полученная по ssh абсолютно то же самое, что и консоль которая была бы если бы физически сидели за этим сервером. Так что вам в изучение основ Linux.

Редактировать можно в консльном редакторе (вроде в убунте это по умолчанию nano). А так же можете использовать vim. Последний, правда, может по началу моральную травму любому новичку доставить. Но, если с ним разобраться и настроить для себя. то получите хороший инструмент для разработки там где нет GUI.

Так же поможет в консоли Minigth Commander, что то вроде виндового far. Команда запуска mc. (Если, конечно, он установлен и есть праа на его использование)

Источник

Visual C++ for Linux Development: Практика использования для Windows разработчиков

image loader

Так получилось, что за достаточно долгую карьеру Windows и Embedded разработчика судьба свела меня по серьезному с Linux всего лишь несколько месяцев назад. Нужно было написать не очень сложную консольную программу. На тот момент все мои знания о Linux были взяты из курса по операционным системам в вузе (10 лет назад). Но Stackoverflow, google и опыт позволили достаточно быстро справиться с задачей. В итоге все было написано в Visual Studio Code под Ubuntu 14.04. Правда, приложение под Linux являлось только лишь небольшим клиентом для Windows сервера. Поэтому результат не очень удовлетворял меня, так как был оторван от основного проекта в Visual Studio. И только сейчас я смог перенести код в основной проект с помощью Visual C++ for Linux Development. В процессе мне пришлось решить несколько сопутствующих проблем. Об этом я рассажу под катом.

Итак, Visual C++ for Linux Development — это расширение для Visual Studio, позволяющее писать код в привычной многим IDE под Windows, а отлаживать его прямо в целевой операционной среде — Linux. При этом используется GCC и Remote GDB Debugger. Более подробно о расширении можно прочитать в блоге разработчиков или в переводе на хабре.

Инструкции того, как установить, запустить, настроить и т.д. можно найти по ссылкам выше. У меня с этим не возникло никаких проблем. Вопросы начались со стороны Linux системы. Напомню, что я использую Ubuntu 14.04 LTS и дальнейшее изложение пойдет именно про нее. Если кому интересно, я использовал образ для VirtualBox с сайта osboxes.org.

Также, прошу сильно меня не ругать, я все-таки в Linux далеко не гуру. Лучше подскажите, если что-то можно сделать более оптимальным путем.

Отладка первой программы

Перед тем, как использовать удаленную отладку, нужно установить несколько компонентов на Linux системе. Как указано в инструкциях по ссылке выше, это можно сделать, выполнив в командной строке следующее:

Вызвать терминал в Ubuntu можно комбинацией клавиш Ctrl+Alt+T.

image loader

Я не помню, запускается ли все это хозяйство сразу или нет, по этому на всякий случай можно перезагрузиться.

image loader

Но сразу подключиться из-под Visual Studio у меня не удалось, так как система почему то не пускала меня под единственным пользователем. Пришлось создать другого. Это можно сделать в System Settings → User Account.

image loader

При этом, не забыв нажать кнопку Unlock в верхнем правом углу.

image loader

Настроить подключения в Visual Studio можно в окне Tools → Options

image loader

Теперь можно запустить и отладить тестовый проект.

image loader

При этом в Ubuntu будут скопированы исходники и собранный файл программы (если это не отключено в настройках проекта). Все это можно будет найти в папке /home/ /projects.

В моем случае получилось вот так:

image loader

Запустить программу в самом Linux можно из консоли:

image loader

Теперь вроде бы можно начинать работать. Я перенес исходные файлы в Visual Studio и… ничего у меня не скомпилировалось. Оказалось, что проекту не достает .h файлов из include directories.

Подключаемые файлы

Вместе с Visual C++ for Linux Development устанавливается и множество заголовочных файлов. Их можно найти тут:

Но моему проекту этого не хватило.

В блоге разработчиков по этому поводу сказано следующее:

В будущем эту проблему обещают решить, ну а сейчас крутитесь как хотите. Там же приведен пример с копированием директории всей /usr/include с помощью PuTTY.

Но мне такой путь не нравится. Лично я предпочитаю расшарить папку с заголовочными файлами. Список директория для поиска include файлов можно посмотреть, выполнив в консоли команды

image loader

После этого можно открыть доступ к папке. Как это сделать написано тут.

После этого, сетевые пути можно прописать в Visual Studio как Include Directories.

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

Но в других конфигурациях, действия, описанные мной выше, могут быть запрещены.

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

Дополнительные команды компилятора и линкера

Для этих целей в Visual C++ for Linux Development есть специальная настройка:

image loader

Но у меня почему то она не работает. Проблема эта временная (разработчики уже знают об этом), но решать ее нужно здесь и сейчас. Обойти это ошибку можно используя другую опцию:

image loader

image loader
image loader

Тот же трюк срабатывает и для компилятора.

Запуск отладки с правами администратора

Теперь все скомпилировалось и слинковалось. Однако для работы программы нужны повышенные права, так как она открывает файл устройства ввода. Соответственно, отладку также нужно запускать с правами администратора. Сейчас в Visual C++ for Linux Development эта опция не реализована, но есть одно решение.

Можно повысить в правах gdb и gdbserver командами

Такой совет можно найти в комментариях в посту в блоге разработчиков.

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

Копирование дополнительных файлов

И остался последний момент. Моя программа читает настройки из текстового файла. Он является частью проекта Visual Studio и при компиляции должен копироваться в папку с исполняемым файлом.

Это можно также сделать в настройках проекта:

image loader

Чтобы просто скопировать файл, как остальные исходники, его можно добавить в поле Sources To Copy: @(SourcesToCopyRemotely);config.txt

А скопировать его в другую директорию можно с помощью Additional Sources To Copy.

Формат этой настройки
fulllocationpath1:=fullremotepath1;fulllocationpath2:=fullremotepath2
и т.д.

В моем случае такая строка выглядит так:

Судя по всему, этот путь завязан с этой настройкой:

image loader

Так вот, при компиляции все работает хорошо. Но вот при копировании файлов почему то

воспринимается не как root директория, а просто как имя папки. То есть создается папка с именем «

image loader

Что в итоге

Лично я могу сказать, что Visual C++ for Linux Development extension мне помог. Несмотря на все проблемы и пару багов, он позволил мне быстрее и эффективнее решить задачу, связанную с разработкой под Linux.

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

Источник

Windows 10 уже как несколько лет умеет использовать GNU/Linux-среду и запускать терминальные программы благодаря Windows Subsystem for Linux (WSL). В свежей инсайдерской сборке Windows 10 WSL расширила свои возможности — теперь пользователи могут запускать Linux-приложения с графическим интерфейсом (GUI). Раньше это можно было делать только при помощи сторонних инструментов. Смотрим, насколько хорошо работает новая фича и как её попробовать уже сейчас.

  • В тему: Как выполнять Linux-команды внутри Windows — официальный и сторонние способы

Как работают Linux-программы внутри Windows

По словам разработчиков, X-сервер теперь не приходится запускать вручную. Вместо этого автоматически стартует дистрибутив-компаньон WSLGd, содержащий Wayland, X-сервер и PulseAudio-сервер. С его помощью происходит коммуникация приложений с Windows. Примечательно, что за основу взят дистрибутив CBL-Mariner, разработанный изначально для облачной инфраструктуры Microsoft. После закрытия сессии этот компаньон закрывается.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

Возможность расширить Windows Subsystem for Linux таким образом появилась за счёт полного внедрения ядра Linux в ОС от Microsoft. Приложения полноценно интегрированы: они отображаются на панели задач и в «Пуске», между ними можно переключаться сочетанием Alt+Tab, буфер обмена общий.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

 Одно из преимуществ нативной поддержки GUI-приложений — полноценная работа со звуком. Программы, запущенные в WSL, могут принимать данные с микрофона и выводить аудио. Более того, есть поддержка 3D-графики с ускорением за счёт GPU. Это будет полезно в программах для работы с трёхмерной графикой.

Как запустить Linux-программы в Windows 10

Чтобы запускать GUI-приложения для Linux в Windows 10, надо установить инсайдерскую сборку из Dev-ветки под номером 21364 или выше. После этого потребуется активировать WSL 2 и скачать из Microsoft Store нужный дистрибутив.

Шаг 1. Запустите PowerShell от имени администратора и включите компонент WSL:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Шаг 2. Включите компонент для WSL 2:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

После этого скачайте и установите пакет обновления с официального сайта.

Шаг 3. Перезагрузите компьютер и введите следующую команду:

wsl —set-default-version 2

Шаг 4. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите GNU/Linux-дистрибутив, например, Ubuntu.

Шаг 5. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.

Шаг 6. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.

Шаг 7. Теперь можно устанавливать и запускать Linux-приложения. Для запуска GNU/Linux-окружения открывайте дистрибутив из меню «Пуск» или пишите wsl в PowerShell или командной строке.

Какие приложения я протестировал и как они работают

Я запустил несколько программ: клиент Spotify, браузер Firefox, редактор текста gedit и даже Steam. Все, за исключением последнего, работают отлично. Если ранее с использованием неофициального метода я встречал регулярные вылеты и ошибки, то сейчас могу спокойно пользоваться программами так, как будто они запущены нативно.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

Spotify воспроизводит звук так, как и задумано, мне не пришлось дополнительно настраивать что-либо. Firefox работает быстро и плавно, правда, есть проблема в виде медленного скролла — она встречается и под нативным Линуксом. gedit не только правильно работает с файлами, но и отображает всю файловую систему подсистемы при нажатии кнопки Open.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

Steam обрадовал и разочаровал одновременно. Мне удалось открыть свою библиотеку игр и даже скачать одну из них. Но остальные вкладки остались недоступны: магазин, страница и настройки просто не открывались. Игра art of rally, которую я скачал для проверки, запустилась, но её фреймрейт ограничивался парой FPS. Впрочем, в реальной жизни такой юзкейс не встретится — это было по большей части испытание возможностей WSL.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

Бенчмарк Geekbench 5.4.0 выдал приблизительные результаты как на Windows и нативной Ubuntu, так и на Ubuntu через WSL 2.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

А вот в тесте Compute, использующем GPU, WSL 2 выдал ошибку, несмотря на установленный специальный драйвер.

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

В Windows 10 теперь можно запускать Linux-программы с интерфейсом. Тестирую на удобство и производительность

Вывод

Возможность запускать GUI-приложения прямо в Windows — огромный шаг для системы. Пользователям теперь будет куда проще работать с различными программами, часть из которых эксклюзивна для той или иной системы. А бесшовная интеграция Linux-программ в ОС от Microsoft снижает порог входа и позволяет использовать новую фичу даже не самым опытным юзерам.

  • 10 приложений, которые нужно сразу установить на новый компьютер
  • 5 альтернатив «Проводника» в Windows: они лучше и по функциям, и по дизайну
  • 15 тем для Windows 10, меняющих систему до неузнаваемости. Долго искал четвёртую!
  • 3 программы, которые прокачают Пуск в Windows 10. Он станет удобнее и функциональнее
  • Как выполнять Linux-команды внутри Windows: официальный и сторонние способы

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

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.

Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

kernel=vmlinux
cobd0="rootfs_2gb.img"
cobd1="swap_128mb.img"
root=/dev/cobd0
ro
cofs0="C:"
initrd=initrd.gz
mem=512
eth0=slirp
eth1=tuntap

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

auto eth1
iface eth1 inet static
address 192.168.100.2
netmask 255.255.255.0

Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…

mkdir /mnt/windrvc 

…добавим одну строчку в конец файла /etc/fstab и сохраним его:

/dev/cofs0	/mnt/windrvc	cofs	defaults	0	0

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

export DISPLAY=192.168.100.1:0 

Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:WindowsFonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).

«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

-xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle –dpi 96

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.

apt-get update
apt-get upgrade
apt-get install synaptic lxpanel

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 — это наша TAP-подсеть.

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24
load-module module-detect 
add-autoload-sink output module-waveout sink_name=output 
set-default-sink output

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

apt-get install libpulse0 libasound2-plugins alsa-utils

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio — default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

pcm.!default {type pulse}
ctl.!default {type pulse}
pcm.pulse {type pulse}
ctl.pulse {type pulse}

Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.

aplay /usr/share/sounds/alsa/Front_Center.wav 

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

exec0="X:путьдопапкиpulseaudiopulseaudio.exe"

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

23 Апреля 2021 09:20
23 Апр 2021 09:20

|

Тестировщики-добровольцы впервые получили доступ к сборке Windows 10, в которой реализован запуск приложений для Linux с графическим интерфейсом. Заявлены поддержка звука «из коробки», GPU-ускорения и «бесшовная» интеграция в Windows-окружение.

Linux-приложения в Windows

Microsoft начала тестирование новой функции операционной системы Windows 10, которая позволяет запускать приложения с графическим интерфейсом (GUI). Об этом сообщается в официальном блоге разработчиков Windows 10.

С появлением данной функции в Windows 10 пользователь получает возможность запускать практически любые Linux-программы, в том числе и «тяжелые» – к примеру, мощный симулятор роботов Gazebo. Как отмечает Microsoft, это, в первую очередь, будет полезно разработчикам кроссплатформенного ПО – сборка и тестирования программ станут для них гораздо проще.

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

Приложения для Windows и Linux вперемежку

Разработчики из Microsoft ставят своей целью сделать так, чтобы Linux-приложения «бесшовно» вписывались в окружение Windows. В частности, как утверждается в блоге, окна таких программ корректно отображаются в карусели, которая вызывается по нажатию клавиш Alt+Tab, а также на панели задач и могут сворачиваться в нее. Установленные Linux-приложения наравне с Windows-программами попадают в меню «Пуск». Обмен информацией через буфер обмена работает для программ под Linux и Windows одинаково и в обе стороны.

Стоит отметить, что, судя по опубликованным скриншотам, единообразия в стиле оформления окон разработчикам пока достичь не удалось – Linux-приложение легко отличить по стилю заголовка окна и кнопок управления его состоянием.

Заявлены поддержка воспроизведения звука и записи с микрофона «из коробки» в Linux-приложения. Кроме того, поддерживается аппаратное ускорение с помощью GPU, которое позволяет системе отрисовывать элементы интерфейса плавно и быстро, не нагружая центральный процессор.

Как это работает

Выполнение Linux-приложений c GUI обеспечивает компонент Windows 10, который разработчики называют WSLg – часть подсистемы Windows для Linux (Windows Subsystem for Linux, WSL).

Подсистема впервые появилась в Windows 10 в 2016 г., но позволяла запускать исключительно инструменты, взаимодействие с которыми осуществляется через консоль.

О разработке второй версии WSL Microsoft сообщила в мае 2019 г. Новое поколение подсистемы, в которую было включено уже полноценное ядро Linux, стало важной частью релиза Windows 10 2004, который состоялся в конце мая 2020 г. Тогда же Microsoft анонсировала будущую поддержку запуска Linux-приложений с графическим интерфейсом.

При запуске WSL автоматически стартует виртуальная машина, в которой развернуты дистрибутив по выбору пользователя и специально подготовленное Microsoft ядро Linux. Когда в дело вступает WSLg на арене появляется еще один дистрибутив – системный.

Технологический тренд 2022: как и зачем бизнесу внедрять подход Cloud Native

Цифровизация

Системный дистрибутив основан на CBL-Mariner Linux, внутренней разработке Microsoft, которая также обеспечивает работу облачных сервисов Azure. Это минимальная среда Linux, упакованная в контейнер и достаточная для запуска различных компонентов WSLg, таких как Pulse Audio-, Wayland-, X- и RDP-серверы. Эти компоненты могут взаимодействовать с клиентской частью (GUI-приложение в пользовательском дистрибутиве) через специальные каналы обмена данными (сокеты).

При запуске GUI-приложения Linux автоматически стартует встроенный в Windows 10 RDP-клиент mstsc.exe, который предназначен для подключения к удаленным рабочим столам, и устанавливает соединение с модифицированным RDP-бэкендом композитного менеджера Weston. Через RDP-клиент пользователю и видны запущенные в виртуальной машине GUI-приложения.

Кому доступно и как установить

Первыми оценить новую функцию смогут участники программы предварительного тестирования Windows Insiders. Для этого понадобится загрузить сборку Windows Insider build 21364 и установить WSL c помощью единственной консольной команды: “wsl —install -d Ubuntu”. В данном примере в качестве пользовательского дистрибутива будет установлен Ubuntu. После завершения первого этапа установки WSL потребуется перезагрузка Windows, по завершении которой будет предложено задать имя пользователя и пароль в Linux.

После этого в консоли WSL можно использовать подходящий пакетный менеджер для установки приложений. К, примеру, чтобы инсталлировать популярный медиаплеер Vlc, в Ubuntu понадобится следующая команда: “sudo apt install vlc”. Запуск программы осуществляется простым вводом названия ее исполняемого файла, в данном случае “vlc”.

«Первая Портовая Компания» поделилась опытом внедрения российской ERP

Цифровизация

Если планируется использовать GPU-ускорение, также понадобится драйвер видеокарты. Специальные сборки драйверов, обеспечивающие поддержку DirectX 12 в WSL-окружении, подготовлены AMD, Nvidia и Intel и доступны для загрузки на официальных сайтах этих компаний.

  • Что лучше — ГЛОНАСС или GPS: главные различия систем навигации

Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.

Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!

Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.

Конечная цель

Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.

Кроме того, WSL включает в себя целый ряд утилит для интеграции с Windows — пути в файловой системе автоматически преобразовываются в нужный формат, из-под Linux можно запускать приложения в Windows (но не наоборот!), Linux в WSL имеет доступ ко всем портам и сервисам в Windows.

Для разработчика основное применение WSL сразу же видится в развёртывании среды разработки именно там. Всё же установка многих языков, компиляторов и интерпретаторов, утилит происходит в Linux куда проще — часто одной командой из репозитория. Да и привычная консоль под рукой.

В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.

Установка для Windows 10 x64

Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.

  • Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:

PS C:Windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

  • Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
  • Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:

PS C:Windowssystem32> cd ~
PS C:Userssomebody> Rename-Item .Ubuntu.appx .Ubuntu.zip
PS C:Userssomebody> Expand-Archive .Ubuntu.zip .Ubuntu
PS C:Userssomebody> cd .Ubuntu
PS C:Userssomebody> .ubuntu1804.exe

При первом запуске необходимо задать ваши логин и пароль.

vagrant up

Далее уже вам откроется консоль с Ubuntu.

Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1

К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.

Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:

Vagrant.configure(«2») do |config|
config.vm.box = «bento/ubuntu-18.04»
config.vm.synced_folder «c:/», «/windows»
# Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
config.vm.network :forwarded_port, host: 5432, guest: 5432
config.vm.provider «virtualbox» do |vb|
vb.memory = 2048
end
end

После чего в том же PowerShell или cmd выполните команду:

vagrant up

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

Устанавливаем всякие скучные вещи

Разворачиваем наше окружение под Python/JS/Go.

:~$ sudo apt update
:~$ sudo apt install build-essential
:~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
:~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
:~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
:~$ source ~/.bashrc
:~$ pyenv install 3.7.2
:~$ pyenv global 3.7.2

Быстро проверяем работоспособность версий и, собственно, версии:

:~$ nodejs -v
v8.10.0
:~$ go version
go version go1.10.4 linux/amd64
:~$ python -V
Python 3.7.2
:~$

Неужели всё уже работает?

Конечно нет.

Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).

И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:

{
«terminal.integrated.shell.windows»: «C:\Windows\System32\wsl.exe»,
# Добавьте сюда иные настройки по вашему усмотрению
}

На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.

  • Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
  • Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
  • Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
  • Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
  • Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:

export DISPLAY=:0

  • После этого выполните команду source ~/.bashrc для применения изменений.
  • Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.

:~$ sudo apt install -y xfce4
:~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted

  • Скачайте установщик Visual Studio Code с официального сайта.
  • Установите зависимости и сам VS Code:

:~$ sudo apt install libgtk2.0-0 libxss1 libasound2
:~$ sudo dpkg -i <code deb file>
:~$ sudo apt install -f

  • Запустите VS Code при помощи команды code.

Вот теперь работает :) Ещё более кратко и по сути расписано вот тут.

Однако до совершенства есть ещё один штрих.

{

«window.titleBarStyle»: «native»,

}

Добавьте приведённую выше настройку в User Settings. В противном случае окно VS Code не будет ресайзиться.

А ты ещё докажи, что работает

Разворачивается оно стандартно для подобного рода проектов.

# You are on a project root
:~$ python -m venv env/
:~$ source env/bin/activate
:~$ pip install -r requirements.txt
:~$ cd frontend
:~$ npm install
:~$ ng build outDir=../backend/microblog/static
:~$ cd ../backend
:~$ python manage.py runserver

Отличия в настройке между Vagrant и WSL

Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.

Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.

Итоги

Но стоит заметить, что даже подобные извращения могут помочь многим людям, вынужденно сталкивающимися с… не всегда очевидным поведением новой технологии от Microsoft.

Понравилась статья? Поделить с друзьями:
  • Лучший современный браузер для windows xp
  • Магазин windows 8 не удалось подключиться к магазину
  • Льы активатор для office 2019 windows 10 ltcs скачать
  • Лучший системный шрифт для windows 10
  • Магазин windows 10 скачать бесплатно для ноутбука