Contenu | Rechercher | Menus

Windows Subsystem for Linux

Le Windows Subsystem for Linux (WSL), en français "Sous-système Windows pour Linux", parfois grossièrement appelé "Bash sur Windows" est une couche de compatibilité permettant d'exécuter des fichiers EFL (binaires exécutables) pour Linux à partir d'un système Windows 10.

Le principe est le même que Wine, mais "dans l'autre sens".

Ce principe avait déjà été développé par Cygwin par le passé (pour XP/Vista/7) de manière indépendante, mais désormais, le WSL fournit ces fonctionnalités avec le support conjoint de Microsoft et de Canonical.

Le WSL ne fonctionne pas avec n'importe quel exécutable : seules des versions précises d'Ubuntu sont supportées correctement. La première distribution Linux concernée est Ubuntu 14.04 encore aujourd'hui (mai 2017), mais c'est Ubuntu 16.04 qui est proposée au téléchargement dans la Creator Update (voir le paragraphe installation).
Les applications graphiques ne fonctionnent pas aussi facilement que les applications en ligne de commande, car elles nécessitent un serveur d'affichage X externe, et les applications requérant certains services très spécifiques du noyau Linux risquent aussi de rencontrer des problèmes.

Pré-requis

  • Une copie légale et à jour de Windows 10 (build n°14393 ou supérieur), de type 64 bits.
  • Une session avec les droits d'administrateur.

Pour savoir si votre système est compatible, allez dans les Paramètres → Système → Informations Système.
Regardez la build du système ("Version du système d'exploitation") et son type ("Type du système").

Installation

Installer le système principal

  • Dans Paramètres → Mise à jour et sécurité → Pour les développeurs, choisir "Mode développeur". La modification peut prendre beaucoup de temps à s'appliquer.
  • Dans Programmes et fonctionnalitésActiver ou désactiver des fonctionnalités Windows, activez la fonctionnalité "Sous-système Windows pour Linux".
  • Redémarrez Windows 10.
  • Ouvrez une invite de commande Windows, et tapez-y bash. Après que vous ayez accepté la licence, une image partielle d'Ubuntu (une LTS, au moment de la rédaction de cet article c'est la 14.04) sera téléchargée depuis le Windows Store, et installée. Il vous faudra préciser un nom d'utilisateur et un mot de passe. Un raccourci "Bash sur Ubuntu sur Windows" sera ajouté au menu démarrer.

Le système installé permet d'utiliser des applications en ligne de commande (nano, vim, …), des applications sans interface graphique (apache, nginx, … bien que le WSL ne soit pas conçu pour servir de serveur web) et d'exécuter des scripts bash.

Installer un serveur X

Pour pouvoir lancer des applications graphiques, il faut installer un serveur X externe pour Windows, comme Xming ou VcXsrv.

Installez par exemple la dernière version de VcXsrv depuis sa page SourceForge, c'est le serveur d'affichage qui sera utilisé dans la suite de cet article.

Installer les logiciels voulus

La gestion des paquets en ligne de commande se fait comme sur un système Ubuntu normal.

Dans le terminal "Bash sur Windows", tapez tout d'abord :

sudo apt-get update

Puis, par exemple si on veut utiliser l'éditeur de texte mousepad :

sudo apt-get install mousepad

Mousepad est une application graphique et nécessite donc un serveur X et le paramétrage détaillé ci-après).

Paramétrage de base

Les paramétrages applicables au shell bash devraient être valables ici (prompt, couleurs, etc.).

Paramétrage du serveur X

Cliquez sur XLaunch, qui a du apparaître dans votre menu démarrer suite à l'installation de VcXsrv.

Le mode "multiple windows" permet d'utiliser chaque application graphique Linux dans une fenêtre différente du bureau Windows 10, alors que les autres modes permettent de réunir toutes les applications graphiques Linux dans une seule fenêtre (avec ou sans barre de titre, voire en plein écran).
Faites attention à bien régler "0" dans le champ en bas.

Les autres paramètres (après avoir cliqué sur Suivant) ont des valeurs par défaut normalement correctes.

Un message d'erreur suggérant qu'il manque des fichiers .log peut apparaître après avoir cliqué sur Terminer, il ne m'a personnellement pas gêné pour la suite.

Ensuite, éditez le fichier ~/.bashrc (dans le terminal "Bash sur Windows") :

nano .bashrc

À la fin du fichier, ajoutez la ligne

export DISPLAY=:0.0

Fermez nano en enregistrant. Fermez la fenêtre Ubuntu, et relancez-la depuis le menu démarrer. Il devrait normalement etre possible de lancer des applications grahiques, mais des erreurs peuvent subsister :

Paramétrage de DBus

Le WSL n'a pas vraiment été conçu pour les applications graphiques : un message d'erreur devrait vite vous indiquer des problèmes avec DBus.

Avec la commande

sudo nano /etc/dbus-1/session.conf

éditez le fichier de configuration de DBus et changez-y

<listen>unix:tmpdir=/tmp</listen>

par

<listen>tcp:host=localhost,port=0</listen>

Enregistrez le fichier.
Fermez puis ré-ouvrez "Bash sur Ubuntu sur Windows" afin que les modifications prennent effet.

Utilisation

Malgré beaucoup de bugs, le bureau Unity peut techniquement être lancé via le WSL (avec énormément d'efforts)

Généralités

Ouvrez Bash sur Ubuntu sur Windows, et lancez-y vos commandes ou vos applications. Remarquez que rien n’empêche le lancement de plusieurs terminaux.

Le serveur X, si il s'avère nécessaire, doit être lancé depuis le menu démarrer (VcXsrv) avant le lancement de la commande dans le terminal "Bash sur Windows".

Des environnements de bureau complets peuvent en pratique être installés et lancés, mais remarquez tout de même que le WSL n'a pas été premièrement conçu pour faire ce genre de choses, et des bugs peuvent survenir.

Pour expérimenter ce genre de manipulation, des environnements légers, avec un gestionnaire de fenêtres sans composition graphique avancée, sont à privilégier (Xfce, LXDE, OpenBox, …).

Pour avoir un système plus convivial, l'installation de polices de caractères plus modernes sera sans doute nécessaire.

Pour quitter le WSL, fermez le serveur d'affichage et le terminal.

Accès aux fichiers Linux depuis Windows

La racine du système de fichiers Linux est C:\Users\<NomDeLUtilisateur>\AppData\Local\lxss.

Par exemple un utilisateur Windows "Robert" dont le nom d'utilisateur Linux est "bob" trouvera ses fichiers Linux personnels à C:\Users\Robert\AppData\Local\lxss\home\bob.

Accès aux fichiers Windows depuis Linux

Le disque C: est automatiquement monté par Ubuntu au chemin /mnt/c.

Utiliser des commandes bash dans l'invite de commande Windows

Pour utiliser une commande bash depuis l'invite de commande Windows, faites-la précéder de bash -c.

Par exemple pour faire ls -l depuis l'invite de commande Windows, tapez :

bash -c ls -l

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0