Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
wsl [Le 21/11/2020, 15:52] – [Paramétrage du serveur X] Ajout du serveur Xming geolewsl [Le 25/02/2023, 14:14] (Version actuelle) – [Installation d'un bureau graphique] 192.168.1.1
Ligne 1: Ligne 1:
 +{{tag>Bionic Focal Jammy windows installation émulation programmation }}
  
 +{{ https://doc.ubuntu-fr.org/_media/logo/logo-wsl.png?200|}}
 +
 +====== Sous-système Windows pour Linux : Ubuntu sur Windows ======
 +
 +//Ubuntu sur Windows// est une variante d'Ubuntu proposée officiellement par Microsoft et [[:Canonical]], et qui se déploie nativement sur **Windows 10** ou **Windows 11** au moyen du sous-système **//WSL//**.
 +
 +Le //Windows Subsystem for Linux// (WSL), en français "Sous-système Windows pour Linux" est parfois grossièrement appelé "Bash sur Windows". Il existe deux versions de ce sous-système :
 +  * WSL 1 est une **couche de compatibilité** permettant d'exécuter des fichiers ELF (binaires exécutables) pour Linux à partir d'un système Windows. Le principe est le même que [[:Wine]], mais "dans l'autre sens".
 +  * WSL 2 repose sur le système de virtualisation Hyper-V. Cette méthode est également très performante, et la couche de virtualisation est transparente pour l'utilisateur. Elle offre une bien meilleure compatibilité avec l'ensemble des logiciels, c'est donc la version recommandée, et celle sur laquelle se concentrent désormais les efforts de développement.
 +
 +<note>Le but de cette distribution était à la base de simplifier le travail des développeurs (en particulier dans le domaine du web) en rendant possible la mise en place d'une structure et d'outils Linux sous Windows, et ainsi d'harmoniser les environnements de développement Windows avec les environnements GNU/Linux qu'on trouve couramment sur les serveurs de production.
 +
 +Cet outil est désormais accessible au grand public et permet de déployer presque "nativement" les logiciels de l'univers GNU/Linux sous Windows. En outre il est compatible avec [[:APT]], [[:Snap]], [[:Flatpak]] et [[:Docker]]</note>
 +
 +WSL ne permet pas de faire fonctionner n'importe quelle distribution : seules les [[:lts|versions LTS]] d'Ubuntu sont supportées. La première distribution Linux concernée fut [[:Trusty]] (14.04).\\ 
 +D'autres distributions GNU/Linux sont également proposées : [[wpfr>Debian]], [[wpfr>openSUSE]], [[wpfr>SUSE Linux Enterprise]] et [[wpfr>Kali Linux]].
 +
 +===== Pré-requis =====
 +
 +  * Une copie à jour de Windows 10 ou 11 de type 64 bits.
 +
 +  * Une session Windows avec les droits d'administrateur.
 +
 +  * Pour WSL 2, activez la fonctionnalité de virtualisation du processeur dans le [[:wiki:glossaire#BIOS]] de votre ordinateur (qui prend malheureusement des noms différents en fonction des constructeurs : //VT-x//, //AMD-V//, //SVM//, etc.).
 +
 +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 ====
 +
 +  * Lancer l’application PowerShell en mode administrateur.
 +  * Obtenir la liste des distributions libres installables:<code bash>wsl -l -o</code>
 +  * Installer une distribution:<code bash>wsl --install --distribution Ubuntu-22.04</code>
 +  * Rebooter pour que l’installation se termine.
 +  * Prévenir WSL de  installation d’un nouveau composant. <code bash>wsl --update</code>
 +  * Tuer WSL pour le forcer  à  utiliser la mise à jour à son prochain démarrage. <code bash> wsl --shutdown</code>
 +
 +La première fois que vous lancez une distribution Linux nouvellement installée, une fenêtre de console s’ouvre et vous êtes invité à attendre que les fichiers soient décompressés et stockés sur votre ordinateur. Tous les lancements ultérieurs doivent prendre moins d’une seconde.
 +<note warning>Si  le message d'erreur **0xc400000d** apparaît: Le transfert des fichiers est interrompu prématurément. Il suffit de relancer la commande. Le transfert des fichiers reprend sans repartir du début.</note>
 +<note warning>Si l'installation échoue, activez le mode développeur et recommencez.</note>
 +
 +Il est possible d'utiliser plusieurs distributions simultanément. Vous trouverez de l'aide pour les faire cohabiter (ou sélectionner la distribution par défaut) sur la [[https://docs.microsoft.com/fr-fr/windows/wsl/wsl-config#managing-multiple-linux-distributions|documentation officielle]].
 +
 +Une fois l'application installée, lancez-la.  Son nom est **Ubuntu** , et vous devriez voir apparaître un message //Installing, this may take a few minutes...//
 +( Compter 5 minutes sur un SSD et  15 minutes sur un disque dur.)
 +Après quoi vous devriez être invité·e à entrer un identifiant et un mot de passe.
 +
 +==== Installer les logiciels voulus ====
 +
 +La gestion des paquets en ligne de commande se fait comme sur un système Ubuntu normal, au moyen de la commande ''[[:apt-cli|apt]]'', par exemple.
 +
 +Dans le terminal //Ubuntu//, tapez tout d'abord :
 +<code>sudo apt update</code>
 +<code>sudo apt upgrade</code>
 +
 +Puis, par exemple si on veut utiliser l'éditeur de texte [[:vim]] :
 +<code>sudo apt install vim</code>
 +
 +Les logiciels graphiques apparaissent dans le menu démarrer, avec les autres logiciels Windows. Leur nom est simplement suivi de //(Ubuntu)// afin de les différencier.
 +
 +==== Applications graphiques ====
 +
 +Contrairement à ce que vous trouverez dans certaines documentations anciennes, il n'est plus nécessaire d'installer de serveur X tiers. WSL 2 intègre désormais [[https://github.com/microsoft/wslg|wslg]]. Si vous avez une ancienne version de WSL, il suffit de le mettre à jour pour en profiter :
 +<code>wsl --update</code>
 +
 +Il peut tout de même être utile d'installer un pilote spécifique à sa carte graphique, afin de bénéficier de l'accélération graphique avec certains logiciels. Voir [[https://learn.microsoft.com/fr-fr/windows/wsl/tutorials/gui-apps|cette documentation]].
 +
 +===== Utilisation =====
 +
 +==== Installation d'un bureau graphique ====
 +
 +=== GNOME ===
 +
 +<note warning>Ne fonctionne pas.</note>
 +
 +On peut installer le paquet [[apt>gnome]], ce qui installe les logiciels du bureau gnome.
 +
 +Cependant [[:gnome-shell|GNOME Shell]] ne démarre pas... La commande ''gnome-session'' conduit à une erreur.
 +
 +=== unity ===
 +
 +Malgré beaucoup de bugs, le bureau Unity peut techniquement être lancé via le WSL (avec énormément d'efforts).
 +
 +{{https://cloud.githubusercontent.com/assets/9023392/16705685/69455030-454e-11e6-8ae3-cb210354c660.png?400|Malgré beaucoup de bugs, le bureau Unity peut techniquement être lancé via le WSL (avec énormément d'efforts)}}
 +
 +<note important>Si la commande    gnome-session se termine prématurément, c'est probablement lié a ce  [[https://bugs.dogfood.paddev.net/ubuntu/+source/gnome-session/+bug/1251281|bug]]
 +    sudo service dbus restart
 +          *Stopping system message bus dbus                                                                              [ OK ]
 +          *Starting system message bus dbus                                                                              [ OK ]
 +   gnome-session
 +          gnome-session-is-accelerated: No hardware 3D support.
 +          gnome-session-check-accelerated: GL Helper exited with code 256
 +          (gnome-session-check-accelerated-gles-helper:2164): WARNING **: 15:30:56.092: eglGetDisplay() failed
 +          gnome-session-check-accelerated: GLES Helper exited with code 256
 +          gnome-session-is-accelerated: No hardware 3D support.
 +          gnome-session-check-accelerated: GL Helper exited with code 256
 +          (gnome-session-check-accelerated-gles-helper:2167): WARNING **: 15:31:01.530: eglGetDisplay() failed
 +          gnome-session-check-accelerated: GLES Helper exited with code 256
 +          gnome-session-binary[2142]: WARNING: software acceleration check failed: Child process exited with code 1
 +          gnome-session-binary[2142]: CRITICAL: We failed, but the fail whale is dead. Sorry....
 +
 + </note>
 +
 +==== Accès aux fichiers Windows depuis Linux ====
 +
 +Le disque ''C:'' est automatiquement monté par Ubuntu au chemin ''/mnt/c'', et il en est de même pour les autres lecteurs (''/mnt/d/'', ...) du système Windows.
 +
 +Tous ces chemins sont accessibles avec les séparateurs Unix (''/'' au lieu de ''\'' pour Windows).
 +
 +Par défaut, tous les fichiers du système Windows appartiennent à l'utilisateur courant avec toutes les permissions (777) et on ne peut pas modifier ces permissions. Il est possible de changer ce comportement, mais avec quelques limitations, en suivant [[https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements/|cette documentation]] (en anglais).
 +
 +Il est possible d'accéder en mode graphique à tous les fichiers windows en lançant l'explorateur avec cette commande
 +<code bash>explorer.exe</code> 
 +
 +==== Accès aux fichiers Linux depuis Windows ====
 +
 +Pour information, la racine du système de fichiers Linux est
 +''C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs''
 +
 +Si vous avez choisi une version spécifique dans le Windows Store, le chemin sera légèrement différent :
 +''C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs''
 +
 +Si vous avez choisi de nommer votre instance ubuntu, le chemin sera aussi légèrement différent :
 +''C:\Users\TEMP.%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs''
 +
 +<note warning>Ne modifiez jamais ces fichiers directement depuis Windows.
 +
 +Les systèmes de fichiers n'étant pas les mêmes entre Windows et Linux, les programmes Windows ne savent pas les gérer et les fichiers seraient corrompus à coup sûr.</note>
 +
 +En date du 02/11/2020 en release preview:
 +
 +L'explorateur windows permet d'accéder à ces  fichiers et même d'en ajouter y compris en glisser/déposer .
 +
 +{{:wsl:wsl2-c.png?600|}}
 +exemple Fremake Video Converter
 +
 +==== Utiliser des commandes Linux dans l'invite de commande Windows ====
 +
 +Pour utiliser une commande Linux depuis l'invite de commande Windows, faites-la précéder de ''ubuntu run''.
 +
 +Si vous avez installé une version spécifique d'Ubuntu sur Windows, la commande est légèrement différente : ''ubuntu1604 run'' ou ''ubuntu1804 run'' par exemple.
 +
 +Par exemple pour faire ''ls -al'' depuis l'invite de commande Windows, tapez :
 +<code>ubuntu run ls -al</code>
 +
 +==== Utiliser des programmes Windows depuis Linux ====
 +
 +Il est aussi possible d'exécuter des programmes Windows depuis la console Ubuntu. Il suffit d'appeler les commandes avec leurs extensions Windows (couramment ''.exe'', ''.bat'' ou ''.cmd'') :
 +<code>notepad.exe</code>
 +
 +==== Désinstallation ====
 +
 +Pour supprimer le logiciel installé en conservant les données de l'utilisateur, effectuer la commande windows
 +<code> lxrun /uninstall </code>
 +Pour tout supprimer, effectuer la commande windows
 +<code>lxrun /uninstall /full </code>
 +ou <code bash> wslconfig /u   Ubuntu </code>
 +Pour réinstaller facilement, effectuer la commande windows
 +<code>lxrun /install </code>
 +
 +===== Voir aussi =====
 +
 +  *[[:Cygwin]]
 +  *[[:Xorg]]
 +  *[[:bash]]
 +
 +  * [[https://learn.microsoft.com/fr-fr/windows/wsl|Documentation Microsoft]]
 +  ***(en)** [[https://wiki.ubuntu.com/WSL|Documentation Canonical]]
 +  ***(en)** [[wp>Windows Subsystem for Linux]]
 +  ***(en)** [[https://github.com/Microsoft/BashOnWindows/issues/|Page GitHub de Microsoft]]
 +  *[[https://www.numerama.com/tech/158150-le-shell-bash-sous-windows-10-ce-quil-faut-savoir.html|Tutoriel de Numerama]]
 +  *[[https://docs.microsoft.com/fr-fr/windows/wsl/install-win10|Migrer WSL1 en WSL2]]
 +  *[[https://blog.eleven-labs.com/fr/le-developpement-sous-linux-depuis-windows-10-avec-wsl-2/|Une présentation et un lien pour installer sysemd ainsi que les snap]]
 +  *[[https://www.it-connect.fr/wslg-comment-utiliser-wsl-pour-ouvrir-des-applications-gui-linux/|Utiliser WSL en 2023]]
 +
 +-----
 +
 +//Contributeurs : [[utilisateurs/roschan]], [[utilisateurs/Revoxandco]], [[:utilisateurs:krodelabestiole]]//