# Installer WSL
### WSL (installation)
Nécessite au minimum la build 2004 (une insider build au 31/03/2020)
Aller à Fonctionnalités de Windows:
- installer Plateforme d'ordinateur virtuel (Virtual Machine Platform)
- installer Sous-système Windows pour Linux (Windows Subsystem for Linux)
Activer la virtualisation dans le BIOS.
- Asus: Advanced -> Configuration Processeur -> Virtualisation Techno: Intel (VMY) Virtualisation Technology
- Gigabyte:
Pour voir, si elle est active, aller dans le Gestionnaire de taches -> onglet Performance
Pour Parallels Desktop, aller dans Configuration -> Matériel -> CPU et mémoire -> Paramètres avancés, et cocher Activer la virtualisation imbriquée.
Mettre-à-jour le [composant noyau](https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package):
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi
Dans PowerShell:
```powershell
wsl --set-default-version 1
```
Aller sur le Microsoft Store et installer une distrib Linux (Debian).
```bash
$ cat /etc/debian_version
11.0 # bullseye
```
Dans l'invite de commande:
```powershell
wsl --list --verbose
NAME STATE debian_version
* Debian Running 1
```
```powershell
wsl --list --running
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
```
Les distros sont visibles en tapant \\wsl$ dans la barre de l'explorer.
Même en quittant la distro (`$ exit`), elle y reste dispo.
#### Quitter une distro:
> ```powershell
> wsl --terminate Debian
> wsl -t Debian
>
> C:\Users\enzo2>wsl --list --running
> Il n'y a aucune distribution en cours d'exécution.
> ```
>
#### Pour passer la distribution à wsl 2:
```powershell
wsl --set-version Debian 2
```
https://docs.microsoft.com/fr-fr/windows/wsl/wsl2-kernel
Différences entre wsl 1 et 2:
https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes
#### Définir wsl 2 comme version par défaut:
```powershell
wsl --set-default-version 2
```
#### Pour démarrer la distro:
```powershell
wsl --distribution Debian
wsl --list --verbose
NAME STATE VERSION
* Debian Running 2
```
#### Liste des distributions:
```powershell
# Prêtes à l'utilisation:
wsl -l
wsl --list
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
Ubuntu
# Toutes les distributions:
wsl --list --all
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
Ubuntu
# En cours d'utilisation:
wsl --list --running
Distributions du sous-système Windows pour Linux :
Debian (par défaut)
```
#### Distribution par défaut:
Celle qui répond aux commandes `wsl`
```powershell
wsl -s Debian
wsl --setdefault Debian
```
Pour utiliser une distribution spécifique, sans la mettre par défaut:
```powershell
wsl -d Ubuntu
wsl --distribution Ubuntu
```
#### Désactiver une distribution:
Elle n'apparait plus dans `wsl --list`:
```
wsl --unregister Debian
```
Retourner dans le Microsoft Store pour la réinstaller.
#### Backup wsl:
```bash
wsl --export Debian debian.tar
```
Ré-import wsl:
```bash
wsl --import Debian C:\Users\bruno\debian C:\Users\bruno\debian.tar
```
Pour supprimer Debian
Dans l'invite de commande:
```powershell
C:\Users\enzo2>debian clean
C:\Users\enzo2>debian --help
```
#### Réglages WSL:
https://docs.microsoft.com/en-us/windows/wsl/wsl-config#set-wsl-launch-settings
#### Fichier de config `/etc/wsl.conf`:
Il est lu au chargement de la distro.
#### Fichier de configuration globale `C:\Users\\.wslconfig`:
Les options s'appliquent à toutes les distros (WSL2)
https://docs.microsoft.com/en-us/windows/wsl/wsl-config
#### Installer une GUI:
```
sudo apt-get update
```
Installer xfce4:
```bash
sudo apt-get -y install xfce4
```
Installer xRDP server
```bash
sudo apt-get -y install xrdp
echo xfce4-session > ~/.xsession
sudo service xrdp restart
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
# changer le port
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
# changer les réglages de qualité
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
# redémarrer le serveur
sudo service xrdp restart
```
Trouver l'adresse IP de la distrib WSL
```bash
ifconfig | grep inet (ip addr | grep inet)
#Les IP de ipconfig.exe ne sont pas les bonnes.
```
```bash
hostname -i
127.0.1.1
```
Ouvrir une session xRDP
> mstsc.exe
> puis fournir l'adresse IP
```bash
mstsc.exe 127.0.0.1:3390
```
Si erreur *failed to execute child process "dbus-launch"*:
```bash
sudo apt-get install dbus-x11
```
Ajouter un alias au .zshrc
```bash
# cd /mnt/c/Users/enzo2/OneDrive/Documents/wsl
alias xfce='mstsc.exe "C:\Users/enzo2/OneDrive/Documents/wsl/debian-xfce-pass.rdp"'
```
https://dev.to/darksmile92/linux-on-windows-wsl-with-desktop-environment-via-rdp-522g
https://korben.info/linux-wsl-gui-interface-graphique-windows-10.html
#### Installer un X11-server:
```powershell
choco install vcxsrv
```
Ajouter au `.bashrc` ou `.zshrc`:
`export DISPLAY=:0`
Installer gvim (sudo apt-get install gvim) pour tester.
#### Navigation dans les dossiers/fichiers:
Dans WSL:
Chemin du bureau Windows:
`/mnt/C/Users/enzo2/OneDrive/Bureau/ => C:\Users\enzo2\OneDrive\Desktop`
$HOME
`/home/enzo2`
wr** evaluates to the absolute path to your Windows user's root.
```bash
export wr=~/../../mnt/c/Users//
```
Cela permet d'aller rapidement au root de Windows.
```bash
alias cdwr='cd "$wr"'
```
Dans l'explorer, aller à wsl :
taper `\\wsl$` dans la barre de l'explorer
Depuis wsl, ouvrir une fenêtre du répertoire dans l'explorer :
```bash
~/.ssh $ explorer.exe .
```
Copier dans le presse-papier:
```bash
cat ~/.ssh/id_rsa.pub | clip.exe
```
Lancer des commandes Linux depuis l'Invite de commandes ou Powershell:
```powershell
C:\Users\enzo2>wsl ls -la | findstr "Documents"
drwxrwxrwx 1 enzo2 enzo2 512 Mar 31 08:51 Documents
lrwxrwxrwx 1 enzo2 enzo2 28 Mar 28 17:59 Mes documents -> /mnt/c/Users/enzo2/Documents
```
```powershell
C:\Users\enzo2>dir | wsl "Documents"
```
```powershell
C:\Users\enzo2>wsl ls -la "/mnt/c/Program Files"
```
### =>[La suite (configurer wsl)](wsl_2.md)<=