WSL 2 : Développez sous Windows comme sous 🐧Linux
Quoi ?! Tu es développeur et tu n’es pas sous Linux ? 😱
— Collègue relou 🤡
Qui n’a jamais entendu ce genre de remarque ? Quel développeur n’a jamais reçu un « Windows c’est de la 💩 » ? C’est bien connu : un VRAI développeur est barbu et code avec Vim sous Linux ?
Je vais être honnête avec vous : On vous a légèrement menti. En réalité, chacun est libre d’utiliser le système qu’il souhaite. On peut être un bon développeur et travailler sur Windows, tout comme on peut être UI Designer et ne pas être sous MacOS ! Malheureusement, les « religions » chez les développeurs ont la vie longue…
Toutefois, il y a quand même un fond de vérité derrière ce Troll. Que vous soyez développeur, devOps ou bien administrateur-système, un environnement Linux vous donnera accès à des utilitaires très pratiques qui ne sont malheureusement pas disponibles sous Windows.
Voyons comment bénéficier d’un système Linux embarqué dans Windows afin de pouvoir lancer des commandes Linux sous Windows.
Préparation de Windows et installation de WSL / Linux🐧
Le sous-système Windows pour de Linux (WSL) peut maintenant être installé à partir du Microsoft Store. C’est le même WSL que celui qui s’installe à partir de la ligne de commandes, il s’agit juste d’un mécanisme de livraison différent. L’installation du WSL à partir du Microsoft Store facilitera l’obtention des dernières mises à jour WSL à l’avenir.
Depuis windows-11-22h2 (Septembre 2022)
WSL permet d’exécuter un environnement Linux directement sous Windows, sans nécessiter un dual-boot ou l’installation d’une machine-virtuelle (VM).
L’intérêt principal est de pouvoir lancer des outils en ligne de commande sous Linux (grep
, tail
, etc), de lancer des scripts (bidule.sh
) ou des applications GNU/Linux (git
, php
, NodeJS
, Python
, MongoDB
, etc).
Ouvrez PowerShell en tant qu’administrateur et exécutez les commandes suivantes pour activer la fonctionnalité WSL ainsi que la virtualisation :
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Redémarrez votre ordinateur pour terminer l’installation de WSL. A tout de suite ! 😁
Mise à jour vers WSL 2 : Le nouveau sous-système Windows pour Linux 👌
WSL 2 est une nouvelle version de l’architecture, sortie en 2020, qui améliore les performances du système de fichiers Linux (mais ralenti l’accès aux fichiers Windows depuis linux) et augmente la compatibilité pour certaines applications (👋 Coucou Docker !).
👋 Après le redémarrage, il ne vous reste plus qu’à installer la mise à jour « Latest Linux Kernel » pour disposer de WSL 2.
Téléchargez la mise à jour WSL 2, puis installer là.
Ouvrez PowerShell en tant qu’administrateur et exécutez les commandes suivantes pour que les images fonctionnent avec WSL version 2 par défaut (pensez à faire les mises à jour de Windows si vous rencontrez des problèmes) :
wsl --set-default-version 2
Installer votre distribution linux préférée 😍
Pour ma part, je vais partir sur une Ubuntu LTS 20.04 (avril 2020) mais libre à vous de préférer Debian, Fedora, openSUSE, Kali Linux, Pengwin ou Alpine WSL.
Vous pouvez procéder en ligne de commande ou passer par Microsoft Store.
A) Pour la ligne de commande : Ouvrez PowerShell en tant qu’administrateur et exécutez les commandes suivantes pour lister les distributions et pour installer celle de votre choix
wsl --list --online
wsl --install --d ubuntu-20.04
B) Si vous préférez passer par le store : Rendez-vous sur le Microsoft Store WSL pour choisir votre distribution.
Choisissez votre distribution Linux puis cliquez sur Télécharger / Installer
Une fois l’installation terminée, vous pouvez lancer l’application « Ubuntu » depuis le menu démarrer.
La 1ère fenêtre vous demandera de créer un compte utilisateur (Cette étape n’est pas obligatoire, vous pouvez quitter le processus et relancer « Ubuntu » pour être uniquement en root 😉).
Découvrir quelques fonctionnalités de base de WSL2
Félicitation, vous avez maintenant un système Linux nativement sous Windows ! Voici quelques astuces
Basculer de l’interpréteur de commande Windows à Linux
Que vous soyez en ligne de commande avec le vieux CMD.exe
ou sous le Terminal de PHPStorm, vous pouvez basculer sous Linux avec la commande bash
.
Installer plusieurs distributions en parallèle
Vous avez la possibilité d’installer plusieurs distributions GNU/Linux en même temps. Pour lancer spécifiquement Ubuntu, tapez simplement la commande ubuntu
.
Mettre à jour Ubuntu
Avant d’installer un logiciel, vous devriez procéder à une mise à jour de la version d’Ubuntu que nous venons d’installer. Lancez la commande suivante .
apt-get update
apt-get upgrade
Installer des utilitaires sous Linux.
Si vous n’êtes pas encore à l’aise avec Linux, sachez que vous pouvez installer des utilitaires Linux avec la commande apt-get install <SOFTNAME>
.
Voici l’installation de PHP pour l’utiliser en ligne de commande ou pour faire du composer
par la suite (Je conseille maintenant d’installer PHP avec WSL plutôt que d’installer PHP sous Windows).
apt-get install php
Accédez à vos fichiers Windows depuis Linux
Les deux systèmes de fichiers sont liés entre Linux et Windows. Sous Ubuntu, le disque C:\ de Windows est accessible dans le dossier de montage \mnt\c\
.
Utiliser un service Linux (comme Apache) depuis Windows
Si vous installez un service réseau comme Apache, MySQL ou autre, vous pouvez y accéder depuis Windows. Par exemple :
apt-get install apache2
service apache2 restart
Vérifiez que le service Apache tourne correctement
top
Lancer des applications Windows depuis Linux
Vous pouvez exécuter des logiciels Windows depuis Linux, ce qui pourrait permettre à un script Linux de lancer des binaires sous Windows.
Exécuter des script .sh sous Windows
Vous travaillez avec d’autres développeurs sous Linux ou vous avez envie de lancer un projet open-source mais celui-ci contient des scripts Linux.
Plus besoin d’adapter les scripts pour Windows. Vous pouvez maintenant passer sur Linux et exécuter le script .sh
dans le répertoire courant. 👌
Éteindre les services Linux
Vous avez lancé quelques services sous Linux et vous souhaitez « éteindre » votre Linux, lancez la commande suivante sous Windows :
wsl --shutdown
Downgrade vers WSL1
Bien que WSL2 arrive avec un gain de performance pour le système de fichier Linux, l’architecture peut impacter les performance pour l’accès au système de fichier Windows depuis Linux. Dit autrement, WSL2 est bien pour lancer des service comme docker qui vont accéder aux fichiers Linux mais WSL1 reste meilleur pour lancer un script Node qui devra analyser et traiter des fichiers présent sous Windows.
Vérifier la version de vos distributions Linux :
wsl -l -v
En cas de problème de vitesse sur ce type de scénario, essayez de passer votre image « Ubuntu » à WSL1 :
wsl.exe --set-version Ubuntu 1
Windows ❤ Linux
Microsoft a fait beaucoup de chemin depuis quelques années. Aujourd’hui, Linux est pleinement intégré à Windows et les deux écosystèmes peuvent tourner conjointement sur le même environnement.
Tout comme Microsoft a fait le choix de la technologie Chromium pour revenir dans la course des navigateurs modernes avec Edge, Microsoft a fait le choix de Linux pour reconquérir les développeurs.
Un autre marqueur fort de ce nouveau virage. Microsoft a annoncé qu’il arrêtera de sortir les versions de PHP pour Windows à partir de PHP 8. Beaucoup y voient le signe que WSL2 a atteint une maturité suffisante.
Et vous, qu’en pensez-vous ? N’hésitez pas à partager votre avis via Twitter 😉