Catégories
Astuces et Design

WSL2: Guide du développeur du sous-système Windows pour Linux 2

Ce didacticiel montre comment installer, gérer et utiliser un environnement Linux complet sur votre PC Windows 10 avec WSL2. Vous exécuterez un noyau Linux et exécuterez des applications natives tout en partageant de manière transparente des fichiers et des services avec les éditeurs de code et les navigateurs Windows.

Pourquoi utiliser Linux?

Votre hôte utilise presque certainement Linux. Il est rapide, open source et exécute la majorité des logiciels Web, notamment:

  • serveurs (Apache, NGINX, LiteSpeed, etc.)
  • les environnements d'exécution du langage (PHP, Python, Node.js, Ruby, etc.)
  • bibliothèques utilitaires (manipulation d'images, création de ZIP, emailers, etc.)
  • bases de données (MySQL, MongoDB, Redis, etc.)
  • autres dépendances (Elastic Search, RabbitMQ, proxies, etc.)

Certaines de ces dépendances peuvent être disponibles sur Windows et macOS, mais l'installation et la maintenance de versions identiques sont difficiles. Ils sont souvent plus lents et vous pouvez rencontrer des différences subtiles qui n'apparaîtront pas avant le déploiement.

Certains développeurs installent Linux sur leur bureau, mais cela peut ne pas être viable si vous avez régulièrement besoin de logiciels non Linux tels que des produits Microsoft ou Adobe. Options alternatives:

  1. Utilisez deux PC ou un double démarrage sur un seul appareil. La commutation entre les systèmes peut être fastidieuse.
  2. Exécutez une machine virtuelle Linux (VM) à l'aide d'Hyper-V, VirtualBox, Parallels, WMware ou Vagrant. Cela nécessite des ressources système considérables et des connaissances informatiques raisonnables. Le partage de fichiers entre les systèmes peut être gênant.
  3. Exécutez des applications Web dans des conteneurs Docker. C’est un autre sujet à apprendre et Docker lui-même s’exécute nativement sous Linux. Les éditions Windows et macOS utilisent Linux sous la surface.

Qu'est-ce que le sous-système Windows pour Linux?

Le sous-système Windows pour Linux (WSL) permet aux développeurs d’exécuter un environnement Linux directement sur Windows 10. Il s’agit d’un système d’exploitation non modifié, mais hautement intégré à Windows et sans la surcharge d’une machine virtuelle.

WSL1 était révolutionnaire et traduisait les appels système Linux en équivalents Windows. Cela peut être lent et plusieurs fonctionnalités ne sont pas disponibles. WSL2 utilise la technologie de machine virtuelle Hyper-V, donc la compatibilité Linux est excellente et l'accès aux fichiers est jusqu'à 20 fois plus rapide qu'auparavant.

Configuration requise pour Windows 10

WSL2 est compatible avec les éditions Home, Pro ou Server de Windows mais ne pas Windows 10 S (bien que vous puissiez souvent passer à l'édition familiale gratuitement).

La mise à jour Windows de mai 2020 est essentielle – c'est la version 2004 ou supérieure. Choisir la Paramètres rouage dans le menu Démarrer, puis sélectionnez Système suivi par À propos. le Spécifications Windows sont affichés en bas du panneau:

Spécifications Windows

La mise à jour se déploie lentement depuis fin mai 2020. Si vous disposez d'une version antérieure à 2004, vous pourrez peut-être déclencher la mise à jour en cliquant sur le bouton Rechercher des mises à jour bouton dans Paramètres, puis Mise à jour et sécurité.

Si 2004 reste obstinément indisponible, vous pourrez peut-être le télécharger et l'installer manuellement à partir de microsoft.com/software-download/windows10

Cependant, sachez que certains PC signalent que la version 2004 n'est actuellement pas disponible dans le Windows Update panneau. Vous ne pourrez pas effectuer la mise à niveau tant que Microsoft n’aura pas publié un correctif pour votre appareil.

Exigences du PC

WSL2 (et Hyper-V) nécessitent la prise en charge de la virtualisation matérielle pour être activée dans votre BIOS.

AVERTISSEMENT: jouer avec les paramètres de votre BIOS peut détruire votre PC! Soyez prudent lorsque vous effectuez des modifications. Consultez les pages d’aide de votre fabricant ou recherchez des conseils en ligne sur votre marque et votre modèle spécifiques.

La virtualisation matérielle sera active sur la plupart des périphériques, mais vous pouvez vérifier en redémarrant et en ouvrant les panneaux du BIOS – généralement en appuyant sur le DEL, F2, ou F10 clé au démarrage du système. Chercher Technologie virtuelle, VTx ou des options similaires. Assurez-vous qu'ils sont activés, enregistrez et redémarrez l'appareil.

Enfin, assurez-vous C: le lecteur dispose d'au moins 1 Go d'espace disque disponible, idéalement plus. Vous pourrez peut-être libérer de l'espace dans Paramètres, Système, Espace de rangement ou en utilisant le Nettoyage de disque outil dans Outils d'administration Windows.

Au moment de la rédaction de cet article, WSL2 installera Linux sur votre C: lecteur, bien qu’il soit possible de le déplacer ailleurs après l’installation.

Activer WSL2

le Plateforme de machine virtuelle et Sous-système Windows pour Linux les fonctionnalités doivent être activées dans Activer ou désactiver des fonctionnalités Windows. Le panneau est accessible en appuyant sur Démarrer et en tapant "fonctionnalités" ou du Programmes et fonctionnalités icône dans le panneau de configuration classique.

activer WSL2

Vous pouvez également exécuter les commandes suivantes dans un terminal Windows Powershell exécuté en tant qu'administrateur:

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

Redémarrez Windows 10, puis activez WSL2 par défaut en entrant la commande suivante dans un Windows PowerShell ou une invite de commande:

wsl --set-default-version 2

Télécharger Linux

Vous pouvez installer n'importe quel nombre de distributions Linux à partir du Microsoft Store accessible dans le menu Démarrer. Cela inclut Ubuntu, Debian, SUSE, Kali et Alpine. Entrer «Linux» dans le champ de recherche:

Microsoft Store

Ubuntu est un bon choix sauf si vous avez des exigences spécifiques. La dernière édition sera installée si vous cliquez sur le Ubuntu l'icône a suivi le Avoir bouton.

Le téléchargement peut prendre un certain temps en fonction de la vitesse de votre réseau.

Lancer Linux

Après le téléchargement, cliquez sur le lancement bouton sur le Microsoft Store app, ou la nouvelle Ubuntu icône dans le menu Démarrer. Cela terminera le processus d'installation et peut prendre plusieurs minutes.

Remarque: la première fois que vous lancez une distribution WSL2, vous mai voir un message dans le terminal concernant une mise à jour du noyau. Copiez le lien dans votre navigateur, puis téléchargez et installez la mise à jour. Vous devrez à nouveau lancer Ubuntu pour continuer l'installation.

Vous serez invité à entrer un nom d'utilisateur et un mot de passe. Voici les informations d'identification pour l'administration Linux: ils sont complètement séparés de votre nom d'utilisateur et de votre mot de passe Windows (bien que choisir les mêmes peut être pratique).

Linux sera finalement prêt et votre terminal affichera un contenu similaire à celui-ci:

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: ******
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 4.19.104-microsoft-standard x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Mon Jul 6 12:07:38 BST 2020

  System load:  0.27               Processes:             8
  Usage of /:   0.4% of 250.98GB   Users logged in:       0
  Memory usage: 0%                 IPv4 address for eth0: 172.21.232.173
  Swap usage:   0%

0 updates can be installed immediately.
0 of these updates are security updates.

The list of available updates is more than a week old.
To check for new updates run: sudo apt update

Mettre à jour Linux

Il y aura probablement plusieurs mises à jour Linux. Pour mettre à jour Ubuntu, entrez les commandes suivantes dans le terminal Linux:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove

D'autres distributions Linux auront un processus similaire, mais consultez la documentation pour obtenir de l'aide.

Basculer entre WSL1 et WSL2

Les distributions WSL1 existantes peuvent être converties en WSL2. Saisie de la commande suivante dans un terminal Windows Powershell pour afficher les distributions Linux installées et leur version WSL:

PS C:> wsl --list --verbose

  NAME    STATE    VERSION
* Ubuntu  Running  1

(L'astérisque * met en évidence l'installation Linux par défaut.)

Commuter Ubuntu à WSL2, entrez:

wsl --set-version Ubuntu 2

De même, pour revenir à WSL1, entrez:

wsl --set-version Ubuntu 1

Définir une distribution Linux par défaut

Lorsque vous avez plusieurs distributions Linux installées, une doit être définie par défaut. Il sera utilisé lorsque wsl est entré dans un terminal Windows Powershell.

Pour définir la distribution par défaut, répertoriez vos installations:

wsl --list

et définissez une valeur par défaut avec:

wsl --setdefault 

Exemple Ubuntu: wsl --setdefault Ubuntu.

Exécutez Linux en tant qu'utilisateur spécifique

Pour exécuter votre distribution par défaut en tant qu'utilisateur spécifique, entrez la commande suivante dans un terminal Windows Powershell:

wsl --user 

Un utilisateur par défaut est défini lors de l'installation et vous pouvez en créer d'autres. UNE root l'utilisateur est également créé, mais vous devez éviter de l'utiliser dans des circonstances normales. Il est trop facile d’entrer une commande dangereuse!

Déplacer votre image de disque Linux

L'image disque Linux est installée sur votre C: conduire. Vous pouvez éventuellement le déplacer vers un autre lecteur pour libérer de l'espace. Les instructions suivantes supposent que vous allez le déplacer vers D:wsl.

Dans un terminal Windows Powershell (ne pas le terminal Ubuntu), entrez wsl --list pour afficher vos distributions Linux, puis en exporter une par nom vers une sauvegarde .tar fichier, par exemple D:backupubuntu.tar:

mkdir D:backup
wsl --export Ubuntu D:backupubuntu.tar

Désenregistrez la même distribution pour la supprimer du C: conduire:

wsl --unregister Ubuntu

Entrer wsl --list pour vérifier que la distribution a été supprimée.

Importez la sauvegarde dans une nouvelle distribution WSL2 à un autre emplacement, tel que D:wsl:

mkdir D:wsl
wsl --import Ubuntu D:wsl D:backupubuntu.tar

Vérifiez qu'il a été créé avec succès en entrant wsl --list et lancer le Ubuntu app dans le menu Démarrer.

Malheureusement, Ubuntu utilisera désormais root comme utilisateur par défaut. Pour utiliser votre propre compte, entrez la commande suivante:

ubuntu config --default-user 

est le nom d'utilisateur que vous avez défini lors de l'installation.

En supposant que tout s'est bien passé, vous pouvez supprimer en toute sécurité le fichier de sauvegarde (D:backupubuntu.tar).

Installer le terminal Windows

Pour lancer le terminal Linux, vous pouvez utiliser l'icône Ubuntu, entrez wsl ou bash dans Powershell, ou utilisez une option tierce telle que Cmder, ConEmu ou Hyper. Les profils peuvent être définis pour lancer %windir%system32bash.exe ~.

Une autre option est Terminal Windows, qui est également disponible sur le Microsoft Store ou son référentiel sur github.com/microsoft/terminal/.

Terminal Windows

Windows Terminal ajoutera automatiquement vos distributions WSL2 Linux et offre une gamme d'options hautement configurables, notamment des onglets, des vues fractionnées, des thèmes, la transparence et des raccourcis clavier.

Les options sont définies dans le settings.json fichier accessible depuis le Paramètres menu ou Ctrl + , (virgule). Les valeurs par défaut et les paramètres de thème peuvent être affichés dans defaults.json, accessible en maintenant Alt en cliquant sur le Paramètres menu.

Si vous souhaitez obtenir un guide complet et détaillé sur l’installation, la configuration et l’utilisation du terminal Windows, nous sommes là pour vous.

➤ Le guide complet du terminal Windows

Accès aux fichiers Linux depuis Windows

Les fichiers Linux sont accessibles via le chemin réseau \wsl$. Cela peut être entré dans la barre d'adresse de l'Explorateur de fichiers ou dans n'importe quelle boîte de dialogue d'ouverture de fichier.

Vos distributions Linux installées sont répertoriées, vous pouvez donc accéder au répertoire racine Ubuntu à l'adresse \wsl$Ubuntu. Vos fichiers Linux personnels seront généralement stockés dans:

\wsl$Ubuntuhome

Il est préférable de l’utiliser comme dossier de départ dans le terminal Windows. Ouvrez le Paramètreset ajoutez la ligne de configuration suivante au profil Ubuntu:

"startingDirectory": "//wsl$/Ubuntu/home//",

est le nom d'utilisateur que vous avez défini lors de l'installation.

Mapper un lecteur réseau

Vous pouvez monter un lecteur réseau sur \wsl$Ubuntu en ouvrant \wsl$ dans l'Explorateur de fichiers, en cliquant avec le bouton droit sur le dossier Ubuntu et en choisissant Carte lecteur réseau….

mapper le lecteur Linux

Malheureusement, il n’est actuellement pas possible de mapper des sous-répertoires plus profonds. Vous pouvez également rencontrer des problèmes de lecteur mappé avec certaines applications.

Accès aux fichiers Windows depuis Linux

Les lecteurs Windows sont montés sous Linux /mnt/ annuaire. Par exemple, votre dossier Utilisateurs personnel à C:Users est disponible à:

/mnt/c/Users/

Pour faciliter l'accès, vous pouvez créer un lien symbolique vers n'importe quel dossier Windows à partir du terminal Ubuntu, par exemple pour C:projectscode:

cd ~
ln -s /mnt/c/projects/code/

UNE code Le dossier apparaîtra dans votre répertoire personnel. Accédez-y en utilisant cd ~/code et vous serez réellement dans /mnt/c/projects/code/, qui correspond directement à C:projectscode.

L'accès aux fichiers Windows à partir de Linux est considérablement plus lent que l'utilisation du système de fichiers Linux natif. Dans la mesure du possible, créez des projets dans l'espace fichier Linux, généralement dans votre dossier de départ (/home// ou ~).

Exécution de commandes Linux à partir de Windows

Toute commande shell Linux (bash) peut être exécutée à partir d'un Windows Powershell ou d'un terminal de ligne de commande en utilisant wsl:

wsl 

Par exemple: wsl ls -la répertorie le contenu complet et les détails des fichiers dans un dossier Windows.

Exécution d'applications Windows à partir de Linux

Tout exécutable Windows peut être lancé à partir de Linux (il est normalement nécessaire de spécifier le .exe extension). Par exemple, pour ouvrir le répertoire Linux actuel dans l'Explorateur de fichiers, entrez:

explorer.exe .

ou modifier .bashrc dans le Bloc-notes:

notepad.exe ~/.bashrc

ou ouvrez le répertoire d'un projet spécifique dans VS Code:

code ~/projects/mywebsite

Installer des applications

Rappelez-vous toujours que vous courez deux systèmes d'exploitation. Ils peuvent être hautement intégrés, mais il existe des situations où vous souhaitez qu'une application soit installée dans l'un ou les deux.

Il peut être pratique d'utiliser Git sous Windows ou Linux. L'édition Windows est installée en téléchargeant un exécutable, mais Git sur Ubuntu est installé en utilisant:

sudo apt-get update
sudo apt-get install git-all

De même, vous souhaiterez peut-être tester les applications Node.js sous Windows et Linux. Encore une fois, Windows a un programme d'installation, mais Node.js 14.x est installé dans Ubuntu à l'aide des commandes:

sudo apt-get install build-essential
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

git, node et npm les commandes fonctionneront désormais dans les deux environnements.

Installation de Docker

Une exception à la "Installer deux fois" la règle est Docker!

Docker exécute des applications dans des conteneurs Linux isolés qui sont conceptuellement similaires aux machines virtuelles légères avec un système d'exploitation, une application unique et ses dépendances. L'utilisation de Docker pour le développement Web fournit un environnement cohérent qui est facile à installer et fonctionne sur n'importe quel appareil.

Docker Desktop pour Windows est entièrement compatible WSL2:

  • il n'est pas nécessaire d'utiliser Hyper-V, Docker peut donc être installé sur Windows Home
  • Docker démarre et s'exécute beaucoup plus rapidement lorsqu'il est configuré pour utiliser WSL2
  • l'installation de Docker Desktop sur Windows permet docker et docker-compose sous Windows et Linux.

Docker Desktop vous suggère d'utiliser WSL2 lors de son premier lancement. Vous pouvez également sélectionner Paramètres dans le menu de l'icône de la barre d'état système de Docker, puis choisissez Général onglet, vérifier Utilisez le moteur basé sur WSL 2, et frappé Appliquer et redémarrer.

Moteur Docker WSL2

Docker utilisera la distribution Linux par défaut, mais vous pouvez également l'activer dans d'autres distributions installées à partir du Intégration WSL panneau dans Paramètres, puis Ressources.

Lancement d'applications Apache et PHP à l'aide de Docker

Il est possible d'installer des dépendances Web telles qu'Apache et PHP directement dans votre environnement WSL2 Linux. Cependant, Docker est plus sûr, plus rapide et plus configurable: il vous permet d'exécuter différentes versions de PHP sur le même appareil en même temps.

Dans cet exemple, vous allez créer un petit fichier PHP et l'exécuter à l'aide de la dernière version de PHP 7.4 dans un conteneur Docker. Vérifiez que vous avez installé Docker Desktop pour Windows et activé le mode WSL2, puis créez un dossier dans votre environnement Linux avec un index.php fichier. Par exemple:

mkdir ~/php
cd ~/php
touch index.php

Éditer index.php, peut-être en utilisant Notepad ou VS Code comme indiqué ci-dessus. Ajoutez le contenu suivant qui génère des informations sur l'état de PHP:

Exécutez ce qui suit docker commande pour démarrer un serveur Web Apache compatible PHP 7.4 dans un conteneur qui monte les fichiers dans le répertoire hôte pour /var/www/html dans le conteneur:

docker run 
  -it --rm -p 8080:80 --name php 
  -v "$PWD":/var/www/html 
  php:7.4-apache

Remarque: cette commande fonctionnerait également sous Windows, bien que la référence à $PWD devrait être remplacé par le chemin complet du fichier en notation Linux, par exemple /c/php/.

Ouvert https://localhost:8080/ dans n'importe quel navigateur Web Windows pour afficher la sortie générée par votre fichier PHP:

Conteneur Docker exécutant Apache et PHP

Pour terminer, appuyez sur Ctrl + C dans votre terminal Docker pour arrêter et supprimer le conteneur.

WSL2 et localhost

Les applications exécutées sur des conteneurs Windows, WSL2 Linux et Docker sont toujours accessibles depuis localhost ou 127.0.0.1.

L'exemple PHP ci-dessus le port exposé 8080, qui a été mappé au port 80 dans le conteneur. De même, si Node.js est installé sous Linux, vous pouvez cd dans n'importe quel répertoire et démarrez un serveur de fichiers statique:

npx small-static-server

Ouvert http://localhost:8888/ dans un navigateur pour afficher les fichiers de ce répertoire (index.html est renvoyé par défaut).

Sachez que les ports disponibles dans un système d'exploitation peuvent ne pas être disponibles dans l'autre. Le port 80 est souvent réservé par l'application Skype Windows 10 et il ne peut pas être modifié (bien que l'édition Desktop classique le permette).

Les certificats SSL auto-signés ou approuvés localement à l'aide d'outils tels que mkcert peuvent être utilisés de manière interchangeable dans les environnements Windows et Linux.

Intégration VS Code WSL2

Le shell WSL2 peut être choisi comme terminal VS Code par défaut en appuyant sur Ctrl + Décalage + P et taper / choisir Terminal: sélectionnez le shell par défaut, puis en sélectionnant WSL Bash:

Shell de terminal par défaut VS Code

Comme d'autres applications, VS Code peut accéder directement aux fichiers Linux sur \wsl$ et les débogueurs fonctionnant sur localhost. Aucune extension supplémentaire n'est nécessaire, mais les options suivantes facilitent la gestion des fichiers Linux et Docker:

Après l'installation À distance - WSL, vous pouvez accéder à n'importe quel répertoire Linux et lancer une instance de VS Code connectée à WSL:

cd ~/myproject
code .

Sinon, cliquez sur le fenêtre distante icône en bas à gauche de l'application, puis choisissez une option de connexion:

Icône de fenêtre distante VS Code

Ou utilisez le nouveau Explorateur distant icône dans la barre d'activités. Cela vous permet de choisir un type de cible dans la liste déroulante et de vous connecter en conséquence:

Explorateur distant VS Code

L'instance distante de VS Code a un ensemble séparé d'extensions et de paramètres pour une utilisation Linux. Cela permet le débogage de code WSL2 et est pratique lorsque vous disposez d'un mélange de langages d'exécution installés dans l'un ou l'autre des systèmes d'exploitation, une extension n'est pas disponible dans un système ou nécessite des paramètres de système d'exploitation différents.

le Extensions panel vous permet d'activer et de configurer des extensions dans l'instance distante:

Extensions de code VS

Les paramètres sont stockés dans votre Linux ~/.vscode-server annuaire.

Résumé

WSL2 va révolutionner votre développement Web. Cela facilite l'écriture de code à l'aide des outils Windows, puis l'exécute dans un environnement Linux. Alors que c'était auparavant possible avec les machines virtuelles et les partages de dossiers Samba, WSL2 offre une expérience plus simple, plus rapide et hautement intégrée.

Autres ressources:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *