Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Windows linux subsystem: Установка WSL в Windows 10 | Microsoft Docs

Содержание

вопросы и ответы о подсистема Windows для Linux

Что такое подсистема Windows для Linux (WSL)?

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

Чтобы узнать больше, ознакомьтесь со страницей сведений.

Для кого предназначена WSL?

Это, в первую очередь, средство для разработчиков, особенно веб-разработчиков, работающих над проектами с открытым кодом или развертывания в среде Linux Server. WSL предназначен для тех, кто любит использовать Bash, общие средства linux ( sed , и awk т. д.) и платформы linux (Ruby, Python и т. д.), но также используют средства Windows производительности.

Что можно сделать с помощью WSL?

WSL позволяет запускать Linux в оболочке bash с выбором распространения (Ubuntu, Debian, OpenSUSE, Kali, Alpine и т. д.). С помощью Bash можно запускать программы командной строки и приложения Linux. Например, введите lsb_release -a и нажмите клавишу ВВОД. Вы увидите сведения о текущем запущенном дистрибутиве Linux.

Вы также можете получить доступ к файловой системе локального компьютера из оболочки bash для Linux — вы найдете локальные диски, подключенные к /mnt папке. Например, диск C: подключается в /mnt/c.

Опишите типичный рабочий процесс разработки с использованием WSL

Подсистема WSL нацелена на аудиторию разработчиков и предназначена для использования в рамках внутреннего цикла разработки. Предположим, Семен создает конвейер CI/CD (непрерывной интеграции и непрерывной поставки) и хочет сначала протестировать его на локальном компьютере (ноутбуке) перед развертыванием в облаке. Семен может включить WSL (а также WSL 2, чтобы повысить скорость и производительность), а затем использовать подлинный экземпляр Linux Ubuntu на локальном компьютере (ноутбуке) с любыми командами Bash и инструментами по своему выбору. После проверки конвейера разработки в локальной среде Семен может отправить этот конвейер CI/CD в облако (т. е. в Azure), сделав его контейнером Docker и отправив в облачный экземпляр, где он будет выполняться на рабочей виртуальной машине Ubuntu.

Что такое Bash?

Bash — это популярная текстовая оболочка и язык команд. Это оболочка по умолчанию, входящая в состав Ubuntu и других дистрибутивов Linux, а также в macOS. Пользователи могут вводить команды в оболочке для выполнения сценариев и (или) команд и инструментов, чтобы выполнять множество задач.

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

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

Зачем использовать WSL вместо Linux в виртуальной машине?

WSL требует меньше ресурсов (ЦП, памяти и хранилища), чем полноценная виртуальная машина. WSL также позволяет запускать программы командной строки и приложения Linux вместе с приложениями командной строки, классическими приложениями и приложениями Store для Windows, а также позволяет обращаться к файлам Windows в Linux. Это позволяет использовать приложения для Windows и программы командной строки Linux для одного и того же набора файлов, если требуется.

Зачем использовать, например, Ruby в Linux, а не Ruby в Windows?

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

Многие языки, такие как Ruby и Node, часто переносятся в Windows и работают отлично. Тем не менее, не все владельцы библиотек Ruby Gem или node/NPM переносят свои библиотеки для поддержки Windows, и многие из них имеют зависимости, относящиеся к Linux. Это часто может привести к тому, что системы, созданные с помощью таких инструментов и библиотек, становятся подвержены ошибкам во время сборки, а иногда — во время выполнения, либо не работают в Windows требуемым образом.

Это лишь часть проблем, из-за которых многие пользователи просят корпорацию Майкрософт улучшить программы командной строки Windows, а мы стали партнерами с Canonical, чтобы обеспечить выполнение собственных программ командной строки Linux и Bash в Windows.

Что это означает для PowerShell?

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

Дополнительные сведения см. в блоге группы разработчиков PowerShell: Bash for Windows: Why it’s awesome and what it means for PowerShell (Bash для Windows: почему это здорово и что это значит для PowerShell)

Какие номера SKU Windows входят в WSL?

Подсистема Windows для Linux доступна для юбилейного обновления Windows 10 и Windows 10 Creators Update для настольных компьютеров (а также для более поздних версий).

Начиная с версии Fall Creators Update компонент WSL будет доступен как для номеров SKU настольных компьютеров, так и для номеров SKU серверных продуктов Windows.

Какие процессоры поддерживает WSL?

WSL поддерживает процессоры x64 и ARM.

Как получить доступ к моему диску C?

точки подключения для жестких дисков на локальном компьютере создаются автоматически и обеспечивают простой доступ к Windows файловой системе.

/mnt/<drive letter>/

Пример использования — команда cd /mnt/c для доступа к диску C:\

Как настроить диспетчер учетных данных Git? (Как использовать разрешения Windows Git в WSL?)

Диспетчер учетных данных Git позволяет выполнять проверку подлинности на удаленном сервере Git, даже если используется сложная модель проверки подлинности, например Azure Active Directory или двухфакторная проверка подлинности. Диспетчер учетных данных Git интегрируется в поток проверки подлинности для таких служб, как GitHub, и после проверки подлинности в поставщике услуг размещения запрашивает новый маркер проверки подлинности. Затем маркер сохраняется в диспетчере учетных данных Windows с поддержкой высокого уровня безопасности. В дальнейшем диспетчер учетных данных Git можно использовать для взаимодействия с поставщиком услуг размещения без повторной проверки подлинности. Он просто обратится к маркеру в диспетчере учетных данных Windows.

Чтобы настроить диспетчер учетных данных Git для использования с дистрибутивом WSL, откройте дистрибутив и введите такую команду:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

Теперь при всех операциях Git, выполняемых в дистрибутиве WSL, будет использоваться диспетчер учетных данных. Если у вас уже есть кэшированные учетные данные для узла, к ним будет выполняться доступ из диспетчера учетных данных. В противном случае отобразится диалоговое окно с запросом учетных данных, даже если вы работаете в консоли Linux.

Поддержка этих действий зависит от взаимодействия между подсистемой Windows для Linux и собственно ОС Windows.

Как использовать файл Windows в приложении Linux?

Одним из преимуществ WSL является возможность доступа к файлам с помощью приложений или инструментов Windows и Linux.

WSL подключает несъемные диски вашего компьютера к папке /mnt/<drive> в ваших дистрибутивах Linux. Например, диск C: подключается в /mnt/c/.

Используя подключенные диски, можно изменить код, например, в C:\dev\myproj\ с помощью Visual Studio или VS Code, а также выполнить сборку или тестирование этого кода в Linux, воспользовавшись этими же файлами в /mnt/c/dev/myproj.

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

Отличаются ли файлы на диске Linux от файлов на подключенном диске Windows?

  1. Файлы в корне Linux (т. е. /) контролируются подсистемой WSL, которая имитирует поведение Linux, включая, помимо прочего, следующее:

    • файлы, содержащие в имени файла недопустимые знаки для Windows;
    • символические ссылки, созданные для пользователей без прав администратора;
    • изменение атрибутов файла с помощью chmod и chown;
    • учет регистра в именах файлов и папок.
  2. Файлы на подключенных дисках контролируются Windows и имеют следующие характеристики:

    • поддерживают учет регистра;
    • все разрешения заданы для наилучшего отражения разрешений Windows.

Почему при выполнении apt-get upgrade возникает много ошибок?

Некоторые пакеты используют функции, которые еще не реализованы. Например, udevпока не поддерживается и вызывает несколько ошибок apt-get upgrade.

Чтобы устранить проблемы, связанные с udev, выполните следующие действия.

  1. Введите приведенный ниже код в /usr/sbin/policy-rc.d и сохраните изменения.

    #!/bin/sh
    exit 101
    
  2. Добавьте разрешения на выполнение в /usr/sbin/policy-rc.d

    chmod +x /usr/sbin/policy-rc.d
    
  3. Выполните следующие команды.

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

Как удалить дистрибутив WSL?

Чтобы удалить дистрибутив из WSL и удалить все данные в дистрибутив Linux , можно запустить wsl --unregister <distroName> , где — это имя дистрибутив Linux, которое можно просмотреть из списка в wsl -l команде.

Кроме того, вы можете удалить приложение дистрибутив Linux на компьютере так же, как и любое другое приложение Магазина.

Почему проверка связи порождает создает ошибки «Отказ в разрешении»?

В сборках WSL, предшествующих сборке 14926, для проверки связи нужно запустить WSL из консоли с повышенными привилегиями. Эта проблема была устранена в сборке 14926 и более поздних сборках.

Как запустить сервер OpenSSH?

Для запуска OpenSSH в WSL требуются привилегии администратора в Windows. Чтобы запустить сервер OpenSSH, запустите Bash для Ubuntu в Windows от имени администратора или запустите bash.exe из командной строки или сеанса PowerShell с привилегиями администратора.

Почему при попытке установки появляется сообщение «Ошибка:0x80040306»?

WSL не поддерживает выполнение в устаревшей консоли. Чтобы отключить устаревшую консоль, выполните следующие действия.

  1. Откройте WSL, PowerShell или командную строку.
  2. Щелкните правой кнопкой мыши строку заголовка и выберите «Свойства», затем снимите флажок «Использовать прежнюю версию консоли».
  3. Нажмите кнопку «ОК».

Почему при запуске bash.exe после обновления Windows появляется сообщение «Ошибка: 0x80040154»?

Компонент «Подсистема Windows для Linux» может быть отключен во время обновления Windows. В этом случае данную функцию Windows необходимо включить заново. Инструкции по включению компонента «Подсистема Windows для Linux» можно найти в руководстве по установке.

Как изменить язык интерфейса WSL?

Установщик WSL попытается автоматически изменить языковой стандарт Ubuntu в соответствии с языковым стандартом установки Windows. Если это нежелательно, можно выполнить приведенную ниже команду, чтобы изменить языковой стандарт Ubuntu после завершения установки. Чтобы это изменение вступило в силу, потребуется повторно запустить bash.exe.

В приведенном ниже примере языковой стандарт изменяется на EN-US.

sudo update-locale LANG=en_US.UTF8

Почему у меня нет доступа к Интернету из WSL?

Некоторые пользователи сообщили о проблемах с определенными приложениями брандмауэра, блокирующими доступ к Интернету в WSL. Сообщили о следующих брандмауэрах:

  1. Kaspersky;
  2. AVG;
  3. Avast.
  4. Symantec Endpoint Protection
  5. F-Secure

В некоторых случаях отключение брандмауэра обеспечивает доступ. В некоторых случаях доступ блокируется просто при наличии установленного брандмауэра.

Как получить доступ к порту из WSL в Windows?

WSL использует IP-адрес Windows, так как работает в Windows. Поэтому вы можете получить доступ к любым портам на localhost. Например, если вы предоставляете веб-содержимое через порт 1234, то вы можете открыть адрес https://localhost:1234 в браузере для Windows.

Как выполнить резервное копирование дистрибутивов WSL или переместить их с одного диска на другой?

Лучший способ резервного копирования или переноса дистрибутивов — использование команд импорта и экспорта, доступных в Windows версии 1809 и более поздних версиях. Вы можете экспортировать весь дистрибутив в архив tarball с помощью команды wsl --export. Затем этот дистрибутив можно импортировать обратно в WSL с помощью команды wsl --import, которая позволяет присвоить имя новому расположению на диске для импорта. Благодаря этому можно создавать резервные копии и сохранять состояния дистрибутивов WSL или переносить дистрибутивы.

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

Куда можно отправить отзыв?

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

Если у вас возникли технические проблемы или вы хотите запросить новые функции, перейдите к нашему средству записи проблем GitHub:

Если вы хотите оставаться в курсе последних новостей WSL, используйте следующее:

Опыт настройки и использования WSL (подсистемы Linux в Windows 10) / Хабр

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

Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива). Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux’овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива. В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов. Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

apt install nano

sudo вводить не требуется, так как мы уже под root’ом. Отредактируем файл /etc/apt/sources.list:

nano /etc/apt/sources.list

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

deb http://mirror.yandex.ru/ubuntu/ xenial main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial main universe  restricted

deb http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted

deb http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted
deb-src http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

apt update && apt upgrade

После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:

addgroup --gid 1000 user1
adduser --home /home/user1 --shell /bin/bash --uid 1000 -G user1,sudo user1

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл ~/.bashrc:

cd /home/user1
su user1
passwd
nano .bashrc

Мой базовый .bashrc выглядит так

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm|xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    if [[ ${EUID} == 0 ]] ; then
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
    else
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
    fi
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Все, подсистема готова к использованию… почти…

Установка X-сервера, Xfce и прочих GUI’шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно. Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init’ом (который кстати не заменить). Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket’ы и все спокойно общается через них.

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root’а. Первым делом настроим русские локали:

locale-gen ru_RU
locale-gen ru_RU.UTF-8
update-locale

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

apt install -y xfce4-session xfce4-notifyd xfce4-appfinder xfce4-panel xfce4-quicklauncher-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfce4-settings xfce4-terminal xfce4-taskmanager mousepad

Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:

  1. config.xlaunch — файл настроек для VcXsrv
    <?xml version="1.0" encoding="UTF-8"?>
    <XLaunch
    WindowMode="MultiWindow"
    ClientMode="NoClient"
    LocalClient="False"
    Display="0"
    LocalProgram="xcalc"
    RemoteProgram="xterm"
    RemotePassword=""
    PrivateKey=""
    RemoteHost=""
    RemoteUser=""
    XDMCPHost=""
    XDMCPBroadcast="False"
    XDMCPIndirect="False"
    Clipboard="True"
    ClipboardPrimary="True"
    ExtraParams=""
    Wgl="True"
    DisableAC="False"
    XDMCPTerminate="False"
    />
  2. x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

    WScript.CreateObject("Shell.Application").ShellExecute "wsl", "cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session", "", "open", 0

    Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session, папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим. Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)

  3. start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
    start config.xlaunch
    wscript x-run.vbs

Далее можем запустить наш start.bat и настроить панель Xfce под себя. Замечу, что здесь я наткнулся на еще одну проблему — панель прекрасно отображается поверх всех окон, но вот выделить себе место, как панель на рабочем столе Windows она не может. Если кто знает решение данной проблемы, поделитесь в комментариях.

Ну и под конец данной части, скриншот моего рабочего стола:

Взаимодействие окружения Windows и окружения подсистемы Linux

Запускать Linux приложения напрямую из Windows можно через те же 3 команды — bash, wsl или ubuntu. Не забываем, что по умолчанию запуск идет от root, поэтому стоит понижать привилегии через su, так же нужно не забывать передавать переменную окружения DISPLAY=:0 если приложению требуется X-сервер. Так же нужно менять папку, из которой должно работать приложение, через cd внутри WSL. Пример, посчитаем md5 для file.txt на диске D средствами Linux’овой md5sum:

wsl md5sum < d:\file.txt

Доступ к файловой системе Linux так же имеется, лежит она в %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs. Читать таким образом файлы можно, а вот писать — не желательно, можно поломать файловую систему. Думаю проблема в том, что Windows не умеет работать с правами и владельцами файловой системы Linux.

Из Linux так же можно запускать Windows приложения. Просто запускаем exe-шник и он выполнится в основной системе.

Диски Windows монтируются в /mnt в соответствии со своими буквами в нижнем регистре. Например диск D будет смонтирован в /mnt/d. Из Linux можно свободно читать и писать файлы Windows. Можно делать на них симлинки. Права у таких файлов всегда будут 0777, а владельцем будет root.

Сетевой стек у подсистемы общий с Windows. Сервер поднятый в Linux будет доступен на localhost в Windows и наоборот. Однако unix-domain-socket для Windows будет просто пустым файлом, работать с этим можно только внутри Linux. Выход во внешнюю сеть у Linux так же есть, в том числе можно слушать порты, если этого не запрещает фаервол.

ifconfig в Linux и ipconfig в Windows выдают одинаковую информацию о сетевых интерфейсах.

Из диспетчера задач Windows можно спокойно прибить процесс внутри подсистемы Linux. Однако Linux увидит только свои процессы.

Особенности, ограничения и подводные камни

Ядро Linux в WSL не настоящее. Это всего лишь прослойка-эмулятор, которая часть Linux-специфичных задач выполняет сама, а часть проксирует напрямую в ядро winNT. Большая часть api в нем реализована, но не все. Свое ядро собрать не получится, как и не получится подключить модули ядра (.ko, Kernel Object).

Init процесс у WSL тоже свой и заменить его, например, на system.d не выйдет. У меня давно есть желание написать менеджер демонов на go, который бы работал с файлами юнитов system.d и предоставлял бы схожий интерфейс, да все руки не доходят.

Нет поддержки openFUSE, соответственно примонтировать виртуальную или удаленную файловую систему не получится. Так же нельзя сделать mount из файла, mount вообще ничего кроме bind здесь, похоже, не умеет.

Так же нет никакой возможности разбить файловую систему Linux на несколько разделов/дисков.

Прямой доступ к железу практически отсутствует. Все таки мы находимся в песочнице Windows, а не в полноценном Linux. /dev и /sys заметно пустуют, в них лишь проц да виртуальные устройства. Доступ к GPU — только через X-сервер, напрямую — никак, так что нейросети обучать придется в Windows.

В JS разработке столкнулся с тем, что electron.js отказался запускаться в WSL, пришлось дублировать окружение node.js в Windows.

Итоги

Статья получилась довольно длинной, надеюсь, что она окажется еще и полезной.

WSL для меня лично оказался инструментом вполне юзабельным, решающим мои задачи fullstack backend разработчика. Виртуалка с Linux за полгода так и не понадобилась. По общим ощущениям Windows+WSL намного функциональнее, чем Linux+Wine.

Пока писал статью, обнаружил, что в Microsoft Store появилась сборка WSL с Debian 9.3, данный дистрибутив мне более симпатичен, чем Ubuntu, поэтому буду пробовать ставить.

Отныне Linux можно установить внутрь Windows 10 одной командой

|

Поделиться


Microsoft максимально упростила установку подсистемы Linux для Windows (WSL) в операционной системе Windows 10. Теперь для этого достаточно одной простейшей консольной команды. Для «продвинутых» пользователей разработчики из Microsoft предусмотрели еще несколько интересных функций, в частности, по обновлению ядра Linux и откату его к предыдущей версии.

Linux в Windows одной командой

Пользователи операционной системы Windows 10 получили возможность активировать поддержку запуска Linux-приложений с помощью всего одной команды. Соответствующий анонс опубликован в блоге разработчиков Microsoft.

Работу приложений для Linux в Windows 10 обеспечивает так называемая подсистема Linux для Windows (Windows Subsystem for Linux, WSL). Ранее ее установка осуществлялась в несколько этапов (включая установку пакетов из интернета и активацию допкомпонентов) в соответствии с руководством, размещенном на сайте Microsoft.

Доступ к новой возможности могут получить все желающие. Для этого понадобится обновить ОС хотя бы до версии 2004 (майское обновление 2020 г.) или установить предварительное накопительное обновление KB5004296 через «Центр обновления Windows». Последнее также включает исправления некоторых проблем, касающихся запуска компьютерных игр.

«Мы рады сообщить, что эта функциональность теперь официально перенесена в Windows 10 версии 2004 и выше, что значительно упростит установку WSL в этих сборках», – говорится в сообщении.

Установка и использование WSL

В Windows 10 версии 2004 и более новых для установки WSL теперь достаточно запустить приложение «Командная строка» или, к примеру, более продвинутый PowerShell с правами администратора, и ввести простую команду: “wsl.exe —install”.

Microsoft максимально автоматизировала процесс настройки поддержки WSL в Windows 10

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

Если пользователя той или иной причине не устраивает Ubuntu, с помощью команды “wsl.exe —list —online” можно вывести в консоль список доступных альтернатив. Выбрав наиболее подходящий дистрибутив, его можно установить, введя команду “wsl —install —d <название_дистрибутива>». Таким способом допускается установка как основного (по умолчанию), так и нескольких дополнительных дистрибутивов Linux.

Кроме того, разработчики из Microsoft предусмотрели несколько команд для управления ядром Linux в WSL2. К примеру, команда “wsl —update” позволяет обновить его до самой последней доступной версии, а “wsl —update rollback” – откатить до предыдущей.

Наконец, команда “wsl —status” выводит на экран сведения о конфигурации WSL на данной машине, в том числе дистрибутив по умолчанию и версию ядра Linux.

Краткая история WSL

WSL появилась в Windows 10 в 2016 г. и представляла из себя слой совместимости, который позволял пользователям Windows 10 из консоли запускать программы, скомпилированные под Linux в формат ELF.

Как устроены российские UC-платформы

ПО

В 2019 г. стало известно о работе Microsoft над второй версией подсистемы – WSL2. Она включает полноценное ядро Linux, обеспечивает поддержку всех системных вызовов и до 20 раз более высокую скорость работы с файловой системой. Добиться всего этого получилось за счет использования легковесной виртуальной машины на базе технологии Hyper-V.

В мае 2020 г. Microsoft анонсировала обновление WSL2, которое позволяет запускать из-под Windows любые Linux-программы, в том числе и с графическим интерфейсом. Тогда же было объявлено, что в конечном счете установка подсистемы Linux для Windows будет сведена к вводу единственной команды.

В апреле 2021 г. добровольцы – участники программы Windows Insider получили возможность протестировать WSLg – так в Microsoft назвали новый компонент, ответственный за выполнение графических приложений Linux в Windows. Он упакован в компактный контейнер на базе собственного дистрибутива Linux корпорации Microsoft под названием CBL-Mariner Linux и ряда компонентов, таких как Pulse Audio-, Wayland-, X- и RDP-серверы. Они взаимодействуют с пользовательским дистрибутивом (по умолчанию Ubuntu) через сокеты, а для получения визуальной информации от Linux-приложения и вывода ее на экран в Windows применяется встроенный в ОС RDP-клиент mstsc.exe.

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

Кроме того, заявлена поддержка аппаратного ускорения вывода изображения с помощью графического процессора (GPU). Данная функция позволяет системе отрисовывать элементы интерфейса плавно и быстро, не нагружая центральный процессор, однако требует специальной версии графических драйверов.

В июле 2021 г. Microsoft выпустила CBL-Mariner 1.0 – первую стабильную сборку собственного дистрибутива, который, в частности, используется в работе облака Azure.

Дмитрий Степанов

Linux в среде Windows 10.








   
Начиная с версии Windows 10 Build 14251, в набор стандартных компонентов системы была добавлена Подсистема Windows для Linux (Windows Subsystem for Linux или WSL). Главное назначение WSL – создать программный слой в среде Windows 10 для обеспечения функционирования приложений Linux. Первоначально подсистема поддерживала только дистрибутив Ubuntu 14.04, образ которого можно было загрузить через магазин Microsoft Store. Затем количество поддерживаемых дистрибутивов увеличилось, и продолжает увеличиваться, включая наиболее популярные дистрибутивы. Установка выполняется таким же образом, как и стандартное приложение, без применения виртуальных машин или сторонних пакетов эмуляции. Пользователь Windows 10 в пару кликов мышкой устанавливает операционную систему семейства Linux без графической оболочки, функционирующую на компьютере подобно стандартному приложению, загруженному из Microsoft Store.

Подсистема WSL позволяет:

1. Выбрать предпочитаемый дистрибутив из магазина Windows (Microsoft Store)

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

3. Выполнять скрипты командной оболочки и использовать популярные программные средства Linux, как ssh, MySQL, Apache, языки программирования C/C++, Ruby, Python и т.п.

4. Устанавливать дополнительное программное обеспечение с использованием собственного менеджера пакетов выбранного дистрибутива GNU/Linux.

5. Использовать совместное функционирование приложений обеих операционных систем и использование общих ресурсов.

Подсистема WSL продолжает развиваться, и постепенно трансформировалась в новую версию, получившую обозначение WSL 2, отличающуюся повышенным быстродействием, улучшенным взаимодействием с компьютерным оборудованием и компонентами Windows, новой архитектурой на базе реального ядра Linux, специально адаптированного для использования в WSL 2. Кроме того, данное ядро Linux распространяется с открытым исходным кодом (Open Source), который можно загрузить на странице проекта
github.com-WSL2-Linux-Kernel

WSL 2 является очередным шагом в технологии виртуализации, позволившим использовать ядро Linux, выполняемое под управлением относительно небольшой утилиты, обеспечивающей высокий уровень интеграции между Windows и Linux и значительное повышение быстродействия операций ввода-вывода, системных вызовов и приложений. По некоторым данным, распаковка zip-архивов в среде WSL 2 выполняется в 15-20 раз быстрее, а сборка пакетов – в 2-5 раз быстрее чем в WSL 1.

По умолчанию, компонент Подсистема Windows для Linux (WSL) выключен. Для включения можно воспользоваться апплетом Панели управления Программы и компоненты —
Включение или отключение компонентов Windows
:

После включения WSL, нужно выполнить перезагрузку Windows.

Для включения WSL и проверки ее состояния можно использовать командную оболочку Power Shell, запущенную на выполнение от имени Администратора. Проверить состояние подсистемы можно командой:

Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Пример отображаемой информации:


FeatureName : Microsoft-Windows-Subsystem-Linux
DisplayName : Подсистема Windows для Linux
Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
RestartRequired : Possible
State : Enabled

CustomProperties :

ServerComponent\Description : Предоставляет службы и среды для запуска собственных средств и оболочек Linux в пользовательском режиме в Windows.
ServerComponent\DisplayName : Подсистема Windows для Linux
ServerComponent\Id : 1033
ServerComponent\Type : Feature
ServerComponent\UniqueName : Microsoft-Windows-Subsystem-Linux
ServerComponent\Deploys\Update\Name : Microsoft-Windows-Subsystem-Linux


Строка State : Enabled указывает на то, что подсистема Windows для Linux включена.

Для включения подсистемы WSL посредством Power Shell можно использовать команду:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Для отключения WSL:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Выбор дистрибутива и установка Linux


После включения подсистемы WSL и перезагрузки Windows 10 можно приступить к установке ОС Linux. В прежних версиях подсистемы Windows для Linux для настройки дистрибутива Linux использовалась утилита командной строки lxrun.exe. На сегодняшний день она считается устаревшей и в дальнейшем будет исключена из подсистемы WSL. Дистрибутивы можно установить из стандартного Магазина Windows (Microsoft Store):

При необходимости, можно получить более подробную информацию о конкретном дистрибутиве, например Kali:

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

После загрузки и начальной установки дистрибутива, можно выполнить его запуск нажатием кнопки Запустить

После запуска начнется развертывание полученного дистрибутива Linux в подсистеме WSL. В процессе начальной установки и настройки потребуется ввести имя пользователя и пароль.

После успешной установки, в консоли отобразится стандартное приглашение командной строки. К этому моменту будут выполнены настройки сетевых интерфейсов, имени узла, клиента DNS и т.п а также смонтированы логические диски ОС Windows 10 (стандартно — /mnt/c — для диска C:, /mnt/d — для диска D: и т.д). Дальнейшее применение установленного Linux зависит от его предназначения и неизбежно потребует установки дополнительных приложений с использованием стандартных средств данного дистрибутива, при чем – из командной строки. Как и в случае с отдельным компьютером с ОС Linux, первым шагом в применении нового дистрибутива будет освоение методов установки и удаления программ.

На сегодняшний день, в Microsoft Store имеется несколько дистрибутивов Linux – Ubuntu ( в том числе и с длительной поддержкой), Kali, Debian и Suse (в том числе и серверные дистрибутивы). Очевидно, что этот набор будет постепенно расширяться. Наиболее востребованным дистрибутивом, по статистике Microsoft Store, является Ubuntu. После завершения установки, запуск программы можно выполнить в командной строке, введя:

ubuntu

Либо Win+Rubuntu

Либо с использованием ярлыка из меню кнопки ПускUbuntu.

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

В дистрибутивах на основе Debian (Ubuntu) имеется стандартная утилита apt для работы с системой управления программными пакетами APT (Advanced Packaging Tool). Данная утилита и ее производные (apt-cache, apt-get) используются для установки новых программных пакетов, удаления существующих, обновления уже установленных, а также для обновления всей операционной системы. Примеры использования:

apt –h — отобразить подсказку по использованию apt
apt-cache –h — отобразить подсказку по использованию apt-cache
apt-get –h — отобразить подсказку по использованию apt-get

Более подробную подсказку можно получить из комплекта документации man-страниц:

man apt

sudo apt-get update — обновить список установленных программных пакетов в соответствии с источниками, заданными в файле /etc/apt/sources.list.

sudo apt-get upgrade — обновить все программные пакеты, существующее в системе на данный момент времени.

sudo apt-get install mc — установить файловый менеджер Midhight Commander

apt-get remove —purge mc — удалить файловый менеджер Midhight Commander и все его конфигурационные файлы (параметр —purge)

Некоторые характерные особенности WSL

Несмотря на то, что WSL 2 стала значительным шагом развития подсистемы, в ней остаются множественные проблемы не позволяющие получить полноценную ОС семейства Linux в среде Windows. Хотя, изначально, при разработке подсистемы WSL, такая задача и не ставилась, ведь требовалось всего лишь средство для разработчиков, создающее универсальную, быстродействующую и привычную среду в рамках ОС Windows. Если постановка задачи не изменится, то очевидно, подсистема WSL никогда не заменит ”настоящий” Linux, хотя и приблизится к нему вплотную.

В частности, в реализации WSL на вторую половину 2019 г. нет возможности установки модулей ядра, не реализован стандартный для Linux механизм сокетов, нет полноценного взаимодействия между процессами и т.д. и т.п. Как результат – нет графической оболочки пользователя, нет возможности использования приложения, требующих наличие драйвера ядра, не работает огромное количество системных служб. Часть проблем будет решаться по мере выхода новых версий WSL, либо с применением альтернативных решений, в том числе и от сторонних разработчиков, как например WSL SSH Launcher, который можно загрузить из Microsoft Store и использовать для запуска сервиса ssh в среде WSL. Программа платная ($0.99), но имеется и бесплатная пробная версия.

Страницы с описанием и примерами команд подсистемы WSL:

BASH — командная оболочка BASH в подсистеме Windows для Linux (WSL).

WSL — выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

WSLconfig — конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10

Если вы желаете помочь развитию проекта, можете воспользоваться кнопкой «Поделиться» для своей социальной сети













В начало страницы       |       На главную страницу сайта

как поднять Windows Subsystem for Linux в Windows 10 — «Хакер»

Windows Subsystem for Linux — это слой запуска приложений для Linux, который появился в Windows 10. Мы уже писали о том, как это работает, и даже делали виртуальный десктоп, а здесь вкратце повторим, как этим пользоваться.

WSL — штука очень полезная, и, даже если ты раньше не был знаком с Linux, рекомендую ее изучить. Открыв консоль и провалившись в bash, ты получаешь доступ к файловой системе Windows и можешь работать с файлами. Здесь работает менеджер пакетов APT, через который удобно ставить огромное количество утилит, да и сами они часто упрощают жизнь.

Сейчас в WSL стало возможно использовать Ubuntu 16.04, а также многие полезные вещи. Среди них:

  • утилиты командной строки apt, sed, grep, awk, top, tmux, ssh, scp и другие;
  • оболочки bash, zsh, fish и прочие;
  • инструменты разработки: Vim, Emacs, nano, Git, GDB и другие;
  • языки и платформы: Node.js и npm, Ruby и Gems, Java и Maven, Python и Pip, C/C++, C# и .NET Core и NuGet, Go, Rust, Haskell, Elixir/Erlang и другие;
  • системы и сервисы: sshd, Apache, lighttpd, nginx, MySQL, PostgreSQL и их собратья.

Полный список нововведений, которые появились после обновления, можешь посмотреть на сайте Microsoft.

Для установки WSL нужно сделать следующие шаги. Сперва включаем режим разработчика в Windows.

Включение режима разработчика

Теперь ищем необходимый компонент в настройках. Для этого в строке поиска вбиваем Windows features.

Ищем Windows features

Опускаемся в самый низ и включаем пункт Windows Subsystem for Linux (Beta).

Выбираем Windows Subsystem for Linux (Beta)

Теперь дело за малым — остается установить систему и проверить, что все работает. Для этого нужно открыть консоль и выполнить команду bash, после чего дождаться запуска.

Если у тебя уже установлен Ubuntu 14.04, но хочется поновее, выполняй деинсталляцию, а потом ставь Linux заново. Это можно сделать из консоли.

lsb_release -a 
lxrun /uninstall /full /y
lxrun /install

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

Как вариант, можешь на свой страх и риск набрать в bash команду sudo do-release-upgrade, но результат непредсказуем. Так что ждем очередных улучшений, но использовать WSL, чтобы иметь доступ к мощным утилитам командной строки и тестировать серверный софт, можно уже сейчас.

Устранение неполадок подсистемы Windows для Linux

  • Читать 12 минут

В этой статье

Для получения поддержки по вопросам, связанным с WSL, см. Репозиторий продуктов WSL на GitHub.

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

По вопросам, связанным с содержанием этой документации, используйте репозиторий документации.

Отправить отчет об ошибке

В случае ошибок, связанных с функциями или возможностями WSL, сообщите о проблеме в репозитории продукта: https://github.com/Microsoft/wsl/issues

Отправить запрос функции

Чтобы запросить новую функцию, связанную с функциональностью или совместимостью WSL, сообщите о проблеме в репозиторий продукта.

Добавить в документацию

Чтобы внести свой вклад в документацию WSL, отправьте запрос на перенос в репозитории документации: https://github.com/MicrosoftDocs/wsl/issues

Терминал или командная строка

Наконец, если ваша проблема связана с терминалом Windows, консолью Windows или пользовательским интерфейсом командной строки, используйте репозиторий Windows Terminal: https: // github.com / microsoft / терминал

Общие проблемы

Я использую Windows 10 версии 1903, и я все еще не вижу вариантов для WSL 2

Вероятно, это связано с тем, что ваш компьютер еще не использовал резервный порт для WSL 2. Самый простой способ решить эту проблему — перейти в настройки Windows и щелкнуть «Проверить наличие обновлений», чтобы установить последние обновления в вашей системе. См. Полные инструкции по взятию бэкпорта.

Если вы нажали «Проверить наличие обновлений» и по-прежнему не получили обновление, вы можете установить KB4566116 вручную.

Ошибка: 0x1bc при

wsl --set-default-version 2

Это может произойти, если в настройках «Язык дисплея» или «Системный языковой стандарт» установлен не английский язык.

  wsl --set-default-версия 2
Ошибка: 0x1bc
Для получения информации об основных отличиях от WSL 2 посетите https://aka.ms/wsl2.
  

Фактическая ошибка для 0x1bc :

  WSL 2 требует обновления компонента ядра. Для получения информации посетите https://aka.ms/wsl2kernel.
  

Для получения дополнительной информации, пожалуйста, обратитесь к выпуску 5749

Не удается получить доступ к файлам WSL из Windows

Файловый сервер протокола 9p предоставляет службу на стороне Linux, позволяющую Windows получить доступ к файловой системе Linux.Если вы не можете получить доступ к WSL с помощью \\ wsl $ в Windows, это может быть связано с неправильным запуском 9P.

Чтобы проверить это, вы можете проверить журналы запуска, используя: dmesg | grep 9p , и это покажет вам любые ошибки. Успешный вывод выглядит следующим образом:

  [0.363323] 9p: Установка поддержки файловой системы v9fs 9p2000
[0.363336] FS-Cache: Netfs '9p' зарегистрирован для кеширования
[0.398989] 9pnet: Установка поддержки 9P2000
  

Пожалуйста, смотрите эту ветку Github для дальнейшего обсуждения этого вопроса.

Не удается запустить распространение WSL 2, в выходных данных

отображается только «WSL 2»

Если ваш язык отображения не английский, возможно, вы видите усеченную версию текста ошибки.

  C: \ Пользователи \ я> WSL
WSL 2
  

Чтобы решить эту проблему, посетите https://aka.ms/wsl2kernel и установите ядро ​​вручную, следуя инструкциям на этой странице документации.

команда не найдена при выполнении windows .exe в linux

Пользователи могут запускать исполняемые файлы Windows, такие как блокнот.exe прямо из Linux. Иногда вы можете нажать «команда не найдена», как показано ниже:

  $ notepad.exe
-bash: notepad.exe: команда не найдена
  

Если в вашем $ PATH нет путей win32, interop не найдет .exe.
Вы можете проверить это, запустив echo $ PATH в Linux. Ожидается, что в выводе вы увидите путь к win32 (например, / mnt / c / Windows).
Если вы не видите пути Windows, скорее всего, ваш PATH перезаписывается оболочкой Linux.

Вот пример того, что / etc / profile в Debian способствовало возникновению проблемы:

  если ["` id -u` "-eq 0]; тогда
  ПУТЬ = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin"
еще
  ПУТЬ = "/ usr / local / bin: / usr / bin: / bin: / usr / local / games: / usr / games"
фи
  

Правильный способ в Debian — удалить приведенные выше строки.
Вы также можете добавить $ PATH во время назначения, как показано ниже, но это приведет к некоторым другим проблемам с WSL и VSCode ..

  если ["` id -u` "-eq 0]; тогда
  ПУТЬ = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: $ PATH"
еще
  PATH = "/ usr / local / bin: / usr / bin: / bin: / usr / local / games: / usr / games: $ PATH"
фи
  

Дополнительные сведения см. В выпуске 5296 и выпуске 5779.

«Ошибка: 0x80370102 Виртуальная машина не может быть запущена, так как необходимая функция не установлена».

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

  1. Проверьте системные требования Hyper-V

  2. Если у вас виртуальная машина, включите вложенную виртуализацию вручную. Запустите powershell с администратором и запустите:

      Set-VMProcessor -VMName  -ExposeVirtualizationExtensions $ true
      
  3. Следуйте инструкциям производителя вашего ПК по включению виртуализации.Как правило, это может включать использование системного BIOS, чтобы убедиться, что эти функции включены на вашем процессоре. Инструкции для этого процесса могут отличаться от машины к машине, пожалуйста, см. Эту статью от Bleeping Computer для примера.

  4. Перезагрузите компьютер после включения дополнительного компонента Virtual Machine Platform .

  5. Кроме того, если у вас установлены гипервизоры сторонних производителей (например, VMware или VirtualBox), убедитесь, что они установлены в последних версиях, которые могут поддерживать HyperV (VMware 15.5.5+ и VirtualBox 6+) или выключены.

Bash теряет подключение к сети после подключения к VPN

Если после подключения к VPN в Windows bash теряет сетевое подключение, попробуйте этот обходной путь из bash. Этот обходной путь позволит вам вручную переопределить разрешение DNS через /etc/resolv.conf .

  1. Обратите внимание на DNS-сервер VPN, выполняющий ipconfig.exe / all
  2. Сделайте копию существующего файла resolv.conf
    sudo cp /etc/resolv.conf /etc/resolv.conf.new
  3. Отключить текущий файл resolv.conf
    sudo unlink /etc/resolv.conf
  4. судо мв /etc/resolv.conf.new /etc/resolv.conf
  5. Откройте /etc/resolv.conf и
    a. Удалите первую строку из файла, в которой говорится: «# Этот файл был автоматически сгенерирован WSL. Чтобы остановить автоматическое создание этого файла, удалите эту строку.».
    г. Добавьте запись DNS из пункта (1) выше как самую первую запись в списке серверов DNS.
    г. Закройте файл.

После отключения VPN вам нужно будет отменить изменения в /etc/resolv.conf . Для этого нужно:

  1. кд / и т. Д.
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

Запуск WSL или установка дистрибутива возвращает код ошибки

Следуйте этим инструкциям, чтобы собрать подробные журналы и сообщить о проблеме на нашем GitHub.

Обновление Bash в Ubuntu в Windows

Есть два компонента Bash в Ubuntu в Windows, которые могут потребовать обновления.

  1. Подсистема Windows для Linux

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

  2. Пользовательские двоичные файлы Ubuntu

    При обновлении этой части Bash в Ubuntu в Windows будут установлены все обновления для пользовательских двоичных файлов Ubuntu, включая приложения, которые вы установили с помощью apt-get. Чтобы обновить, выполните следующие команды в Bash:

    1. apt-get update
    2. apt-get апгрейд

Ошибки обновления Apt-get

В некоторых пакетах используются функции, которые мы еще не реализовали.Например, udev еще не поддерживается и вызывает несколько ошибок apt-get upgrade .

Чтобы исправить проблемы, связанные с udev , выполните следующие действия:

  1. Напишите следующее на /usr/sbin/policy-rc.d и сохраните изменения.

      #! / Бин / ш
    выход 101
      
  2. Добавить разрешения на выполнение в /usr/sbin/policy-rc.d :

      chmod + x /usr/sbin/policy-rc.d
      
  3. Выполните следующие команды:

      dpkg-divert --local --rename --add / sbin / initctl
    ln -s / bin / true / sbin / initctl
      

«Ошибка: 0x80040306» при установке

Это связано с тем, что мы не поддерживаем устаревшую консоль.Чтобы выключить устаревшую консоль:

  1. Открыть cmd.exe
  2. Щелкните строку заголовка правой кнопкой мыши -> Свойства -> снимите флажок Использовать устаревшую консоль
  3. Нажмите ОК

«Ошибка: 0x80040154» после обновления Windows

Подсистема Windows для Linux может быть отключена во время обновления Windows. В этом случае необходимо повторно включить функцию Windows. Инструкции по включению подсистемы Windows для Linux можно найти в Руководстве по установке.

Изменение языка дисплея

Установка

WSL попытается автоматически изменить локаль Ubuntu в соответствии с локалью вашей установки Windows.Если вам не нужно такое поведение, вы можете запустить эту команду, чтобы изменить локаль Ubuntu после завершения установки. Вам придется перезапустить bash.exe, чтобы это изменение вступило в силу.

В приведенном ниже примере языковой стандарт изменяется на en-US:

  sudo update-locale LANG = en_US.UTF8
  

Проблемы с установкой после восстановления системы Windows

  1. Удалите папку % windir% \ System32 \ Tasks \ Microsoft \ Windows \ Windows Subsystem for Linux .
    Примечание. Не делайте этого, если дополнительный компонент полностью установлен и работает.
  2. Включите дополнительную функцию WSL (если она еще не установлена)
  3. Перезагрузка
  4. lxrun / удалить / полный
  5. Установить bash

Нет доступа в Интернет в WSL

Некоторые пользователи сообщали о проблемах с определенными приложениями брандмауэра, блокирующими доступ в Интернет в WSL. Сообщается о следующих межсетевых экранах:

  1. Касперский
  2. СРЕДНЕЕ
  3. Avast
  4. Symantec Endpoint Protection

В некоторых случаях отключение брандмауэра позволяет получить доступ.В некоторых случаях просто установка брандмауэра блокирует доступ.

Ошибка

Permission Denied при использовании ping

для юбилейного обновления Windows, версия 1607,
права администратора в Windows необходимы для запуска ping в WSL. Чтобы запустить ping, запустите Bash в Ubuntu в Windows от имени администратора или запустите bash.exe из командной строки CMD / PowerShell с правами администратора.

Для более поздних версий Windows, Build 14926+, права администратора больше не требуются.

Баш висит

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

Собрать дамп памяти

  1. Измените тип дампа памяти на «полный дамп памяти». При изменении типа дампа обратите внимание на ваш текущий тип.

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

  3. Воспроизвести зависание или тупик.

  4. Завершите работу системы, используя последовательность клавиш из (2).

  5. Система выйдет из строя и соберет дамп памяти.

  6. После перезагрузки системы сообщите о memory.dmp по адресу [email protected]. Расположение файла дампа по умолчанию -% SystemRoot% \ memory.dmp или C: \ Windows \ memory.dmp, если C: является системным диском.В письме обратите внимание, что дамп предназначен для команды WSL или Bash в Windows.

  7. Восстановите исходное значение типа дампа памяти.

Проверьте номер сборки

Чтобы узнать архитектуру вашего ПК и номер сборки Windows, откройте
Настройки > Система > О

Найдите поля OS Build и System Type . Версия ОС»

Подтвердите, что WSL включен

Вы можете подтвердить, что подсистема Windows для Linux включена, запустив в PowerShell следующее:

  Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
  

Проблемы с подключением к OpenSSH-серверу

Попытка подключиться к вашему SSH-серверу не удалась из-за следующей ошибки: «Соединение закрыто на 127.0.0.1 порт 22 «.

  1. Убедитесь, что ваш сервер OpenSSH запущен:

      sudo service ssh статус
      

    , и вы следовали этому руководству:
    https://ubuntu.com/server/docs/service-openssh

  2. Остановите службу sshd и запустите sshd в режиме отладки:

      sudo service ssh stop
    sudo / usr / sbin / sshd -d
      
  3. Проверьте журналы запуска и убедитесь, что HostKeys доступны, и вы не видите сообщений журнала, например:

      debug1: версия sshd OpenSSH_7.2, OpenSSL 1.0.2g, 1 марта 2016 г.
    debug1: key_load_private: неверная кодовая фраза предоставлена ​​для расшифровки закрытого ключа
    debug1: key_load_public: нет такого файла или каталога
    Не удалось загрузить ключ хоста: / etc / ssh / ssh_host_rsa_key
    debug1: key_load_private: нет такого файла или каталога
    debug1: key_load_public: нет такого файла или каталога
    Не удалось загрузить ключ хоста: / etc / ssh / ssh_host_dsa_key
    debug1: key_load_private: нет такого файла или каталога
    debug1: key_load_public: нет такого файла или каталога
    Не удалось загрузить ключ хоста: / etc / ssh / ssh_host_ecdsa_key
    debug1: key_load_private: нет такого файла или каталога
    debug1: key_load_public: нет такого файла или каталога
    Не удалось загрузить ключ хоста: / etc / ssh / ssh_host_ed25519_key
      

Если вы видите такие сообщения и ключи отсутствуют в / etc / ssh / , вам придется повторно сгенерировать ключи или просто очистить и установить openssh-server:

  sudo apt-get purge openssh-сервер
sudo apt-get install openssh-server
  

«Указанная сборка не найдена.»при включении дополнительной функции WSL

Эта ошибка связана с неправильной установкой. Выполните следующие действия, чтобы попытаться решить эту проблему:

  • Если вы запускаете команду enable WSL feature из PowerShell, попробуйте вместо этого использовать графический интерфейс, открыв меню «Пуск», выполнив поиск «Включить или выключить функции Windows», а затем в списке выберите «Подсистема Windows для Linux», которая будет установите дополнительный компонент.

  • Обновите свою версию Windows, выбрав «Настройки», «Обновления» и нажав «Проверить наличие обновлений».

  • Если оба из них не работают и вам нужен доступ к WSL, рассмотрите возможность обновления на месте, переустановив Windows 10 с помощью установочного носителя и выбрав «Сохранить все», чтобы обеспечить сохранение ваших приложений и файлов.Вы можете найти инструкции о том, как это сделать, на странице «Переустановка Windows 10».

Исправление ошибок разрешений (связанных с SSH)

Если вы видите эту ошибку:

  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@
@ ВНИМАНИЕ: НЕЗАЩИЩЕННЫЙ ЧАСТНЫЙ КЛЮЧ-ФАЙЛ! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@
Разрешения 0777 для /home/artur/.ssh/private-key.pem слишком открыты.
  

Чтобы исправить это, добавьте следующее в файл / etc / wsl.conf файл:

  [автомонтаж]
enabled = true
параметры = метаданные, uid = 1000, gid = 1000, umask = 0022
  

Обратите внимание, что добавление этой команды будет включать метаданные и изменять права доступа к файлам Windows, видимым из WSL. Дополнительные сведения см. В разделе «Разрешения файловой системы».

Сбой выполнения команд Windows внутри дистрибутива

Некоторые дистрибутивы, доступные в Microsoft Store, еще не полностью совместимы с запуском команд Windows в Терминале из коробки.Если вы получаете сообщение об ошибке -bash: powershell.exe: command not found running powershell.exe / c start. или любой другой командой Windows, вы можете решить эту проблему, выполнив следующие действия:

  1. В вашем дистрибутиве WSL запустите echo $ PATH .
    Если это не включает: / mnt / c / Windows / system32 что-то переопределяет стандартную переменную PATH.
  2. Проверьте настройки профиля с помощью cat / etc / profile .
    Если он содержит присвоение переменной PATH, отредактируйте файл, чтобы закомментировать блок назначения PATH с помощью символа # .
  3. Проверьте, присутствует ли wsl.conf cat /etc/wsl.conf и убедитесь, что он не содержит appendWindowsPath = false , в противном случае закомментируйте его.
  4. Перезапустите распространение, набрав wsl -t , а затем имя дистрибутива, или запустите wsl --shutdown либо в cmd, либо в PowerShell.

Невозможно загрузиться после установки WSL 2

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

WSL 2 ошибки при отключенном ICS

Совместное использование подключения к Интернету (ICS) является обязательным компонентом WSL 2. Служба ICS используется сетевой службой хоста (HNS) для создания базовой виртуальной сети, на которую WSL 2 полагается для NAT, DNS, DHCP и совместного использования подключения к хосту. .

Отключение службы ICS (SharedAccess) или отключение ICS с помощью групповой политики предотвратит создание сети WSL HNS. Это приведет к сбоям при создании нового образа WSL версии 2 и следующей ошибке при попытке преобразовать образ версии 1 в версию 2.

  В сопоставлении конечных точек больше нет доступных конечных точек.
  

Системы, которым требуется WSL 2, должны оставить службу ICS (SharedAccess) в начальном состоянии по умолчанию, Вручную (Запуск по триггеру), а любая политика, отключающая ICS, должна быть перезаписана или удалена.Хотя отключение службы ICS приведет к поломке WSL 2, и мы не рекомендуем отключать ICS, части ICS могут быть отключены с помощью этих инструкций

Полное руководство по подсистеме Windows для Linux (Windows WSL)

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

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

Сказочная мать кода в Microsoft решила дать вам еще один вариант: подсистему Windows для Linux (WSL). WSL делает работу системы Linux вместе с Windows намного проще и гибче.

Из этого руководства вы узнаете, как начать работу с WSL. Вы узнаете, как начать работу с некоторыми изящными инструментами, которые делают WSL еще более универсальным, чем использование bash или PowerShell самостоятельно.

Что такое

WSL?

WSL или C: \ Windows \ System32 \ wsl.exe — это инструмент Windows, который позволяет установить дистрибутив Linux как приложение из магазина Windows.

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

wsl.exe

Как включить

WSL

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

Предварительные требования

Чтобы установить WSL в Windows, необходимо выполнить одно требование; у вас должен быть 64-разрядный компьютер с Windows 10 сборки 18917 или новее.

Вы можете найти свою сборку Windows 10, запустив утилиту winver.

Сборка Windows 1809

Включение WSL компонента Windows

WSL легко включить; загрузка не требуется. Это просто отдельная функция Windows.

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

   Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux   

Связано: Как запустить PowerShell от имени администратора

После завершения перезагрузите компьютер, и все готово!

Загрузка дистрибутива Linux для WSL

WSL не устанавливает самостоятельно какой-либо дистрибутив Linux. Вам нужно будет его установить.После восстановления Windows 10 начните настройку выбранного вами дистрибутива Linux.

Сначала откройте Microsoft Store и выполните поиск по запросу «WSL». Вскоре вы должны увидеть список дистрибутивов Linux.

Затем выберите нужный дистрибутив и установите его. В этом руководстве будет использоваться Ubuntu 18.04. На момент написания у вас есть еще несколько доступных дистрибутивов, например:

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • OpenSUSE Leap 15
  • OpenSUSE Leap 42
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 15
  • Kali Linux WS000 FedEx
  • Debian
  • Debian 6
  • Pengwin
  • Alpine WSL
Настройка версии WSL

Возможно, вам придется включить Linux для работы с WSL версии 2.Если да, вы можете сделать это, следуя приведенным ниже инструкциям.

В консоли PowerShell:

  1. Укажите, какие версии Linux вы установили, запустив wsl -l или wsl --list .
  2. Когда у вас есть список, скопируйте имя дистрибутива, который вы хотите запустить с WSL2, и запустите wsl --set-version 2 , заменив именем, которое вы скопировали ранее.
  3. Убедитесь, что команда выполнена успешно, запустив wsl -l -v или wsl --list --verbose .Эта команда вернет полный список дистрибутивов WSL и версию, которую использует каждый дистрибутив.

Настройка дистрибутива WSL Linux

Вы также можете установить версию WSL по умолчанию для любых дистрибутивов, которые вы устанавливаете в будущем, на WSL2, запустив wsl --set-default-version 2

Запуск WSL

Чтобы начать использовать WSL, откройте терминал PowerShell и введите wsl . Если вы правильно настроили WSL, вы войдете в терминал bash, работающий в выбранном дистрибутиве WSL.Отсюда вы можете запускать любые команды Linux, какие захотите.

Ниже вы найдете ссылку на все параметры, которые wsl.exe предоставляет при запуске.

указанный дистрибутив WSL

90hel8p

Команда Объяснение Пример
exec, -e Запустит команду без использования оболочки по умолчанию wsl -e curl google.com

этот параметр для оболочки по умолчанию.Также подойдет и отсутствие оператора. wsl — curl google.com, wsl curl google.com
distribution, -d Открывает терминал в оболочке указанного дистрибутива wsl -d Ubuntu-18.04
пользователь, -u Выполняет команду WSL от имени указанного пользователя, пока пользователь существует в этом дистрибутиве wsl -d Ubuntu-18.04 -u tux_user
export Экспортирует указанный дистрибутив в файл tar в вашей локальной системе. wsl –export Ubuntu ./Test-Ubuntu.tar
import [–version] Импортирует tar-файл как новый дистрибутив WSL. Можно указать версию WSL с параметром –version wsl –import Test-Ubuntu C: \ data \ Test-Ubuntu. \ Test-Ubuntu.tar
list, -l [Options] wsl –list
все Список всех установленных дистрибутивов WSL wsl -l –all
запущен Список только распределений WSL, которые в настоящее время работают wsl -l –running
тихо, -q Показывать только имена дистрибутивов WSL wsl -l -q
verbose, -v Показать подробную информацию обо всех дистрибутивах WSL wsl -l -v
set-default, -s Устанавливает указал распределение WSL в качестве распределения по умолчанию для команд WSL. wsl -s Test-Ubuntu
set-default-version Изменяет версию WSL по умолчанию для всех новых дистрибутивов, установленных в этой системе wsl –set-default-version 2
set-version Изменяет версию WSL указанного дистрибутива wsl –set-version Test-Ubuntu 2
shutdown Немедленно завершает работу всех запущенных WSL-дистрибутивов wsl –shutdown
завершает

завершает wsl -t Test-Ubuntu
unregister Отменяет регистрацию указанного распределения WSL wsl –unregister Test-Ubuntu
help Отображение информации об использовании WSL

Когда вы освоите эти переключатели, вы обнаружите, что запуск и управление приложениями через Хотя WSL намного проще, чем управлять виртуальными машинами Linux самостоятельно.

Подсказка: узнайте все флаги и аргументы для WSL, запустив wsl --help .

Когда вы закончите, введите exit , чтобы вернуться в терминал PowerShell.

Совместное использование ресурсов Windows / Linux через WSL

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

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

Совместное использование файловых систем

Файловая система — одна из самых полезных вещей, которыми можно поделиться с WSL. WSL позволяет работать с обеими файловыми системами, как если бы они были одной.

Файловая система Windows 10 смонтирована как каталог в Linux, а ваша файловая система Linux будет смонтирована как папка в Windows.

Поиск файловой системы Linux из Windows с помощью переменных среды

Когда вы устанавливаете дистрибутив Linux с WSL, он иногда добавляет переменную среды Windows. В случае дистрибутива WSL Ubuntu Linux он создаст переменную среды с именем UBUNTU_HOME. Эта переменная среды указывает на каталог Linux / home / ubuntu как из Windows, так и из WSL Ubuntu.

Путь, определенный в UBUNTU_HOME , можно использовать для запуска сценариев, использующих ресурсы между ними, или для установки местоположения по умолчанию для терминала Windows (рассмотрено позже).

Проверка переменной среды WSL UBUNTU_HOME

Другие дистрибутивы могут определять аналогичную переменную среды. Проверьте переменные среды Windows с помощью команды PowerShell Get-ChildItem -Path $ Env: \ после установки нового дистрибутива Linux, чтобы узнать, не были ли добавлены какие-либо из них.

Этот ярлык переменной среды удобен, если вы хотите поместить все в каталог / home / ubuntu . Но давайте разберемся немного глубже, как это произошло и как еще можно до него добраться.

Поиск файловой системы Linux из Windows через папку пакетов Microsoft Store

Не в каждом дистрибутиве WSL есть простой способ ссылки на него. Важно, чтобы вы научились искать файловую систему Linux альтернативным способом.

Поскольку большинство дистрибутивов WSL Linux будут установлены из магазина Microsoft, вы можете искать файловую систему Linux в том же месте, что и другие приложения магазина Windows. Перейдите к % USERPROFILE% \ AppData \ Local \ Packages \ , чтобы найти каталог, в котором находятся ваши приложения из магазина Windows.Затем возьмите на себя управление папкой, поскольку она обычно защищена по умолчанию.

В папке пакетов вы увидите множество подпапок, в которых может быть представлена ​​файловая система вашего дистрибутива Linux. Например, дистрибутив WSL Ubuntu для меня находился в папке CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc .

Если вы перейдете в папку пакета, вы найдете файловую систему Linux. Для WSL Ubuntu он находится в папке LocalState \ rootfs . Это корневой каталог вашего дистрибутива Linux.

Файловая система Linux в% USERPROFILE% / AppData / Local / Packages /

Поиск файловой системы Windows в Linux

Чтобы найти файловую систему Windows 10 из Linux, откройте WSL в Windows. Затем WSL вызовет терминал bash. Этот терминал bash по умолчанию запускается в вашем каталоге UBUNTU_HOME .

Вы также можете найти корень ваших томов хранения Windows. Каждый из ваших дисков с буквами Windows (C, D, E и т. Д.) Рассматривается как подключенный диск из файловой системы WSL Linux.Вы увидите, что каждый том смонтирован как / mnt / c , / mnt / d и т. Д., Если у вас есть права root.

Эквивалент Bash запуска Get-ChildItem C: \ Windows \ System32 | Select-Object -First 5 , работающий на WSL

Файловая система WSL2

Навигация по файловой системе WSL довольно проста. Любой, кто не знаком со структурой файловой системы Linux, оценит возможность перемещаться по ней с помощью проводника Windows. Но если вы хотите перейти на WSL2, это будет немного сложнее.

WSL2 меняет то, как все работает под капотом для совместного использования файловых систем. Во-первых, файловая система теперь представляет собой виртуальный жесткий диск в формате vhdx вместо каталога.

Вы можете найти файл vhdx в папке % USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc \ LocalState для дистрибутива WSL Ubuntu.

Вы обнаружите, что файлы VHDX можно смонтировать в Windows с помощью инструмента Disk Manager .Но виртуальные диски нельзя смонтировать, пока дистрибутив WSL зарегистрирован.

Совместное использование переменных среды

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

До сборки Windows 10 17063 единственной переменной среды, совместно используемой между Windows 10 и WSL Linux, была переменная PATH . С тех пор можно совместно использовать переменные среды, используя переменную среды WSLENV .

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

Обзор

Совместное использование переменных среды — это трехэтапный процесс, описанный ниже. Единственное существенное различие при совместном использовании в Windows / Linux — это используемый аргумент переключателя (полная ссылка ниже).

  1. Определите переменную среды в Windows или Linux.
  2. Установите переменную среды WSLENV равной ранее определенной переменной среды, за которой следует аргумент переключателя (для преобразования пути).
  3. Прочтите переменную среды в Windows или Linux.
Параметры общего доступа

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

  • Файловая система Windows будет доступна только сама по себе
  • Файловая система WSL будет доступна только из WSL
  • Файловая система WSL будет доступна как в WSL Linux, так и в Windows
  • Файловая система Windows будет доступна как в WSL Linux, так и в Windows
Флаг Пояснение
/ p Одинарный путь.Набор переменных будет переведен между Windows и WSL Linux и станет доступным для обоих.
/ l Список путей. Подобно / p , за исключением того, что он может принимать более одного пути. В Windows этот список будет разделен точкой с запятой, а в WSL Linux — двоеточием.
/ u Путь Unix. Путь, заданный этим флагом, доступен только при вызове WSL Linux из Windows. Может использоваться с флагами / p или / l
/ w Путь Windows.Путь, установленный с помощью этого флага, доступен только при вызове Windows из WSL Linux. Может использоваться с флагами / p или / l
Преобразование пути

Основная причина совместного использования переменных среды — преобразование пути. Как вы, возможно, уже знаете, в Windows есть папки с профилями пользователей, так как в Linux есть, например, каталоги профилей пользователей. У каждого пользователя есть предопределенная «домашняя папка», например C: \ Users \ в Windows и / home / в Linux.

Используя переключатели / p и / l , WSL преобразует эти пути к папкам между платформами.

Совместное использование и перевод путей Windows в Linux

Вы можете использовать один или несколько путей одновременно, используя коммутаторы / p и / l .

В командной строке Windows и с определенной переменной среды Windows с именем DESKTOP присвойте значение DESKTOP / p переменной WSLENV .Это позволяет вам получить к нему доступ из WSL Linux. Вы можете увидеть пример ниже.

Установка переменных в Windows и доступ в Linux

Точно такая же процедура может быть выполнена для нескольких каналов одновременно с помощью переключателя / l .

Совместное использование и перевод путей Linux в Windows

Совместное использование и перевод пути Linux в Windows — это та же процедура, что и в Windows, но с использованием специальных команд Linux для установки переменных среды.

Чтобы подробнее узнать о совместном использовании переменных среды, ознакомьтесь с этой статьей Microsoft.

Совместное использование сетевых ресурсов

Сетевой компонент — еще один удобный ресурс, которым Windows и WSL Linux могут совместно пользоваться.

Физические и виртуализированные сетевые интерфейсы

В WSL2 сетевые интерфейсы виртуализированы. Виртуализированные сетевые интерфейсы означают, что сетевые экземпляры WSL2 могут содержать конфигурации IP, отличные от их аналогов в Windows 10.

На момент написания этой статьи IP-адреса для WSL2 Linux используют преобразование сетевых адресов (NAT) для доступа к сетевым ресурсам в Windows, хотя Microsoft упомянула, что удаление NAT является большим количеством проблем, которые необходимо исправить.

То же сравнение из более раннего, но с дистрибутивом WSL2

Разрешение DNS клиента

WSL по-прежнему будет генерировать файлы /etc/resolv.conf и / etc / hosts для разрешения DNS. Пока вы явно не переопределите это поведение в файле /etc/wsl.conf , разрешение DNS клиента будет продолжать работать должным образом.

Подробнее о файле wsl.conf вы узнаете позже в этой публикации.

Совместное использование PowerShell и Bash

Одна из самых крутых функций WSL — это возможность беспрепятственно передавать информацию в PowerShell и Bash и обратно на WSL.

PowerShell -> Bash

Поскольку исполняемый файл WSL принимает ввод из конвейера, вы можете вызвать команду wsl.exe внутри PowerShell и принять стандартный ввод. Это позволяет использовать WSL для передачи целых объектов из PowerShell в WSL, которые затем обрабатываются терминалом bash. Вы можете увидеть пример ниже.

Передача PowerShell в grep

Bash -> PowerShell / Cmd

Вы также можете легко передавать информацию из bash в WSL в PowerShell и cmd.Ниже вы можете увидеть пример выполнения команды Linux ls и передачи выходных данных командлету PowerShell Select-Object через конвейер.

Передача вывода Bash в PowerShell

Вы также можете вызвать некоторые утилиты Windows cmd из WSL и передать вывод обратно в Linux, если обе команды находятся в системном пути.

Помните, что WSL знает системный путь с обеих сторон, потому что по умолчанию он имеет доступ к переменной Windows PATH

Ниже вы можете увидеть, что вы можете запустить ipconfig , которая является командой Windows, из WSL и передать этот вывод команде Linux grep .Вы также можете увидеть противоположность вызова команды Linux , которая и передачи вывода в команду Windows ipconfig .

Выполнение команды Windows в Linux

Выпуски переводов

Есть некоторые предостережения при передаче вывода команд между bash и PowerShell.

Одна большая проблема заключается в том, как PowerShell и bash возвращают информацию. PowerShell — это объектно-ориентированный язык программирования, а bash — инструмент для обработки строк. Любые объекты PowerShell, переданные в bash, будут сведены в строку.И наоборот, любой вывод bash, переданный в PowerShell, будет преобразован в строковый объект.

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

Проблемы с прохождением предметов

Приведя дату bash к классу [datetime] в PowerShell, теперь у нас есть действительный объект PowerShell, который мы можем использовать в нашем скрипте.Если вы пишете сценарии, которые необходимо перейти с Windows на WSL и обратно, можно сделать небольшое изменение кода.

Установка подсистемы Windows для графического интерфейса пользователя Linux с Xfce4

Когда инструментов командной строки недостаточно, пора разобраться с графическим интерфейсом пользователя. Если вам нужно запустить графическую утилиту на WSL, изучить собственный дистрибутив или вы еще не знакомы с bash, вы можете установить графический интерфейс Linux.

Xfce

Linux имеет множество доступных окружений рабочего стола.Один из наиболее распространенных вариантов настройки для WSL называется Xfce. На момент написания этой статьи Xfce имеет версию 4. Доступны и другие среды рабочего стола, но в этой статье вы узнаете, как настроить Xfce4.

xRDP

Если у вас настроена среда рабочего стола Linux, вам понадобится служба, которая понимает протокол RDP. В этой статье мы сосредоточимся на сервере xRDP. xRDP — это сервер RDP с открытым исходным кодом для Linux, который позволяет использовать клиентов RDP для подключения к Linux так же, как если бы вы могли использовать хосты Windows.

Настройка

Чтобы получить доступ к графическому интерфейсу Linux из Windows с помощью Xfce4 и xRDP, следуйте приведенным ниже инструкциям. В терминале WSL:

  1. Загрузите и установите Xfce4 — Загрузите и установите Xfce4 с помощью команды sudo apt-get -y install xfce4 && sudo apt-get -y install xubuntu-desktop . Это займет некоторое время. Ожидать.
  2. Установите сервер xRDP — Загрузите и установите xRDP, запустив команду sudo apt-get -y install xrdp .
  3. Настроить xRDP для xfce4 — echo xfce4-session> ~ / .xsession
  4. Перезапустить xRDP sudo service xrdp restart
  5. Найти IP-адрес дистрибутива WSL ifconf10 | grep inet

На этом этапе у вас должна быть возможность открыть сеанс RDP из Windows 10. Откройте окно подключения к удаленному рабочему столу с помощью mstsc и укажите IP-адрес Linux, найденный на шаге №5.

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

Подсистема Windows для графического интерфейса Linux с Xfce4 и xRDP

Советы и хитрости

Теперь, когда вы знаете основы WSL и как его использовать, что дальше? К счастью, существует множество инструментов, которые либо созданы для WSL, либо хорошо работают с ним.

Настройка элементов конфигурации WSL при загрузке с помощью

wsl.conf

Файл конфигурации существует в WSL по адресу /etc/wsl.conf. Этот файл содержит параметры конфигурации, которые запускаются каждый раз при запуске дистрибутива WSL.Если существует файл wsl.conf , WSL будет принимать любые настройки в этом файле при каждом запуске дистрибутива Linux.

В файле wsl.conf есть несколько различных разделов, которые вы можете настроить.

  • Automount — Подключение дисков из Windows при запуске
  • Сеть — Создание resolv.conf или hosts файла
  • Interop — Включение или отключение взаимодействия с Windows

Для получения дополнительных сведений о wsl.conf файл , проверьте страницу Microsoft Set WSL Launch Settings .

Разработка на WSL с помощью кода Visual Studio (VS Code)

Кажется, что

VS Code интегрируется со всем, и WSL не исключение. Из VS Code вы можете настроить рабочее пространство в своем WSL Distro, но полностью управлять им с помощью VS Code в Windows. Вам даже не нужно запускать терминал!

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

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

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

Работа с кодом WSL и Visual Studio

Вы даже можете использовать встроенный терминал для непосредственного взаимодействия с рабочим пространством WSL. Нет необходимости запускать отдельное окно для команд git bash.

Добавление подсистемы Windows для Linux в терминал Windows

Еще один полезный вариант использования WSL — добавить консоль WSL в терминал Windows.

Из Терминала Windows вы добавляете каждый дистрибутив WSL на отдельной вкладке.Вы также можете настроить внешний вид каждой вкладки, чтобы не потеряться.

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

Проверка даты в PowerShell и Bash

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

Заключительные мысли

Microsoft выпустила WSL, чтобы дать разработчикам Linux возможность разрабатывать в Windows.Пока что WSL был шагом в правильном направлении.

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

WSL приносит разработчикам множество полезных преимуществ, например:

  • Значительно легче, чем при запуске локальных виртуальных машин Linux
  • Устранение накладных расходов на установку и управление гипервизором
  • Больше не требуется многораздельных жестких дисков
  • Нет более сложных загрузчиков grub

WSL просто включается и запускается, поэтому мы могут все программировать долго и счастливо.

microsoft / WSL: проблемы, обнаруженные на WSL

GitHub — microsoft / WSL: проблемы, обнаруженные на WSL

Файлы

Постоянная ссылка

Не удалось загрузить последнюю информацию о фиксации.

Тип

Имя

Последнее сообщение фиксации

Время фиксации

Это репо для:

  • Сообщение о проблемах, обнаруженных в подсистеме Windows для Linux и при ее использовании.Пожалуйста, прочтите CONTRIBUTING.md перед тем, как отправлять вопрос

    Не открывайте проблемы Github из-за сбоев Windows (BSOD) или проблем с безопасностью. Пожалуйста, направляйте все сбои Windows и проблемы безопасности по адресу [email protected]. Проблемы с уязвимостями безопасности могут быть отредактированы, чтобы скрыть детали уязвимости.

  • Окружающие обсуждения подсистемы Windows для Linux.

Сообщения о проблемах в консоли Windows или рендеринг текста WSL / взаимодействие с пользователем

Обратите внимание, что запуск дистрибутива WSL в консоли Windows (если вы не предприняли шаги для запуска сторонней консоли / терминала).Поэтому, , сообщите о проблемах, связанных с UI / UX, в средство отслеживания проблем консоли Windows .

Этикетки:

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

  • bug — Проблема, которую команда разработчиков считает внутренней ошибкой.Этот тег обычно используется для пробелов в реализованном (читай: предназначенном для работы) поведении WSL. Вещи, отмеченные ошибкой , имеют соответствующую ошибку во внутренней системе отслеживания ошибок Microsoft. Пример: «du -h сообщает о неверном размере файла на DrvFs» (# 1894)

  • feature — Обозначает что-то, что считается неработающим и еще не реализовано. Пример: «Не удается установить Cuda» (# 327)

  • fixinbound / fixedinNNNN — Первоначально отправленная ошибка или запрос функции устранены полностью или частично.Связанные или текущие ошибки или пробелы в функциях должны быть открыты как новое сообщение о проблеме, если оно еще не существует.

  • duplicate — Заявка практически дублирует существующую проблему и / или имеет ту же основную причину.

  • need-repro — В сообщении о проблеме отсутствуют поля в шаблоне задачи, невозможно воспроизвести с предоставленной информацией или невозможно принять меры.

  • обсуждение / вопрос — Материалы, которые не являются отчетом об ошибке или запросом функции.Пример: Подсистема Windows для Linux не является открытым исходным кодом (# 178)

  • bydesign / linux-behavior — Обозначает, что проблема, которая считается работающей должным образом, или будет вести себя аналогичным образом в собственном ядре Linux.

  • консоль — Отправка должна быть направлена ​​в систему отслеживания проблем консоли.

  • , , документация, — отправку следует направлять в средство отслеживания проблем с документацией WSL.

  • wsl2 — Проблема конкретно связана с WSL 2.

  • fixed-in-wsl2 — Проблема может быть решена путем переключения дистрибутива на использование архитектуры WSL 2.

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

  • 9p-linux-file-access — Проблема связана с доступом к файлам Linux из Windows.

Закрытие:

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

  • Проблема не в ошибке или запросе функции
  • Проблема устранена
  • Проблема дублирует другую проблему
  • Обсуждения или пройденные вопросы

Ссылки Microsoft:

Ссылки сообщества:

Устранение неисправностей:

Общие проблемы устранения неполадок и решения доступны в нашей документации MSDN.

Около

Проблемы, обнаруженные на WSL

Ресурсы

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

Разработка в подсистеме Windows для Linux с Visual Studio Code

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

Расширение запускает команды и другие расширения непосредственно в WSL, поэтому вы можете редактировать файлы, расположенные в WSL или смонтированной файловой системе Windows (например, / mnt / c ), не беспокоясь о проблемах с путями, двоичной совместимости или других проблемах между ОС.

Это позволяет VS Code обеспечивать опыт разработки с локальным качеством — включая полную IntelliSense (завершение), навигацию по коду и отладку — независимо от того, где размещен ваш код .

Начало работы

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

Установка

Для начала вам необходимо:

  1. Установите подсистему Windows для Linux вместе с предпочитаемым дистрибутивом Linux.

    Примечание. WSL 1 имеет некоторые известные ограничения для определенных типов разработки. Кроме того, расширения, установленные в Alpine Linux, могут не работать из-за зависимостей glibc в собственном исходном коде внутри расширения.Подробности см. В статье «Удаленная разработка и Linux».

  2. Установите код Visual Studio на стороне Windows (не в WSL).

    Примечание: Когда будет предложено Выбрать дополнительные задачи во время установки, обязательно отметьте опцию Добавить в PATH , чтобы вы могли легко открыть папку в WSL с помощью команды code .

  3. Установите пакет расширений удаленной разработки.

Открыть удаленную папку или рабочее пространство

От терминала WSL

Открытие папки внутри подсистемы Windows для Linux в VS Code очень похоже на открытие папки Windows из командной строки или PowerShell.

  1. Откройте окно терминала WSL (используя пункт меню «Пуск» или набрав wsl в командной строке / PowerShell).

  2. Перейдите к папке, которую вы хотите открыть в VS Code (включая, помимо прочего, монтирование файловой системы Windows, например / mnt / c )

  3. Тип код. в терминале. Когда вы делаете это впервые, вы должны увидеть компоненты выборки VS Code, необходимые для запуска в WSL. Это займет совсем немного времени и понадобится только один раз.

    Примечание: Если эта команда не работает, возможно, вам потребуется перезагрузить терминал или вы не добавили VS Code в свой путь при его установке.

  4. Через мгновение появится новое окно VS Code, и вы увидите уведомление о том, что VS Code открывает папку в WSL.

    VS Code теперь продолжит настраивать себя в WSL и будет держать вас в курсе по мере продвижения.

  5. После завершения вы увидите индикатор WSL в нижнем левом углу, и вы сможете использовать VS Code, как обычно!

Вот и все! Любые операции VS Code, которые вы выполняете в этом окне, будут выполняться в среде WSL, от редактирования и файловых операций до отладки, использования терминалов и т. Д.

Из VS Код

В качестве альтернативы вы можете открыть окно удаленного WSL прямо из VS Code:

  1. Запустить VS Code.
  2. Нажмите F1, выберите Remote-WSL: новое окно для дистрибутива по умолчанию или Remote-WSL: новое окно с использованием Distro для определенного дистрибутива.
  3. Используйте меню «Файл», чтобы открыть папку.

Если у вас уже есть открытая папка, вы также можете использовать команду Remote-WSL: повторно открыть в WSL .Вам будет предложено использовать дистрибутив.

Если вы находитесь в окне WSL и хотите открыть текущий ввод в локальном окне, используйте Remote-WSL: Reopen in Windows .

Из командной строки Windows

Чтобы открыть окно WSL непосредственно из командной строки Windows, используйте параметр командной строки --remote :

код --remote wsl + <имя дистрибутива> <путь в WSL>

например: код --remote wsl + Ubuntu / home / jim / projects / c

Нам нужно предположить, является ли входной путь файлом или папкой.Если у него есть расширение файла, он считается файлом.

Чтобы принудительно открыть папку, добавьте в путь косую черту или используйте:

код --folder-uri vscode-remote: //wsl+Ubuntu/home/ubuntu/folder.with.dot

Чтобы принудительно открыть файл, добавьте - goto или используйте:

код --file-uri vscode-remote: // wsl + Ubuntu / home / ubuntu / fileWithoutExtension

Работа с Git

Если вы работаете с одним и тем же репозиторием в WSL и Windows, обязательно настройте согласованные окончания строк.См. Подробности в советах и ​​приемах.

Вы также можете избежать паролей, настроив WSL для использования диспетчера учетных данных Windows Git. См. Подробности в советах и ​​приемах.

Управление добавочными номерами

VS Code запускает расширения в одном из двух мест: локально на стороне пользовательского интерфейса / клиента или в WSL. Хотя расширения, которые влияют на пользовательский интерфейс VS Code, такие как темы и фрагменты, устанавливаются локально, большинство расширений будут находиться внутри WSL.

Если вы устанавливаете расширение из представления «Расширения», оно будет автоматически установлено в правильном месте.После установки вы можете определить, где установлено расширение, на основе группировки категорий. Будет Local — Installed категория и одна для WSL.

Примечание: Если вы являетесь автором расширения и ваше расширение не работает должным образом или устанавливается не в том месте, см. Раздел «Поддержка удаленной разработки».

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

Вы также можете установить все локально установленные расширения внутри WSL, перейдя в представление «Расширения» и выбрав Установить локальные расширения в WSL: [Имя] с помощью облачной кнопки справа от строки заголовка Локально — Установлено . Появится раскрывающийся список, в котором вы можете выбрать, какие локально установленные расширения установить в ваш экземпляр WSL.

Открытие терминала в WSL

Открыть терминал в WSL из VS Code очень просто.После открытия папки в WSL любое окно терминала , которое вы открываете в VS Code ( Terminal> New Terminal ), будет автоматически запускаться в WSL, а не локально.

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

Отладка в WSL

После того, как вы открыли папку в WSL, вы можете использовать отладчик VS Code так же, как и при локальном запуске приложения.Например, если вы выберете конфигурацию запуска в launch.json и начнете отладку (F5), приложение запустится на удаленном хосте и подключит к нему отладчик.

См. Документацию по отладке для получения подробной информации о настройке функций отладки VS Code в .vscode / launch.json .

Настройки WSL

Локальные пользовательские настройки

VS Code также повторно используются, когда вы открываете папку в WSL. Хотя это обеспечивает единообразие взаимодействия с пользователем, вы можете изменить некоторые из этих параметров на локальном компьютере и на WSL.К счастью, после подключения к WSL вы также можете установить конкретные параметры WSL, запустив Preferences: Open Remote Settings command из Command Palette (F1) или выбрав вкладку Remote в редакторе настроек. Они переопределят любые локальные настройки, которые у вас есть, всякий раз, когда вы открываете папку в WSL.

Дополнительно: сценарий настройки среды

Когда VS Code Remote запускается в WSL, сценарии запуска оболочки не запускаются. Это было сделано, чтобы избежать проблем со сценариями запуска, настроенными для оболочек.Если вы хотите выполнить дополнительные команды или изменить среду, это можно сделать в сценарии установки ~ / .vscode-server / server-env-setup (Insiders: ~ / .vscode-server-insiders / server-env- установка ). Если присутствует, сценарий обрабатывается перед запуском сервера.

Сценарий должен быть допустимым сценарием оболочки Bourne. Имейте в виду, что неверный сценарий не позволит серверу запуститься. Если вы получите сценарий, который не позволяет серверу запускаться, вам придется использовать обычную оболочку WSL и удалить или переименовать сценарий установки.

Проверьте журнал WSL (удаленный WSL: открыть журнал WSL) на наличие выходных данных и ошибок.

Дополнительно: открытие папки WSL 2 в контейнере

Если вы используете серверную часть WSL 2 WSL 2 и Docker Desktop, вы можете использовать расширение Remote — Containers для работы с исходным кодом, хранящимся внутри WSL! Просто выполните следующие действия:

  1. Если вы еще этого не сделали, установите и настройте поддержку WSL 2 Docker Desktop.

    Совет: Перейдите в Настройки> Ресурсы> Интеграция с WSL и включите интеграцию Docker с распространением WSL, которое вы будете использовать.

  2. Если вы еще этого не сделали, установите расширение Remote — Containers вместе с расширением WSL.

  3. Затем откройте папку с исходным кодом в WSL, как обычно.

  4. Когда ваша папка откроется в WSL, выберите Удаленные контейнеры: повторно открыть папку в контейнере на панели команд (F1).

  5. Если в папке нет файла .devcontainer / devcontainer.json , вам будет предложено выбрать начальную точку из фильтруемого списка или существующего файла Dockerfile или Docker Compose (если он существует).

  6. Окно VS Code (экземпляр) перезагрузится и начнет сборку контейнера разработчика. Уведомление о ходе выполнения предоставляет обновления статуса.

  7. После завершения сборки VS Code автоматически подключится к контейнеру.Теперь вы можете работать с исходным кодом из контейнера.

См. Дополнительную информацию в документации по удаленным контейнерам.

Известные ограничения

В этом разделе содержится список общих известных проблем с WSL. Цель состоит не в том, чтобы предоставить полный список проблем, а в том, чтобы выделить некоторые из общих проблем, наблюдаемых с WSL.

См. Здесь список активных проблем, связанных с WSL.

Я вижу EACCESS: ошибка отказано в разрешении при попытке переименовать папку в открытой рабочей области в WSL 1

Это известная проблема с реализацией файловой системы WSL (Microsoft / WSL # 3395, Microsoft / WSL # 1956), вызванная наблюдателем файлов, активным VSCode.Проблема будет исправлена ​​только в WSL 2.

Чтобы избежать этой проблемы, установите для remote.WSL.fileWatcher.polling значение true. Однако просмотр файлов на основе опроса влияет на производительность для больших рабочих пространств.

Для большого рабочего пространства вы хотите увеличить интервал опроса: remote.WSL.fileWatcher.pollingInterval и контролировать просматриваемые папки: files.watcherExclude .

WSL 2 не имеет этой проблемы с файловым наблюдателем, на нее также не влияет новый параметр.

Голанг в WSL 1

Node.js в WSL 1

Ограничения Git

Если вы клонируете репозиторий Git с помощью SSH и ваш SSH-ключ имеет парольную фразу, функции извлечения и синхронизации VS Code могут зависнуть при удаленном запуске. Либо используйте SSH-ключ без парольной фразы, клонируйте с помощью HTTPS, либо запустите git push из командной строки, чтобы обойти проблему.

Ограничения расширения Docker

Хотя расширение Docker может работать как удаленно, так и локально, если оно уже установлено локально, вы не сможете установить его на удаленный хост SSH, не удалив его предварительно локально.Мы рассмотрим эту проблему в будущем выпуске VS Code.

Ограничения на расширение

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

Кроме того, некоторые расширения, установленные в WSL при использовании дистрибутива на базе Alpine Linux, могут не работать из-за зависимостей glibc в собственном коде внутри расширения.Подробнее см. В статье «Удаленная разработка с Linux».

Общие вопросы

Почему меня просят изменить дистрибутив по умолчанию?

При использовании Remote-WSL: новое окно с использованием Distro и запущенном на WSL старше Windows 10, May 2019 Update (версия 1903) вам будет предложено переключить дистрибутив по умолчанию на , поскольку команда WSL может работать только по умолчанию distro, поскольку он еще не поддерживает опцию -d .

Вы всегда можете вручную переключить дистрибутив по умолчанию с помощью wslconfig.исполняемый.

Например:

  wslconfig / setdefault Ubuntu  

Вы можете увидеть, какие дистрибутивы вы установили, используя:

  wslconfig / л  

Я вижу ошибку об отсутствующей библиотеке или зависимости

Некоторые расширения полагаются на библиотеки, которых нет в стандартной установке некоторых дистрибутивов WSL Linux. Вы можете добавить дополнительные библиотеки в свой дистрибутив Linux, используя его диспетчер пакетов. Для дистрибутивов на основе Ubuntu и Debian запустите sudo apt-get install , чтобы установить необходимые библиотеки.Дополнительные сведения об установке см. В документации для своего расширения или упомянутой среды выполнения.

Каковы требования к подключению для расширения Remote — WSL?

Для удаленного расширения WSL и VS Code Server требуется исходящее соединение HTTPS (порт 443) с:

  • update.code.visualstudio.com
  • marketplace.visualstudio.com
  • vscode.blob.core.windows.net
  • *.vo.msecnd.net (Azure CDN)
  • * .gallerycdn.vsassets.io (Azure CDN)

Некоторые расширения (например, C #) загружают вторичные зависимости с download.microsoft.com или download.visualstudio.microsoft.com . Другие (например, Visual Studio Live Share) могут иметь дополнительные требования к подключению. Если у вас возникнут проблемы, обратитесь к документации по расширению.

Вся остальная связь между сервером и клиентом VS Code осуществляется через случайный локальный порт TCP.Вы можете найти список мест, к которым сам VS Code должен получить доступ, в статье о сетевых подключениях.

Я использую прокси-сервер, и у меня проблемы с подключением

Параметры прокси-сервера могут отсутствовать на стороне Windows или WSL.

Когда удаленное окно открывается из VSCode, расширение Remote — WSL пытается загрузить сервер VSCode на стороне Windows. Поэтому он использует конфигурацию прокси на стороне окна:

Когда удаленный VSCode запускается с терминала WSL, загрузка выполняется с помощью wget в дистрибутиве WSL.Настройки прокси можно настроить в:

После запуска сервера настройки прокси на вкладке Remote используются .

Можно ли принудительно запустить расширение локально / удаленно?

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

Например, приведенный ниже параметр заставит расширение Docker запускаться локально, а расширение Debugger for Chrome — запускать удаленно вместо значений по умолчанию:

  "пульт.extensionKind ": {
    "ms-azuretools.vscode-docker": ["ui"],
    "msjsdiag.debugger-for-chrome": ["рабочая область"]
}  

Значение «ui» вместо «workspace» заставит расширение вместо этого запускаться на стороне локального пользовательского интерфейса / клиента. Как правило, это следует использовать только для тестирования, если иное не указано в документации расширения, так как может сломать расширения . См. Статью о поддержке удаленной разработки.

Что мне нужно делать, как автору расширения?

API расширения VS Code абстрагирует локальные / удаленные детали, поэтому большинство расширений будут работать без изменений.Однако данные расширения могут использовать любой модуль узла или среду выполнения, которую они хотят, есть ситуации, когда может потребоваться корректировка. Мы рекомендуем вам протестировать свое расширение, чтобы убедиться, что никаких обновлений не требуется. Подробнее см. Поддержка удаленной разработки.

Вопросы или отзывы

05.08.2021

Работа в подсистеме Windows для Linux с кодом Visual Studio

В этом руководстве вы узнаете, как включить подсистему Windows для Linux (WSL) и запустить код Visual Studio в WSL с помощью расширения Remote — WSL.

Предварительные требования

Вам необходимо установить Visual Studio Code.

Установить расширение

Расширение Remote — WSL позволяет запускать код Visual Studio в подсистеме Windows для Linux (WSL).

Установка удаленного — расширение WSL

Проверка предварительных требований

При установленном расширении Remote — WSL вы увидите новый элемент строки состояния в крайнем левом углу.

Элемент строки удаленного состояния может быстро показать вам, в каком контексте выполняется VS Code (локальный или удаленный), а щелчок по элементу вызовет команды Remote — WSL.

Включить WSL

Подсистема Windows для Linux (WSL) — это дополнительная функция в Windows 10. Вы можете включить ее в диалоговом окне «Функции Windows» или в PowerShell.

Диалог компонентов Windows

В строке поиска Windows введите «features», чтобы открыть диалоговое окно Включение и отключение компонентов Windows . Прокрутите вниз и проверьте Подсистема Windows для Linux .

Выберите OK , и вам будет предложено перезапустить Windows.

PowerShell

При желании вы можете открыть PowerShell от имени администратора и ввести:

  Включить-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux  

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

Чек WSL

После перезапуска Windows вы можете проверить, включен ли WSL, открыв командную строку и набрав «wsl».

WSL включен, но вы еще не установили дистрибутив Linux.

Установить дистрибутив Linux

Вы устанавливаете дистрибутивы Linux для WSL из Microsoft Store. Вы можете использовать приложение магазина или найти дистрибутив Linux в строке поиска Windows. Выберите дистрибутив Linux, который вы хотите установить (например, Ubuntu), и следуйте инструкциям.

Выберите Установить .

И когда закончите, выберите Launch , чтобы начать. Это откроет терминал Linux и завершит установку.Вам нужно будет создать идентификатор пользователя и пароль, поскольку вы настраиваете полный экземпляр Linux. Теперь вы используете Linux в Windows.

Разработка на Python

Если у вас еще не установлен Python, выполните следующие команды, чтобы установить Python3 и pip, менеджер пакетов для Python, в вашу установку Linux.

  sudo apt update
sudo apt установить python3 python3-pip  

И для проверки запустите:

  python3 - версия  

Начните с канонического приложения «Hello World».Создайте новую папку с именем «helloWorld», а затем добавьте файл Python, который будет печатать сообщение при запуске:

  мкдир helloWorld && cd helloWorld
echo 'print («привет из Python в Ubuntu в Windows!»)' >> hello.py
python3 hello.py  

В удаленной среде Linux (этот дистрибутив WSL технически представляет собой другую машину без пользовательского интерфейса, которая просто запускается локально на вашем компьютере), ваши инструменты разработки и возможности довольно ограничены. Вы можете запустить Vim в терминале, чтобы отредактировать файл, или вы можете редактировать исходники на стороне Windows через монтирование \ wsl $ :

Проблема с этой моделью заключается в том, что среда выполнения Python, pip или любые пакеты conda, если на то пошло, не установлены в Windows.

Помните, Python установлен в дистрибутиве Linux, а это означает, что если вы редактируете файлы Python на стороне Windows, вы не можете запускать или отлаживать их, если не установите тот же стек разработки Python в Windows. И это лишает смысла установку изолированного экземпляра Linux со всеми вашими инструментами и средами выполнения Python!

Запуск в WSL

В терминале WSL убедитесь, что вы находитесь в папке helloWorld, и введите «код». для запуска Visual Studio Code. '.' Аргумент сообщает VS Code открыть текущую папку.

Примечание: Если эта команда не работает, возможно, вам потребуется перезагрузить терминал или вы не добавили код VS в свой путь при его установке.

Первое, что вы увидите, это сообщение «Установка VS Code Server» (номер c7d83e57… — это версия VS Code Server, которая соответствует только что установленным клиентским инструментам). VS Code устанавливает небольшой сервер на стороне Linux, с которым будет разговаривать настольный VS Code.Затем этот сервер установит и разместит расширения в WSL, чтобы они работали в контексте инструментов и фреймворков, установленных в WSL. Другими словами, ваши языковые расширения будут работать с инструментами и фреймворками, установленными в WSL, а не с тем, что установлено на стороне Windows, как это должно быть для правильной разработки.

Следующее, что происходит, — запускается VS Code и открывается папка helloWorld . Вы можете увидеть быстрое уведомление о том, что VS Code подключается к WSL, и вам может быть предложено разрешить доступ к Node.js-сервер.

Теперь, когда вы наводите курсор на hello.py , вы получаете правильный путь Linux.

Интегрированный терминал

Запустите Terminal > New Terminal (⌃` (Windows, Linux Ctrl + `)), чтобы открыть новый экземпляр терминала.

Вы запустите новый экземпляр оболочки bash в WSL, опять же из VS Code, работающего в Windows.

Совет : В нижнем левом углу строки состояния вы можете увидеть, что вы подключены к своему экземпляру WSL: Ubuntu .

Редактировать и отлаживать

Установка расширения Python (и дополнительных инструментов)

Щелкните hello.py , чтобы открыть его для редактирования. Вам будет предложено расширение, в данном случае установить расширение Microsoft Python, которое предоставит вам широкие возможности редактирования и отладки. Идите вперед и выберите Установить и перезагрузить, если будет предложено.

Чтобы убедиться, что расширение установлено в WSL, снова откройте представление «Расширения» (⇧⌘X (Windows, Linux Ctrl + Shift + X)).Вы увидите раздел под названием WSL: Ubuntu — Installed , и вы увидите все расширения, которые установлены на стороне WSL.

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

Теперь, когда вы редактируете свой код, вы получаете богатую раскраску и дополнения.

И когда вы сохраните файл (⌘S (Windows, Linux Ctrl + S)), вы получите ошибки линтинга и предупреждения в файле.

Отладка

С настроенными инструментами давайте сделаем еще один шаг вперед. Установите точку останова в строке 1 hello.py, щелкнув поле слева от номера строки или поместив курсор на строку и нажав F9.

Теперь нажмите F5, чтобы запустить приложение. Вас спросят, как запустить приложение, и, поскольку это простой файл, просто выберите Python File .

Приложение запустится, и вы попадете в точку останова.Вы можете проверять переменные, создавать часы и перемещаться по стеку вызовов.

Нажмите F10 для перехода, и вы увидите вывод оператора печати в консоли отладки.

Вы получаете полный опыт разработки Visual Studio Code, используя экземпляр Linux, установленный в WSL.

Если вы хотите открыть другую папку в WSL, откройте меню Файл и выберите Открыть папку . Вы получите минимальный навигатор по файлам и папкам для файловой системы Linux, а не для файловой системы Windows.

Если вы хотите вернуться к Windows, выберите опцию Show Local , и вы получите стандартный диалог открытия файла Windows.

Завершение соединения WSL

Вы можете завершить сеанс в WSL и вернуться к запуску VS Code локально с помощью команды File > Close Remote Connection .

Поздравляем!

Поздравляем, вы успешно завершили этот урок!

Затем ознакомьтесь с другими расширениями удаленной разработки.

Или получите их все, установив
Пакет расширений для удаленной разработки.

05.08.2021

Как установить подсистему Windows для Linux 2 в Microsoft Windows 10

Введение

Подсистема Windows для Linux 2, WSL 2 или WSL для краткости, представляет собой инструмент в Microsoft Windows 10, который позволяет разработчикам запускать среду Linux непосредственно в Windows без каких-либо модификаций, дополнительного программного обеспечения виртуальной машины или настройки двойной загрузки.WSL изначально интегрируется с большинством приложений на вашей рабочей станции, обеспечивая возможность разработки в стиле Linux в Windows. WSL выполняет это с помощью встроенного программного обеспечения виртуализации Microsoft под названием Hyper-V.

В этом руководстве вы включите WSL, установите Ubuntu 20.04 на свою рабочую станцию ​​с помощью WSL и установите новую командную строку Windows от Microsoft для доступа к вашей установке Ubuntu 20.04. Это предоставит вам среду программирования Linux, которая является родной для Windows.

Предварительные требования

Чтобы следовать этому руководству, вам понадобится:

  • Персональный компьютер с установленной Windows 10 : Подсистема Windows для
    Для Linux 2 требуется Windows 10 версии 1903 или выше со сборкой 18362 или выше. Для систем ARM64 требуется версия 2004 или выше со сборкой 19041. Сборки ниже этого не будут поддерживать WSL 2.

Предупреждение: Если вы устанавливаете WSL на виртуальную машину, вам необходимо предоставить ей флаги виртуализации ЦП.Например, если вы устанавливаете WSL на виртуализированную Windows 10, работающую в Hyper-V с именем MyWSL , вам потребуется выполнить следующую команду на узле виртуализации, а не на виртуальной машине. Это команда Windows, поэтому для этого вам потребуется приглашение PowerShell с повышенными привилегиями. Замените MyWSL именем вашей виртуальной машины в Hyper-V:

  
  • Set-VMProcessor -VMName MyWSL -ExposeVirtualizationExtensions $ true

Если вы не устанавливаете WSL на виртуальную машину, вы можете полностью пропустить это предупреждение.

Шаг 1. Включение служб Windows для WSL

Первое, что вам нужно сделать, это включить определенные службы Windows, чтобы можно было запускать WSL. Эти службы поставляются с Windows, но по умолчанию отключены, пока вы не решите, что они вам нужны. Откройте меню Start и найдите PowerShell . Вам нужно будет щелкнуть правой кнопкой мыши PowerShell и выбрать Запуск от имени администратора .

Как только вы это сделаете, откроется окно PowerShell.Вы воспользуетесь средством обслуживания и управления образами развертывания Windows , чтобы включить дополнительные функции Windows, которые по умолчанию отключены. Выполните следующую команду, чтобы включить функцию WSL:

  PS C: \ Windows \ system32> dism.exe / online / enable-feature / featurename: Microsoft-Windows-Subsystem-Linux / all / norestart
  

После запуска команды вы увидите следующий результат:

  

вывод

Средство обслуживания и управления образами развертывания Версия: 10.0,19041,844 Версия изображения: 10.0.19042.985 Включение функции (-ов) [========================== 100,0% ===================== =====] Операция завершилась успешно.

Затем выполните следующую команду в PowerShell, чтобы включить платформу виртуальных машин Windows. Это позволяет второму поколению WSL, включая Hyper-V и позволяя Windows устанавливать Linux с его помощью.

  PS C: \ Windows \ system32> dism.exe / online / enable-feature / имя функции: VirtualMachinePlatform / all / norestart
  

После запуска команды вы увидите следующий результат:

  

вывод

Средство обслуживания и управления образами развертывания Версия: 10.0,19041,844 Версия изображения: 10.0.19042.985 Включение функции (-ов) [========================== 100,0% ===================== =====] Операция завершилась успешно.

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

После завершения перезагрузки снова войдите на свою рабочую станцию.

Затем вам нужно будет загрузить последний пакет обновления ядра Linux от Microsoft и установить его.

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

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

  PS C: \ Windows \ system32> wsl --set-default-версия 2
  

После запуска команды вы увидите следующий результат:

  

вывод

Для получения информации об основных отличиях от WSL 2 посетите https: // aka.мс / WSL2

Теперь, когда вы это сделали, WSL 2 включен и готов к работе на вашей рабочей станции. Затем вам нужно будет установить операционную систему на основе Linux с помощью WSL 2.

Шаг 2. Установка Ubuntu 20.04 с использованием WSL

Теперь, когда у вас установлен WSL 2, вам необходимо установить дистрибутив Linux из Microsoft Store. В этом руководстве мы будем устанавливать вариант Ubuntu по умолчанию из магазина, которым в настоящее время является Ubuntu 20.04.Есть много различных вариантов на выбор, и все они должны использовать почти идентичный подход к установке, изложенный в этом руководстве.

Откройте меню Пуск , найдите Microsoft Store и откройте его.

Найдите строку поиска в верхнем правом углу и найдите Linux .

Появится множество опций; выберите плитку Ubuntu , чтобы установить последнюю поддерживаемую версию Ubuntu.Нажмите кнопку Получить , чтобы добавить приложение в свою учетную запись. После этого кнопка Get будет заменена кнопкой Install . Нажмите эту кнопку, чтобы установить Ubuntu на вашу локальную рабочую станцию. После завершения установки появится кнопка Launch . Щелкните здесь, чтобы запустить Ubuntu.

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

После того, как вы создали своего пользователя, начальная настройка завершена, и Ubuntu готов к использованию.

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

Шаг 3. Установка и настройка новой командной строки Windows

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

Затем вы установите этот терминал на свою рабочую станцию. Вернитесь к строке поиска в Microsoft Store и найдите Terminal .

Установите Windows Terminal так же, как вы установили Ubuntu, нажав Get и Install . Запустите терминал, нажав Launch или выбрав программу в меню Start .

По умолчанию терминал Windows открывает консоль PowerShell.

Если вы хотите открыть другую консоль, нажмите кнопку со стрелкой вниз, чтобы увидеть, что доступно. По умолчанию у вас есть доступ к PowerShell, командной строке и Azure Cloud Shell. Когда вы устанавливаете любой WSL Linux, он будет отображаться здесь, как и установка Ubuntu. При нажатии на Ubuntu откроется оболочка Ubuntu в новой вкладке.

Если вы хотите изменить некоторые параметры Терминала по умолчанию, нажмите кнопку со стрелкой вниз и выберите Настройки .

Затем установите Ubuntu в качестве консоли по умолчанию. В профиле по умолчанию выберите образ Ubuntu WSL и нажмите Сохранить , чтобы сделать его вариантом по умолчанию.

Теперь, когда вы нажимаете кнопку + или открываете новый терминал, Ubuntu будет оболочкой по умолчанию.

Теперь у вас установлен новый инструмент командной строки Windows, настроенный на открытие терминала WSL Ubuntu по умолчанию. Теперь вы готовы использовать Linux в Windows с помощью WSL.

Заключение

Теперь у вас есть полностью работающая среда Linux, работающая в Windows. Вы настроили свой компьютер для использования преимуществ подсистемы Windows для Linux и установили среду Ubuntu с помощью WSL. Если вы предпочитаете другой дистрибутив Linux, вы можете установить другие, включая Debian, SUSE или Kali Linux. Отсюда вы можете установить инструменты разработчика, чтобы полноценная среда разработки Linux работала в Windows.

Microsoft упростила установку подсистемы Windows для Linux в Windows 11 (и 10)

Подсистема Windows

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

Итак, компания что-то сделала. В последних предварительных сборках Windows 11 и Windows 10 вам не нужно прыгать через бесконечные обручи, чтобы установить WSL2; теперь достаточно одной команды.

См. Также:

В своем сообщении в блоге командной строки Windows менеджер программ для платформы разработки Windows Крейг Лёвен объясняет: «Процесс настройки WSL ранее был слишком сложным и включал включение нескольких параметров и установку нескольких пакетов.Мы упростили процесс до одной команды «.

Далее он раскрывает, как работает этот процесс:

Просто откройте окно командной строки с правами администратора и запустите wsl.exe --install . После того, как вы нажмете Enter, процесс автоматически включит необходимые дополнительные функции WSL, установит дистрибутив Ubuntu по умолчанию и установит последнюю версию ядра WSL Linux на ваш компьютер. Когда он будет завершен и вы перезагрузите компьютер, ваш дистрибутив запустится после повторной загрузки, завершающей установку.

Здесь также стоит отметить некоторые другие команды. Их можно использовать в PowerShell или командной строке Windows:

wsl --list --online отображает список доступных дистрибутивов Linux

wsl --install -d устанавливает дистрибутив, отличный от Ubuntu

wsl --update вручную обновляет ядро ​​WSL Linux

wsl --status отображает общую информацию о конфигурации WSL

Вы должны работать под управлением Windows 10 версии 2004 или более поздней и иметь установленное обновление KB5004296, чтобы воспользоваться преимуществами этой новой процедуры установки WSL с одной командой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *