Как да активирате подсистема Linux в Windows Server 2016

Едно от нововъведенията на Windows Server 2016 версия RedStone 3 (1709) е естествена поддръжка за стартиране на родните Linux ELF64 двоични файлове. Тази функционалност се реализира чрез отделен компонент Подсистема на Windows за Linux (WSL), което осигурява желания слой за съвместимост. В тази статия за преглед ще покажем как да активираме подсистемата Windows за Linux в Windows Server 2016 и да я използваме за стартиране на Linux приложения.

Възможността за стартиране на Linux приложения в Windows беше въведена по-рано в Windows 10. Тази функция беше наречена Bash на прозорците. Като се започне от Актуализация на Windows 10 Fall Creators това име вече не се използва и официално тази подсистема вече се нарича WSL - Windows подсистема за Linux. Освен това, за да го използвате, вече няма нужда да превключвате ОС в режим на програмист. WSL се предлага както във виртуални машини на Windows Server, така и на Microsoft Azure

Предполагаме, че вече сте изтеглили и инсталирали изданието на Windows Server> = 1709. Това може да бъде сървър с пълен GUI или в основен режим.

Можете да проверите текущата версия на ОС така:

systeminfo | Select-String "^ Име на ОС", "^ Версия на ОС"

За да проверите дали вашата версия на Windows Server има WSL функционалност, изпълнете следната команда:

Вземете-WindowsOptionsFeature -Online -FeatureName Microsoft-Windows-Подсистема-Linux

За да активирате поддръжката за подсистемата Linux, изпълнете командата:

Активиране-WindowsOptionsFeature -Online -FeatureName Microsoft-Windows-Подсистема-Linux

След което сървърът трябва да се рестартира.

След това трябва да изтеглите архива с адаптирана Linux дистрибуция. В момента Microsoft предлага поддръжка за следните дистрибуции:

  • Ubuntu - https://aka.ms/wsl-ubuntu-1604
  • OpenSUSE - https://aka.ms/wsl-opensuse-42
  • SLES - https://aka.ms/wsl-sles-12 - корпоративна версия на SUSE

Дистрибуциите на CentOS и Fedora, планирани да бъдат добавени в близко бъдеще.

Например, използвайки PowerShell чрез HTTP протокол, изтеглете архива с дистрибуцията Ubuntu:

Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile ~ / Ubuntu.zip -UseBasicParsing

Размерът на архива е около 200 MB. Разопаковайте го:

Разширяване-Архив ~ / Ubuntu.zip ~ / Ubuntu

Оригиналният архив може да бъде изтрит:

Премахване-елемент Ubuntu.zip

За да започнете инсталирането на дистрибуцията, просто стартирайте файла:

Ubuntu.exe

Това ще стартира съветника за инсталиране, който ще ви помоли да посочите потребителското име и паролата, които ще използвате за достъп до средата на Linux (този акаунт не е свързан с Windows и е част от групата sudoers, така че е позволено да използвате командата sudo за инсталиране на пакети)

Изпълнете актуализацията на дистрибуцията:

sudo apt-get update
sudo apt-get upgrade

За да излезете от командната команда на Linux и да се върнете към PowerShell, въведете:

изход

Можете да отворите обвивка по всяко време с командата:

удрям

Възможно е да стартирате Linux команди от конзолата на Windows и обратно. Например в конзолата PowerShell можете да изброите файловете в директория с командата ls. Форматът на командата трябва да бъде следният:

bash -c “ls -la”

За да извикате команда на Windows от Linux, форматът трябва да е следният:

cmd.exe / c реж

забележка. Моля, обърнете внимание, че когато стартирате изпълними файлове на Windows, трябва да посочите разширението и да е чувствително към регистъра на името на оригиналния файл.

Трябва да се отбележи, че само онези изпълними файлове на Windows, които са описани в специална променлива среда, могат да бъдат стартирани от Linux. За да добавите нов път към променливата на околната среда, изпълнете командата:

експортиране на PATH = $ PATH: / mnt / c / Windows / System32

Сега можете да извикате всеки файл от директорията% WinDir% \ system32.

За да предадете параметър на входа на изпълнимия файл, трябва да използвате следните конструкции:

$ notepad.exe „C: \ temp \ test.txt“
$ notepad.exe C: \\ temp \\ test.txt

Всички изпълними файлове в този случай се стартират в контекста на акаунта, който стартира bash.exe.

Така че подсистемата WSL може да се използва за тестване, разработване и стартиране на Linux помощни програми, които не са налични в Windows среда, без да се налага да разгръщате и конфигурирате отделна виртуална машина на Linux.