Fermer

septembre 1, 2020

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, y compris:

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

Certaines des ces dépendances peuvent être disponibles sur Windows et macOS, mais installer et maintenir des versions identiques est difficile. 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 Microsoft ou Adobe des produits. Options alternatives:

  1. Utilisez deux PC ou un double démarrage sur un seul appareil. Le basculement entre les systèmes peut être fastidieux.
  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. C'est 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 pas Windows 10 S (bien que vous puissiez souvent effectuer une mise à niveau gratuite vers l'édition familiale).

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

 Spécifications Windows

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

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

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

Configuration PC requise

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

AVERTISSEMENT: manipuler vos paramètres 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 DEL F2 ou F10 lors du démarrage du système. Recherchez Virtualization Technology VTx ou des options similaires. Assurez-vous qu'ils sont activés, enregistrez et redémarrez le périphérique.

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

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

Les fonctionnalités Virtual Machine Platform et Windows Subsystem for Linux doivent être activées dans Activer ou désactiver les fonctionnalités Windows . Le panneau est accessible en appuyant sur Démarrer et en tapant «features» ou à partir de l'icône Programs and Features dans le panneau de configuration classique.

 enable WSL2 [19659010] 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 / nom de la fonction: VirtualMachinePlatform / all / norestart

Redémarrez Windows 10, puis activez WSL2 par défaut en entrant la commande suivante dans un Powershell Windows 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. Entrez «Linux» dans la zone 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 l'icône Ubuntu suivie du bouton Obtenir .

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

Lancez Linux [19659003] Après le téléchargement, cliquez sur le bouton Lancer de l'application Microsoft Store ou sur la nouvelle icône Ubuntu dans le menu Démarrer. Ceci terminera le processus d'installation et peut prendre plusieurs minutes.

Remarque: la première fois que vous lancez une distribution WSL2, vous peut 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 relancer 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: elles sont complètement séparées de votre nom d'utilisateur et 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 à ceci:

 Installation, cela peut prendre quelques minutes ...
Veuillez créer un compte utilisateur UNIX par défaut. Le nom d'utilisateur n'a pas besoin de correspondre à votre nom d'utilisateur Windows.
Pour plus d'informations, visitez: https://aka.ms/wslusers
Entrez le nouveau nom d'utilisateur UNIX: ******
Nouveau mot de passe:
Re-taper le nouveau mot de passe:
passwd: mot de passe mis à jour avec succès
Installation réussie!
Pour exécuter une commande en tant qu'administrateur (utilisateur "root"), utilisez "sudo ".
Voir "man sudo_root" pour plus de détails.

Bienvenue dans Ubuntu 20.04 LTS (GNU / Linux 4.19.104-microsoft-standard x86_64)

 * Documentation: https://help.ubuntu.com
 * Gestion: https://landscape.canonical.com
 * Assistance: https://ubuntu.com/advantage

  Informations système au lun.juil.6 12:07:38 HAE 2020

  Charge système: 0,27 Processus: 8
  Utilisation de /: 0,4% de 250,98 Go Utilisateurs connectés: 0
  Utilisation de la mémoire: 0% adresse IPv4 pour eth0: 172.21.232.173
  Utilisation du swap: 0%

0 mises à jour peuvent être installées immédiatement.
0 de ces mises à jour sont des mises à jour de sécurité.

La liste des mises à jour disponibles date de plus d'une semaine.
Pour vérifier les nouvelles mises à jour, exécutez: sudo apt update

Mise à jour de Linux

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

 sudo apt-get update
mise à niveau sudo apt-get
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

  NOM ETAT VERSION
* Ubuntu en cours d'exécution 1

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

Pour basculer Ubuntu vers 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 plusieurs distributions Linux sont 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, listez vos installations:

 wsl --list

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

 wsl --setdefault 

Exemple d'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 --utilisateur 

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

Déplacer l’image de votre disque Linux

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

Dans un terminal Windows Powershell ( et non le terminal Ubuntu), entrez wsl --list pour afficher vos distributions Linux, puis exportez-en une par nom vers un fichier de sauvegarde .tar par exemple D: backup ubuntu.tar :

 mkdir D:  backup
wsl --exporter Ubuntu D:  backup  ubuntu.tar

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

 wsl --unregister Ubuntu

Entrez 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:  backup  ubuntu.tar

Vérifiez qu'il a bien été créé en saisissant wsl --list et en lançant l'application Ubuntu à partir du menu Démarrer.

Malheureusement, Ubuntu utilisera désormais la racine 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: backup ubuntu.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 n'importe quel tiers- option de groupe telle que Cmder ConEmu ou Hyper . Les profils peuvent être définis pour lancer % windir% system32 bash.exe ~ .

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

 Windows Terminal

Windows Terminal ajoutera automatiquement vos distributions WSL2 Linux et offre une plage hautement configurable d'options comprenant les onglets, les vues fractionnées, les thèmes, la transparence et les raccourcis clavier.

Les options sont définies dans le fichier settings.json accessible à partir du menu Settings ou Ctrl + (virgule). Les valeurs par défaut et les paramètres du thème peuvent être consultés dans defaults.json accessible en maintenant Alt tout en cliquant sur le menu Settings .

Si vous voulez le compléter guide détaillé d'installation, de configuration et d'utilisation du terminal Windows, nous avons ce qu'il vous faut.

Le guide complet du terminal Windows

Accès aux fichiers Linux à partir de Windows

Les fichiers Linux sont accessibles sur 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 d'Ubuntu à \ wsl $ Ubuntu . Vos fichiers Linux personnels seront généralement stockés à l'adresse:

 \ wsl $  Ubuntu  home  

Il est préférable de l’utiliser comme dossier de départ dans le terminal Windows. Ouvrez les Paramètres et 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 Mapper le 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 à partir de Linux

Les lecteurs Windows sont montés dans le répertoire Linux / mnt / . Par exemple, votre dossier Utilisateurs personnels sous C: Users est disponible sous:

 / 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 ex. pour C: projects code :

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

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

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 des commandes Linux à partir de Windows [19659003] Toute commande shell Linux (bash) peut être exécutée à partir d'un Powershell Windows ou d'un terminal de ligne de commande à l'aide de wsl :

 wsl 

Par exemple: wsl ls -la liste 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 normalement nécessaire pour spécifier l'extension .exe ). Par exemple, pour ouvrir le répertoire Linux actuel dans l'Explorateur de fichiers, entrez:

 explorer.exe.

ou modifiez .bashrc dans le Bloc-notes:

 notepad.exe ~ / .bashrc

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

 code ~ / projects / mywebsite

Installation d'applications

N'oubliez jamais que vous utilisez deux systèmes d'exploitation . Ils peuvent être hautement intégrés, mais il existe des situations où vous voulez qu'une application soit installée dans l'un ou les deux.

Il peut être pratique d'utiliser Git à partir de Windows ou de Linux. L'édition Windows est installée par 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
Les commandes 

git node et npm fonctionneront désormais dans l'un ou l'autre environnement.

Installation de Docker

Une exception à " installer deux fois » 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 , ainsi Docker peut ê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 active docker et docker-compose dans 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 choisir l'onglet Général cocher Utiliser le moteur basé sur WSL 2 et appuyer sur Apply & Restart .

 Docker WSL2 engine

Docker utilisera la distribution Linux par défaut, mais vous pouvez également l'activer dans d'autres distributions installées à partir de WSL Integration 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 Linux WSL2 . 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 en utilisant le 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 fichier index.php . Par exemple:

 mkdir ~ / php
cd ~ / php
touchez index.php

Editez 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:

 <? Php
phpinfo ();

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

 exécution du docker 
  -it --rm -p 8080: 80 --nom 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ée par le chemin d'accès complet au fichier en notation Linux, par ex. / c / php / .

Ouvrez https: // localhost: 8080 / dans n'importe quel navigateur Web Windows pour afficher la sortie générée par votre fichier PHP: [19659010]  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 à partir de localhost ou 127.0.0.1 .

The The ] Exemple PHP ci-dessus 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 vers n'importe quel répertoire et démarrer un serveur de fichiers statique:

 npx small-static-server

Ouvrez 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 disponible dans un système d'exploitation peut ne pas être disponible dans l'autre. Le port 80 est souvent réservé par l'application Skype de Windows 10 et il ne peut pas être modifié (bien que l'édition de bureau classique le permette).

Certificats SSL auto-signés ou approuvés localement à l'aide d'outils tels que comme mkcert peut être utilisé 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 + Shift + P et en tapant / en choisissant Terminal: Sélectionnez Default Shell puis en sélectionnant WSL Bash :

 VS Code shell terminal par défaut

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

Après avoir installé Remote – WSL vous pouvez accéder à n'importe quel répertoire Linux et lancer une instance de VS Code connectée à WSL :

 cd ~ / monprojet
code.

Vous pouvez également cliquer sur l'icône fenêtre distante en bas à gauche de l'application, puis choisir une option de connexion:

 icône de fenêtre distante VS Code

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

 VS Code Remote Explorer

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

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

 VS Code extensions

Les paramètres sont stockés dans votre répertoire Linux ~ / .vscode-server . [19659175] 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:




Source link