- Le blog participatif de bioinformatique francophone depuis 2012 -

Coder sous Windows avec WSL2

Quand on n'a pas le choix que de coder sous Win­dows alors qu'on aime­rait pou­voir coder sous Unix/​Linux, peu d'offres sont dis­po­nibles pour déve­lop­per dans des condi­tions cor­rectes. Il y en a glo­ba­le­ment 2 : soit on crée une machine vir­tuelle qui fait tour­ner son OS pré­fé­ré (ce qui consomme pas mal de res­sources du PC & de réglages en amont, et est inter­dit dans la plu­part des entre­prises), soit on uti­lise un outil Win­dows (qui jusqu'à il y a 2 ans était suf­fi­sam­ment peu fiable pour que je ne fasse pas d'article sur le sujet).
La bonne nou­velle c'est que Micro­soft a beau­coup amé­lio­ré son outil interne, le sous-sys­tème Win­dows pour Linux (WSL pour les intimes, on en est à la ver­sion 2 donc WSL2) qui per­met d’exécuter (en théo­rie) n'importe quelle dis­tri­bu­tion GNU/​Linux sur Win­dows (comme un dual­boot mais sans avoir à reboo­ter pour pas­ser de l'un à l'autre), ain­si que sa docu­men­ta­tion. Pour exemple, il y a 2 ans, j'ai mis 2 mois à avoir un envi­ron­ne­ment sans avoir de gros pro­blèmes avec (j'avais sur­tout des sou­cis de cer­ti­fi­cats); la der­nière fois que je l'ai ins­tal­lé, je n'ai eu aucun sou­cis.

Installer WSL2

Il faut avoir les droits admi­nis­tra­teurs et une ver­sion Win­dows supé­rieur à 10 (si vous avez un OS plus vieux met­tez le à jour. Non seule­ment c'est mieux au niveau de la sécu­ri­té, ça vous chan­ge­ra éga­le­ment la vie, WSL1 n'étant vrai­ment pas conseillé).

Ouvrez l'invite de com­mande Power­Shell ou Win­dows en mode admi­nis­tra­teur donc, puis lan­cez la com­mande sui­vante :

Si vous n'ajoutez aucun nom de dis­tri­bu­tion, la der­nière ver­sion stable d'Ubuntu sera ins­tal­lée. Pour véri­fier les dis­tri­bu­tions offi­cielles dis­po­nibles (pour les autres dis­tri­bu­tions, il fau­dra suivre la docu­men­ta­tion offi­cielle Micro­soft), tapez cette ligne dans l'invite de com­mande :

Lorsque l'installation est finie, redé­mar­rez votre ordi­na­teur. WSL2 est ins­tal­lé et prêt à l'emploi. Pour véri­fier qu'il est bien ins­tal­lé vous pou­vez ouvrir le com­mand prompt (via le rac­cour­cis cla­vier windows‑R, tapez cmd et la touche enter) et lan­cer la com­mande wsl. Vous devriez voir une ligne de prompt dif­fé­rente. Pour savoir quelle ver­sion d'OS est ins­tal­lée, tapez cette com­mande (vous trou­ve­rez mes résul­tats actuels comme exemple) :

Vous pour­rez tout de même consta­ter qu'il s'agit de WSL2 via la com­mande uname -r.

Le ter­mi­nal fonc­tionne exac­te­ment comme un ter­mi­nal de la dis­tri­bu­tion choi­sie, il est donc appro­prié de le cus­to­mi­ser selon vos habi­tudes.

Si vous avez besoin d'utiliser des appli­ca­tions gra­phiques, il vous fau­dra ins­tal­ler un groupe d'outil sup­plé­men­taire (qui contient plu­sieurs outils) :

Puis vous pour­rez lan­cer l'application (par exemple gimp) via le ter­mi­nal (à condi­tion de l'avoir ins­tal­lé sur WLS2).

Quel éditeur de code utiliser

Sous Win­dows, je conseille la solu­tion Micro­soft : Visual Stu­dio Code (ou VScode). Il per­met le switch entre WSL2 et Win­dows (selon ce qu'on veut faire) et la prise en main très sim­ple­ment, et a pas mal de plu­gins spé­cia­li­sés dans les dif­fé­rents lan­gages et usages pos­sibles. Pour uti­li­ser VScode sous WSL2, cli­quez en bas à gauche de la fenêtre de VScode :

Puis en haut cli­quez sur "Se connec­ter à WSL" :

Vous ver­rez en bas une indi­ca­tion de la dis­tri­bu­tion qu'il lance et/​ou est en cours :

Vous pour­rez voir visuel­le­ment vos dos­siers en ouvrant le dos­sier "source" de votre choix via l'explorer, avoir un ter­mi­nal (de la dis­tri­bu­tion en cours) fonc­tion­nel dans la même fenêtre, et avoir plu­sieurs fichiers ouverts côte à côte si le besoin s'en fait sen­tir.

En pratique

VScode contient un ter­mi­nal inté­gré :

Il vous per­met de gar­der tous vos alias/​habitudes de ter­mi­nal bash/​shell et votre prompt PS1 pré­fé­ré. Vous pou­vez par exemple direc­te­ment copier-col­ler votre fichier .bash_aliases dans votre $HOME WSL2.

Votre $HOME se trouve géné­ra­le­ment dans

via le navi­ga­teur de fichier Win­dows (mais vous pou­vez éga­le­ment le trou­ver direc­te­ment sur le ter­mi­nal de WSL2 en tapant ce qui suit :

dans le dos­sier de votre choix, et l'explorateur de fichier Win­dows s'ouvrira dans le dos­sier en ques­tion). Vous pou­vez aus­si faire l'inverse : le che­min vers vos fichiers Win­dows peuvent être accé­dés du ter­mi­nal WSL2 via ce che­min :

Conclusion

Il est main­te­nant pos­sible de coder sous Win­dows sans perdre toutes ses habi­tudes ni perdre tout son CPU, grâce à WSL2. À titre per­son­nel, l'OS Linux/​Unix est pré­fé­rable en natif (ça évite les sur­couches) mais la ver­sion actuelle fait bien le café, que ce soit parce que vous n'avez pas le choix de l'OS ou que vous vou­liez évi­ter le dual­boot.




Commentaires

Laisser un commentaire