Installer PowerShell sur Linux

Nous avions Bash sur Windows, .Net Core sur Linux, il ne manquait, pour boucler la boucle, que PowerShell sur Linux. C'est aujourd'hui chose faite avec la mise à disposition de PowerShell en Open Source :

Les packages sont aujourd'hui disponibles pour Ubuntu 14.04, Ubuntu 16.04, CentOS 7 et OS X 10.11. Sans oublier Windows 8.1 / Server 2012 R2 et Windows 10 / Server 2016. Il s'agit aujourd'hui d'une version Alpha de PowerShell 6.0.

PowerShell est donc dorénavant mis à disposition sur GitHub et voici quelques pointeurs intéressants à conserver et explorer :

Pour ma première installation de PowerShell sur ma machine Ubuntu 16.04.1 LTS, j'ai donc suivi les instructions manuelles et exécuté ceci :

wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb sudo apt-get install libunwind8 libicu55 sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

C'était avant de voir qu'il existait un script d'installation download.sh qui fonctionne sur Ubuntu, CentOS et OS X...

Voici, après installation, la liste des modules disponibles et les informations de version de PowerShell sur mon installation :

PowerShell sur Ubuntu

Notons que, puisqu'il s'agit d'une édition Core, on se rapproche plus du niveau de fonctionnalités que l'on retrouve sur Nano Server. On remarque la présence de Pester pour les tests, de PackageManagement et PowerShellGet, et d'une version "0.0" de DSC.

Une vidéo vous explique comment installer PowerShell dans un conteneur Docker : https://channel9.msdn.com/Shows/msftazure/Run-PowerShell-Natively-on-Linux-with-Docker. Le Dockerfile de la démo est disponible ici, mais il mériterait d'être largement simplifié.

J'ai donc testé pour vous et voici un Dockerfile de mon cru qui fait l'affaire :

FROM ubuntu:xenialENV PACKAGE powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.debRUN apt-get update && apt-get install -y libunwind8 libicu55ADD $PACKAGE .RUN dpkg -i ./$PACKAGEENTRYPOINT ["powershell"]

Il suffit de créer ce Dokerfile, de récupérer le package dans le même répertoire et de construire une image Docker avec un tag, par exemple powershelldemo :

wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.debdocker build -t powershelldemo .

Puis, tester avec un conteneur temporaire :

docker run --rm -it powershelldemo

Et voilà !

PS -- Comme vous le valez bien, je vous ai mis ce petit Dockerfile sur GitHub aussi :

https://github.com/pascals-msft/docker-ps