WSL2 – Install Powershell 7

WSL2-Logo

Dans cet article nous allons voir comment installer PowerShell sur WSL. Déjà que mélanger du Linux et du Windows cela pouvait paraitre curieux il y a quelque années, maintenant installer PowerShell sur une machine Linux hébergée sur un Windows … Comment dire, cela devient un sacré sac de noeuds. Pour avoir été septique pendant quelque temps, je suis plutôt satisfait du résultat.

En effet, depuis quelque temps j’ai mis le doigt dans l’infra as code. Du coup, selon les besoins, différents outils sont utilisés tel que :

  • ARM template
  • Powershell
  • DSC
  • Terraphorm
  • Ansible
  • Packer

Le souci, est que la majorité de ses produits ne fonctionne pas ou mal sour Windows. D’où la l’utilité de WSL.

Sauf que pour utiliser Packer ou Ansible notamment lors de leur utilisation dans des environnements Azure, PowerShell est bien utile. D’où l’utilité de PowerShell sous WSL.

L’installation de WSL2 est documentée dans le KB Microsoft suivant :

 

La distribution utilisée est “Ubuntu 20.04” pour cette démonstration.

CERTBOT-WSL-0010
Ubuntu 20.04
ICO_RABBIT_RAPIDE

Si vous ne souhaitez pas tout lire et installer directement la dernière version de PowerShell, allez directement au chapitre :

Sommaire

Mise à jour de la distribution

Comme d’habitude dès que la distribution est installée, nous allons commencer par mettre à jour celle-ci à l’aide des commandes  suivantes :

sudo apt update
sudo apt upgrade
sudo apt-get install -f
POWERSHELL-WSL-0015
https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.2

Nous allons installer la version 7.0.8 de PowerShell. Vous trouverez ci-dessous la matrice de compatibilité de PowerShell par OS.

POWERSHELL-WSL-0010
https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linux?view=powershell-7.2

Comme vous pouvez le voir, il ne s’agit pas de la dernière version. Le choix de cette version, juste pour vous expliquer comment installer PowerShell sans utiliser la dernière version, mais en parcourant le repo. Puis la réalisation de la mise à jour de PowerShell version une version à jour.

Installation de prérequis

Commençons par installer les prérequis sur notre environnement. Rien de bien extraordinaire, lancer la commande ci-dessous :

sudo apt-get install -y wget apt-transport-https software-properties-common
POWERSHELL-WSL-0020
Prérequis

Récupération des sources de Powershell

Comme expliqué en introduction, nous allons récupérer une version précise de PowerShell depuis le repo.

Le repo est accessible à l’adresse :

Naviguer dans le repo jusqu’à la version souhaitée, ici 7.0.8.

Identifier le package à télécharger dans liste. Dans notre cas il s’agit de “powershell_7.0.8-1.ubuntu.20.04_amd64.deb”. Au passage noter le CRC de package “130D604076C2C526D379AE2C25B0173F4723149921F7800D26F07F10F1C923DD“.

En descendant plus bas dans le repo (Section Assets), le lien de téléchargement du package est disponible. Copier le lien.

Du côté de WSL, lancer la commande suivante en renseignant le lien de la version que nous venons de récupérer :

wget -q https://github.com/PowerShell/PowerShell/releases/download/v7.0.8/powershell_7.0.8-1.ubuntu.20.04_amd64.deb

Comparer le CRC du fichier téléchargé avec celui communiqué dans le repo afin de s’assurer que celui-ci n’a pas été altéré.

rhash --sha256 ./powershell_7.0.8-1.ubuntu.20.04_amd64.deb

Tout est OK !!!

Installation

Maintenant que le package a été récupéré, nous allons l’installer.

sudo dpkg -i powershell_7.0.8-1.ubuntu.20.04_amd64.deb

Nous pouvons désormais lancer PowerShell depuis WSL.

pwsh

Comme nous pouvons le constater, la version 7.0.8 est bien installée. Et un joli petit message nous avertit qu’une version plus à jour est disponible.

Pour quitter PowerShell et repasser dans le bash, il suffit de faire [CTRL] + [D].

Mise à jour vers une autre version définie

Pour mettre à jour votre version de Powershell vers une nouvelle version définie, répéter les opérations décrites précédement.

wget -q https://github.com/PowerShell/PowerShell/releases/download/v7.1.5/powershell_7.1.5-1.ubuntu.20.04_amd64.deb
ls
sudo dpkg -i powershell_7.1.5-1.ubuntu.20.04_amd64.deb

Passer sur le canal de mise à jour tratidionnel

Et oui, comme expliqués au début de cet article, nous avons installé PowerShell avec une version définie (histoire de se compliquer un peu la vie).

Il est possible de repasser sur une manière plus traditionnel de gérer PowerShell sous WSL et sur les mises à jour de PowerShell soient automatiquement réaliser à l’aide des commandes “apt update“.

Les manipulations ci-dessous permettent d’enregistrer le repo Microsoft.

Pour ce faire lancer les commandes suivantes :

# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
# Update the list of packages after we added packages.microsoft.com
sudo apt-get update
# Install PowerShell
sudo apt-get install -y powershell

Voilà, Powershell est dans ça dernière version.

Installation de Powershell depuis Package Repository

Il s’agit de la manière la plus simple et rapide d’installer PowerShell dans sa dernière version sur votre machine WSL Ubuntu. Cette méthode nécessite d’avoir accès à internet alors que la précédente méthode offre la possibilité de sourcer en interne les binaires.

Pour se faire lancer le script fourni par Microsoft :

# Update the list of packages
sudo apt-get update
# Install pre-requisite packages.
sudo apt-get install -y wget apt-transport-https software-properties-common
# Download the Microsoft repository GPG keys
wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
# Update the list of packages after we added packages.microsoft.com
sudo apt-get update
# Install PowerShell
sudo apt-get install -y powershell
# Start PowerShell
pwsh
POWERSHELL-WSL-0120
Nettement plus simple !!!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.