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ż
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.