Mon setup WSL de fin 2021

closeCet article a été publié il y a 2 ans 4 mois 1 jour, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Ouais, parce que pourquoi pas, voici un gros refresh de ce que j’avais pu présenter y’a deux ans. Ce qui change, ce qui ne change pas, ce qui me manque encore pour en faire un truc vraiment au top.

On remet le contexte

Je suis toujours sur mon Windows 10 LTSC 2019, donc sur la branche 1809 de Windows 10. Je n’ai pas la capacité d’installer certaines choses comme le WSL2, le Windows Terminal, etc. Mon utilisation du WSL reste ceci dit ponctuelle, ce qui n’empêche pas de vouloir un environnement confortable, et plus léger que si je passais par Virtualbox.

Parmi les articles que je vous épargnerai, parce que le brouillon traine depuis presque aussi longtemps que l’article d’origine, il y a mon combat pour les caractères spéciaux, emoji en tête, mais aussi ceux spécifiques à Powerline (version python ou bash, même combat), avec la console Windows. J’avais quand même fini par m’en sortir, mais les contrôles de copier/coller à l’ancienne à la mode windows, non vraiment… J’ai donc procédé à la bascule sur Terminator, et on va redétailler bientôt ce que ça implique et ce qui a changé par rapport à la version initiale. Terminator a besoin d’être relancé pour prendre en compte l’installation dans Ubuntu des nouvelles polices d’affichage en passant, pas grave en soi, juste pénible.

Et j’utilise toujours Sublime Text 3, dont l’insistance à vouloir me faire faire la mise à jour vers Sublime Text 4 commence à m’agacer particulièrement. Je vous le donne en mille, ils imposent de payer si on veut rester sur la branche 3 sans se taper les messages insistants (et quand je dis insistants, c’est toutes les heures).

Et enfin, l’enrobage de tout ça, un Ubuntu 18.04 qui certes n’est pas encore à mettre à la retraite, mais dont l’ancienneté de la majorité des packages commence à me hérisser le poil. Dire qu’avec nos futurs PCs au boulot (suite au rachat par Accenture), qui pourront être fournis avec Ubuntu MATE, mais en version 18.04 pour l’instant (à cause d’une trop grande appétence pour des outils de verrouillage et de renforcement de la sécurité dans tous les sens)…

On repart de zéro, sans rien casser

C’est pas évident mine de rien, d’autant plus que toujours pas de Microsoft Store, qui continue d’être la référence pour l’installation en mode cliquodrome. Mais c’est moins pénible, d’autant que Microsoft liste les images officiellement supportées sur une page dédiée. La particularité, c’est que je n’ai pas pu installer directement le package, je n’avais pas de retour. Le contournement, c’est de renommer le .appx en .zip, de l’extraire dans un dossier, et de lancer l’exécutable d’installation directement depuis le dossier, via powershell :

On suit les instructions qui se résument à créer l’utilisateur et son mot de passe, et on laisse l’installation se terminer, ralentie par l’action constante d’un Windows Search et d’un scanner antimalware qui n’ont que ça à foutre de plomber les perfs (il m’a fallu presque 14 minutes pour installer Ansible à cause de ça, et sur un SSD NVMe…).

Là où ça se complique un peu, c’est que si on lance tout de suite bash, on retombe… sur la version 18.04, et pas sur la version fraichement installée. Et pas de chemin genre ubuntu20/bash ou un truc dans le genre. Bon c’est pas grave, je peux ouvrir une fenêtre dédiée à partir du menu Windows, Une icône Ubuntu 20.04 LTS s’étant invitée à la fête à côté de celle sobrement intitulée « Ubuntu » abritant mon installation historique.

J’ai donc bien deux installations séparées, et je n’ai plus qu’à refaire ou transférer ce qui m’est nécessaire. J’essaie donc très vite d’avoir mon Terminator, qui semble m’installer une quantité affolante de packages, y compris sane-utils, un paquet qui regroupe des outils pour… la gestion de scanners papier, vraiment la gestion des dépendances made in Ubuntu c’est un enfer. M’enfin, j’ai mon Terminator, et je cherche à démarrer dessus direct pour continuer à travailler l’installation de la suite.

L’astuce de la version par défaut

Comme je l’ai dit, si on appelle bash depuis l’environnement Windows, on tombe sur l’ancienne installation 18.04. Hors, le script VBS, qui est toujours d’actualité car j’ai réutilisé le même, appelle bash qui appelle ensuite terminator. Deux petites minutes de recherche, et j’apprends l’existence de l’utilitaire wslconfig.exe. Ni une ni deux :

Il suffit de le rappeler avec l’option /s <nom de la distrib> et voilà le travail :

Si je clique sur mon raccourci de lancement du script, j’ai mon terminator tout neuf sur mon Ubuntu 20.04 tout aussi neuf. Je peux donc avancer plus sereinement.

Le shell : au revoir Powerline.bash, bonjour Starship.rs

Ça, c’est Jérémy au boulot qui me l’a fait découvrir. Après avoir manipulé le fichier de configuration pendant 1h pour avoir un setup qui me plaisait, j’ai adoré la qualité, la rapidité de l’outil. On installe un binaire, on a un fichier de conf, on ajoute l’appel dans son bashrc/bash_aliases en fonction des gouts et des couleurs, et roulez jeunesse. Le setup est moins lourd, et surtout, j’ai quelques limitations avec Powerline.bash comme la gestion de l’environnement kube qui m’ont convaincu de basculer.

C’est d’ailleurs une des petites fonctionnalités qu’on pense gadget au départ, qui m’a fait mesurer précisément la durée d’installation d’Ansible, jugez plutôt :

Je mentais pas sur le quart d’heure 😀 Quand on peaufine un peu son fichier toml, on peut arriver à un setup un peu sympa, jugez plutôt :

J’ai encore quelques autres modules actifs, mais avec ce que j’ai sous la main de mon setup perso, c’est déjà pas mal. On a donc, dans l’ordre :

  • Le contexte kube quand il est défini (ici dans le fichier .kube/config qui contient le cluster Pi4)
  • Le virtualenv quand il est chargé
  • Le dossier dans lequel on se trouve
  • La branche git si c’est un dépot, le numéro de commit
  • L’état du workspace git quand il est autre que « clean » (ici, au moins un fichier tracké a été modifié)
  • La durée d’exécution de la dernière commande

Dans les autres possibilités, le workspace terraform, les infos sur du chart helm, et autres joyeusetés du genre. Je vous laisse découvrir la documentation monstrueuse qui vous détaille toutes les possibilités. À noter que c’est ce que j’ai fait pour certains modules, notamment pour personnaliser les couleurs ou la syntaxe, et l’ordre d’affichage aussi. C’est plutôt complet. Au passage, juste après son installation j’avais toujours le souci de polices (les caractères spéciaux sur les branches git par exemple). J’ai fait simple, installation du paquet powerline-fonts qui convient, on redémarre Terminator, on sélectionne la bonne police dans les options d’affichage et roulez jeunesse.

Applications graphiques : le thème sombre !

Eh oui, je m’en suis rendu compte très, très vite, en ouvrant les options de Terminator, puis en constatant les menus de Sublime Text, c’est blanc, très blanc. Mais comme je n’ai pas de bureau, pas d’application ou de panneau de configuration facilement accessible pour gérer tout ça.

C’est via une bidouille pour les paquets flatpak qui ne respectent pas le thème installé que j’ai pu trouver ma solution : une simple variable d’environnement. Alors oui dit comme ça, on a l’impression que c’est trop facile, mais j’ai fouillé des résultats de recherche pendant plus d’un quart d’heure, et même comme ça, il aura fallu un certain temps avant d’avoir un truc qui marche.

Et je suis allé au plus simple : via gsettings, j’ai regardé ce qui était installé comme thème :

La variable d’environnement, c’est GTK_THEME, et on peut même sélectionner des variantes. Dans mon cas, je veux la version dark. J’ai donc ajouté à mon bash_aliases GTK_THEME=Adwaita:dark et voilà. Mais terminator n’en bénéficie pas, lui. Il a donc fallu que je modifie le VBScript pour l’inclure :

Et voilà, tout ce petit monde sait désormais s’afficher en sombre, avec tout ce qu’il me faut pour mes bricolages persos. Au passage, je suis passé sur Sublime Text 4, toujours aussi pratique à utiliser, l’installation de Package control est enfin incluse (on se demande pourquoi c’est pas directement embarqué d’emblée…), quelques packages en moins à installer (thème sombre d’origine, support yaml), bref, rien qui justifie que je m’étende.

Au final ça m’aura repris quand même une bonne heure pour faire le tour de tout ça, un peu trop long à mon goût, je pense que je vais bosser pour réduire ce délai pour la prochaine fois.

En attendant WSL2, bientôt ?

En effet, Microsoft vient de sortir le dernier refresh de sa branche LTSC, 2021, basé sur Windows 10 21H1. Il y aura donc possibilité de faire du WSL2, du Windows Terminal, bref, de tester tout ce qu’un collègue de travail fait depuis qu’il a retrouvé un PC de boulot Windows (il travaillait sur un macbook perso avant…). Et non, certainement pas de Windows 11 avant très longtemps.

Une installation que je vais certainement envisager début d’année prochaine. En espérant qu’en plus ça me libère de quelques plantages gênants, faut dire que le Windows que j’utilise actuellement date d’avant la sortie du CPU, et j’arrive pas à me sortir de la tête que ça fait partie des causes des multiples écrans bleus que j’ai pu avoir (avec des messages différents à chaque fois).

1 Commentaire
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Yacine Floret
Yacine Floret
15/12/2021 19:02

Hello,
C’est marrant ma boîte aussi c’est fait racheter par Accenture, tu travailles où ?