CodeGym /Cours /Docker SELF /Travailler avec Linux sur Windows : WSL

Travailler avec Linux sur Windows : WSL

Docker SELF
Niveau 1 , Leçon 2
Disponible

1. Qu'est-ce que WSL ?

Et maintenant, on arrive à un sujet intéressant : comment bosser avec Linux si tu utilises Windows comme système d'exploitation principal ? Bienvenue dans le monde de WSL !

WSL (Windows Subsystem for Linux) — c'est une technologie de Microsoft qui permet de lancer des distributions Linux directement sous Windows. Il existe deux versions :

  • WSL1: fonctionne comme une compatibilité au niveau des appels système entre Windows et Linux. Elle émule le comportement de Linux via le kernel Windows.
  • WSL2: utilise un véritable kernel Linux via une machine virtuelle cachée et légère. Cela rend WSL2 plus rapide et plus compatible avec le vrai Linux.

WSL, c'est comme un compromis entre deux mondes : tu obtiens les outils Linux tout en restant dans l'écosystème Windows. Pour les développeurs, c'est un énorme avantage : tu peux coder, tester et configurer des serveurs avec tes commandes Linux préférées.


2. Pourquoi WSL est tellement cool ?

  1. Développement et tests : WSL permet aux développeurs de bosser dans un environnement Linux sans devoir redémarrer le PC ou utiliser des machines virtuelles.
  2. Docker et containerisation : WSL2 supporte Docker, ce qui est super pratique pour gérer les containers.
  3. Intégration des systèmes de fichiers : Tu peux partager facilement des fichiers entre Windows et Linux en utilisant un seul système de fichiers.
  4. Facilité de configuration : Installer WSL prend littéralement quelques minutes.

En quoi WSL est différent d'une machine virtuelle ?

  • Pas besoin de virtualisation. Pas de nécessité d'installer VirtualBox, VMware ou Hyper-V. WSL fonctionne directement au niveau système.
  • Moins de ressources. WSL consomme moins de RAM et de CPU qu'une machine virtuelle classique.
  • Intégration avec Windows. Tu peux échanger des fichiers facilement entre Windows et Linux, exécuter des commandes Linux et Windows ensemble (!), ainsi qu'utiliser les mêmes interfaces réseau.

3. Installation de WSL

1. Vérification des prérequis systèmes

Avant de commencer, assure-toi que ton système respecte les exigences minimales :

  • Windows 10 (version 2004 ou supérieure) ou Windows 11.
  • Virtualisation activée dans le BIOS/UEFI.

Pour vérifier la version de Windows, ouvre PowerShell et exécute :

winver

Tu devrais voir une fenêtre comme celle-ci :

Si tu ne sais pas comment lancer PowerShell sous Windows, appuie sur Win+S et tape powershell.

2. Activation de WSL

Ouvre PowerShell en tant qu'administrateur et exécute la commande suivante :

wsl --install

Cette commande installera automatiquement WSL, téléchargera le noyau Linux et configurera WSL2 comme version par défaut.

Si pour une raison quelconque la commande ne fonctionne pas, tu peux activer WSL manuellement via les fonctionnalités supplémentaires de Windows :

  1. Ouvre "Panneau de configuration" → "Programmes et fonctionnalités" → "Activer ou désactiver des fonctionnalités Windows".
  2. Active :
    • Windows Subsystem for Linux.
    • Plateforme de machine virtuelle.

Ensuite, redémarre l'ordinateur.

3. Choix et installation d'une distribution

WSL te permet d'installer des distributions Linux populaires comme Ubuntu, Debian, Kali Linux et bien d'autres. Pour voir la liste des distributions disponibles, exécute :

wsl --list --online

Tu verras une liste des distributions disponibles :


PS C:\Users\Admin> wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Pour installer, par exemple, Ubuntu, exécute :

wsl --install -d Ubuntu

Après l'installation, lance la distribution pour terminer la configuration (par exemple, définir le nom d'utilisateur et le mot de passe).


3. Configurer WSL2 par défaut

Pour utiliser WSL2 (et c’est fortement recommandé), assurez-vous que WSL2 est activé. Définissez-le comme version par défaut :

wsl --set-default-version 2

Si vous avez déjà installé une distribution avec WSL1, vous pouvez la mettre à jour vers WSL2 :

wsl --set-version <Nom_Distribution> 2

Exemple :

wsl --set-version Ubuntu 2

4. Intégration de WSL avec Windows

WSL s'intègre super bien avec Windows, ce qui te permet d'utiliser les fonctionnalités des deux systèmes. Voici les points clés :

1. Partage de fichiers

WSL monte le système de fichiers Windows dans le répertoire /mnt. Par exemple :

cd /mnt/c/Users/VotreNom

Tu peux bosser avec les fichiers Windows directement depuis Linux. De manière similaire, tu peux utiliser les fichiers de WSL dans Windows via un chemin comme \\wsl$\<Nom_Distribution> dans l'Explorateur.

2. Utiliser les commandes Windows dans Linux

Oui, tu peux exécuter des commandes Windows directement depuis WSL. Par exemple :

explorer.exe .

Ça ouvrira le répertoire actuel dans l'Explorateur.

3. Utiliser les commandes Linux dans PowerShell

WSL permet d'exécuter des commandes Linux directement depuis PowerShell. Par exemple :

wsl ls

5. Utilisation de WSL dans le développement réel

Travailler avec un serveur web

Tu peux lancer un serveur Nginx ou Apache dans WSL et y accéder via un navigateur sur Windows. Par exemple :

1. Installe Nginx dans WSL :

   sudo apt update
   sudo apt install nginx

2. Lance le serveur :

   sudo service nginx start

3. Ouvre ton navigateur et va à l'adresse http://localhost.

Installer Docker

WSL2 supporte entièrement Docker. Installe Docker Desktop sur Windows, il s'intégrera automatiquement avec WSL2.


6. Commandes utiles WSL

  • Afficher les distributions installées:

    wsl --list --verbose
    

    Montre toutes les distributions installées, leurs versions et leur statut.

  • Arrêter toutes les distributions:

    wsl --shutdown
    
  • Supprimer une distribution (attention!):

    wsl --unregister <Nom_Distribution>
    
  • Ouvrir WSL dans un répertoire spécifique:

    wsl ~/
    

7. Erreurs typiques et leurs solutions

1. Erreur : "WSL is not enabled"

Si tu vois le message que WSL n'est pas activé, vérifie que tu l'as activé dans le "Panneau de configuration" ou via PowerShell. Vérifie aussi si ton processeur prend en charge la virtualisation (elle doit être activée dans le BIOS).

2. La commande wsl --install ne fonctionne pas

Cela peut être dû à une version obsolète de Windows. Mets à jour ton système d'exploitation à la dernière version.

3. Problèmes avec le lancement de Docker

Assure-toi que ta distribution utilise WSL2, et pas WSL1. Tu peux vérifier avec :

wsl --list --verbose

4. Impossible de se connecter à un serveur depuis WSL

Vérifie que le firewall de Windows ne bloque pas les connexions.


8. Tâche pratique

  1. Installe WSL et la distribution Ubuntu.
  2. Vérifie la version WSL de ta distribution :
    wsl --list --verbose
    
  3. Crée un fichier texte test.txt dans le répertoire /mnt/c/Users/TonNom/Documents depuis WSL :

    echo "Salut, WSL!" > /mnt/c/Users/TonNom/Documents/test.txt
    
  4. Visualise le contenu du fichier via PowerShell :

    type C:\Users\TonNom\Documents\test.txt
    
  5. Exercice bonus : Installe Nginx, lance-le et ouvre http://localhost dans ton navigateur.

Voilà, tu viens de faire tout le chemin, de l'installation à l'utilisation réelle de Linux sur Windows. Avec cet outil, tu peux facilement et rapidement configurer des environnements de travail pour toutes sortes de tâches.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION