Jak włączyć podsystem Linux w systemie Windows Server 2016

Jedna z innowacji wersji Windows Server 2016 RedStone 3 (1709) jest natywną obsługą uruchamiania natywnych plików binarnych ELF64 systemu Linux. Ta funkcjonalność jest realizowana za pomocą oddzielnego komponentu Podsystem Windows dla systemu Linux (WSL), który zapewnia pożądaną warstwę zgodności. W tym artykule przeglądowym pokażemy, jak włączyć podsystem Windows dla systemu Linux w systemie Windows Server 2016 i używać go do uruchamiania aplikacji Linux.

Możliwość uruchamiania aplikacji Linux w systemie Windows została wcześniej wprowadzona w systemie Windows 10. Ta funkcja została nazwana Bash na Windowsie. Począwszy od Windows 10 Fall Creators Update ta nazwa nie jest już używana i oficjalnie ten podsystem nazywa się teraz WSL - Windows Subsystem for Linux. Ponadto, aby z niego korzystać, nie trzeba już przełączać systemu operacyjnego do trybu programisty. WSL jest dostępny na maszynach wirtualnych z systemem Windows Server i Microsoft Azure

Zakładamy, że już pobrałeś i zainstalowałeś wersję Windows Server> = 1709. Może to być serwer z pełnym GUI lub w trybie Core.

Możesz sprawdzić bieżącą wersję systemu operacyjnego w następujący sposób:

informacje systemowe | Wybierz ciąg „^ Nazwa systemu operacyjnego”, „^ Wersja systemu operacyjnego”

Aby sprawdzić, czy Twoja wersja systemu Windows Server ma funkcje WSL, uruchom następujące polecenie:

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

Aby włączyć obsługę podsystemu Linux, uruchom polecenie:

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

Następnie serwer musi zostać zrestartowany.

Następnie musisz pobrać archiwum z dostosowaną dystrybucją systemu Linux. Microsoft oferuje obecnie wsparcie dla następujących dystrybucji:

  • Ubuntu - https://aka.ms/wsl-ubuntu-1604
  • OpenSUSE - https://aka.ms/wsl-opensuse-42
  • SLES - https://aka.ms/wsl-sles-12 - korporacyjna wersja SUSE

Dystrybucje CentOS i Fedory planowane są w najbliższej przyszłości.

Na przykład za pomocą programu PowerShell za pośrednictwem protokołu HTTP pobierz archiwum z dystrybucją Ubuntu:

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

Rozmiar archiwum wynosi około 200 MB. Rozpakuj to:

Rozwiń-Archiwum ~ / Ubuntu.zip ~ / Ubuntu

Oryginalne archiwum można usunąć:

Usuń Ubuntu.zip

Aby rozpocząć instalację dystrybucji, wystarczy uruchomić plik:

Ubuntu.exe

Spowoduje to uruchomienie kreatora instalacji, który poprosi o podanie nazwy użytkownika i hasła, które będą używane do uzyskiwania dostępu do środowiska Linux (to konto nie jest podłączone do systemu Windows i jest częścią grupy sudoers, więc można używać polecenia sudo do instalowania pakietów)

Uruchom aktualizację dystrybucji:

sudo apt-get update
sudo apt-get upgrade

Aby wyjść z polecenia powłoki Linux i powrócić do programu PowerShell, wpisz:

Wyjdź

Możesz otworzyć powłokę w dowolnym momencie za pomocą polecenia:

uderzenie

Możliwe jest uruchamianie poleceń Linuksa z konsoli Windows i odwrotnie. Na przykład w konsoli PowerShell można wyświetlić listę plików w katalogu za pomocą polecenia ls. Format polecenia powinien wyglądać następująco:

bash -c „ls -la”

Aby wywołać polecenie systemu Windows z systemu Linux, format powinien wyglądać następująco:

cmd.exe / c reż

Uwaga. Należy pamiętać, że podczas uruchamiania plików wykonywalnych systemu Windows należy określić rozszerzenie i rozróżniać wielkość liter w nazwie oryginalnego pliku.

Należy zauważyć, że tylko pliki wykonywalne systemu Windows opisane w specjalnej zmiennej środowiskowej można uruchomić z systemu Linux. Aby dodać nową ścieżkę do zmiennej środowiskowej, uruchom polecenie:

eksport ŚCIEŻKA = $ ŚCIEŻKA: / mnt / c / Windows / System32

Teraz możesz wywołać dowolny plik z katalogu% WinDir% \ system32.

Aby przekazać parametr do pliku wejściowego pliku wykonywalnego, musisz użyć następujących konstrukcji:

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

Wszystkie pliki wykonywalne w tym przypadku są uruchamiane w kontekście konta, które uruchomiło bash.exe.

Podsystem WSL może więc służyć do testowania, opracowywania i uruchamiania narzędzi systemu Linux, które nie są dostępne w środowiskach Windows, bez konieczności wdrażania i konfigurowania osobnej maszyny wirtualnej z systemem Linux.