Le shell Bash de Windows 10 ne prend pas officiellement en charge les applications de bureau graphiques Linux. Microsoft affirme que cette fonctionnalité est conçue uniquement pour les développeurs qui souhaitent exécuter des utilitaires de terminal Linux. Mais le «sous-système Windows pour Linux» sous-jacent est plus puissant que Microsoft ne le laisse supposer.
Il est possible d’exécuter des applications graphiques Linux dans Windows 10, mais gardez à l’esprit que cela n’est pas officiellement pris en charge. Tous les logiciels Linux ne fonctionnent pas et les applications graphiques sont encore plus complexes et moins testées. Mais ceux-ci devraient devenir plus stables au fil du temps à mesure que Microsoft améliore le sous-système Windows sous-jacent pour Linux.
Le shell Bash de Windows 10 ne prend en charge que les binaires 64 bits, vous ne pouvez donc pas installer et exécuter un logiciel Linux 32 bits.
Comment ça marche
Tout d’abord, décrivons exactement comment cela fonctionne afin que vous puissiez comprendre ce que nous faisons ici.
Windows 10 comprend un «sous-système Windows pour Linux» sous-jacent qui permet à Windows 10 d’exécuter des logiciels Linux en traduisant les appels système Linux en appels système Windows.
Lorsque vous exécutez une distribution Linux comme Ubuntu, elle télécharge et installe une image complète de l’espace utilisateur Ubuntu sur votre ordinateur. Cela inclut exactement les mêmes binaires – ou applications – qui s’exécuteraient sur Ubuntu. Cet environnement «Bash on Ubuntu on Windows» fonctionne grâce au sous-système Windows sous-jacent pour Linux.
Microsoft ne souhaite pas passer de temps à travailler sur des logiciels graphiques, car cette fonctionnalité est destinée aux outils de développement en ligne de commande. Mais la principale raison technique pour laquelle les applications graphiques ne sont pas prises en charge est qu’elles nécessitent un «serveur X» pour fournir cette interface graphique. Sur un bureau Linux typique, ce «serveur X» apparaît automatiquement lorsque vous démarrez votre ordinateur et il rend l’ensemble du bureau et les applications que vous utilisez.
Mais essayez d’ouvrir une application graphique à partir de Bash sur Windows, et il se plaindra de ne pas pouvoir ouvrir un écran.
Il existe cependant des applications serveur X que vous pouvez installer sur un bureau Windows. En règle générale, ceux-ci sont utilisés pour rendre les applications Linux exécutées sur d’autres ordinateurs – le protocole «X11» est plutôt ancien et a été conçu avec la capacité de fonctionner sur une connexion réseau.
Si vous installez une application serveur X sur votre bureau Windows et modifiez un paramètre dans le shell Bash, les applications enverront leur sortie graphique à l’application serveur X et elles apparaîtront sur votre bureau Windows. Tout devrait fonctionner correctement, en supposant que ces applications ne dépendent pas des appels système Linux que le sous-système Windows pour Linux ne prend pas encore en charge.
Première étape: installer un serveur X
Il existe plusieurs serveurs X différents que vous pouvez installer sur Windows, mais nous vous recommandons Xming. Téléchargez-le et installez-le sur votre PC Windows 10.
Le processus d’installation est simple: vous pouvez simplement accepter les paramètres par défaut. Il sera alors automatiquement lancé et exécuté dans votre barre d’état système, en attendant que vous exécutiez des programmes graphiques.
Deuxième étape: installer le programme
Vous pouvez installer des programmes graphiques de bureau Linux comme vous le pouvez pour tout autre programme, en utilisant la commande apt-get dans l’environnement Bash basé sur Ubuntu. Par exemple, supposons que vous souhaitiez installer l’éditeur vim graphique basé sur GTK. Vous exécuteriez la commande suivante dans la fenêtre Bash:
sudo apt-get install vim-gtk
Il passera par le processus d’installation dans la fenêtre de ligne de commande, comme il le fait sur Ubuntu.
Étape 3: définir la variable d’environnement d’affichage
Maintenant, vous devrez définir la variable d’environnement «DISPLAY» pour qu’elle pointe vers le serveur X fonctionnant sur votre PC Windows 10. Si vous ne le faites pas, les applications graphiques ne pourront tout simplement pas se lancer.
Pour ce faire, exécutez la commande suivante dans l’environnement Bash:
export DISPLAY=:0
Ce paramètre s’applique uniquement à votre session Bash actuelle. Si vous fermez la fenêtre, Bash l’oubliera. Vous devrez exécuter cette commande à chaque fois que vous rouvrirez Bash et que vous souhaitez exécuter une application graphique.
Étape 4: lancer une application
Vous pouvez maintenant simplement lancer une application graphique en tapant le nom de son exécutable, comme vous tapez n’importe quelle autre commande. Par exemple, pour lancer vim-gtk, vous exécuteriez:
gvim
C’est si simple. Si l’application plante après le lancement, il se peut que les appels système Linux requis ne soient pas pris en charge par le sous-système Windows pour Linux. Vous ne pouvez pas faire grand-chose à ce sujet. Mais essayez-le, et vous constaterez peut-être que les applications dont vous avez besoin fonctionnent bien!
Vous pouvez également combiner les troisième et quatrième étapes, si vous le souhaitez. Plutôt que d’exporter la variable DISPLAY une fois pour toute une session shell Bash, vous exécutez simplement une application graphique avec la commande suivante:
DISPLAY=:0 command
Par exemple, pour lancer gvim, vous exécuteriez:
DISPLAY=:0 gvim
N’oubliez pas que cela n’est pas officiellement pris en charge, vous pouvez donc rencontrer des erreurs avec des applications plus complexes. Une machine virtuelle est une solution plus fiable pour exécuter de nombreuses applications de bureau Linux graphiques sur Windows 10, mais c’est une solution intéressante pour certaines des choses les plus simples.