Gestionnaire de paquets
Présentation
Un gestionnaire de paquets est un système qui permet de gérer l’ensemble du cycle de vie des logiciels déployés par ce biais sur le poste de travail. Présente depuis longtemps dans Linux, cette fonctionnalité permet alors de s’affranchir de toutes les étapes de récupération, d’installation, de mise à jour, etc. des logiciels installés sur le poste de travail. Toutes ces étapes sont entièrement automatisées : il suffit d’en déclencher l’opération à l’aide de quelques cmdlets.
Lancé avec la version 5.0 de Windows PowerShell, le gestionnaire de paquets fait alors son apparition au sein des systèmes d’exploitation Windows grâce au module PackageManagement (anciennement OneGet). Ce dernier s’occupe alors de tout ce qui touche au SDII (Software Discovery, Installation and Inventory), et répond à des problématiques pour les professionnels de l’informatique et DevOps.
1. Architecture
Un paquet est en réalité une archive, qui contient alors le logiciel à installer (ou à télécharger depuis une URL présente dans l’archive), mais aussi les procédures (scripts) nécessaires à l’installation du logiciel. L’ensemble de ces paquets sont alors stockés sur des dépôts, accessibles généralement depuis Internet. C’est le cas par exemple de Chocolatey, qui est donc un fournisseur de paquets pour les plateformes Windows. Ce dépôt, basé sur NuGet, est géré...
Prérequis et fonctionnement
Les paquets téléchargés depuis le dépôt Chocolatey sont enregistrés sur le poste de travail dans le dossier C:\Chocolatey\lib. Chacun de ces paquets contient alors des ressources qui permettront de télécharger l’application si nécessaire et de lancer l’installation de celle-ci en mode silencieux.
Les ressources associées aux paquets téléchargés sont enregistrées dans C:\Chocolatey\lib
La très grande majorité des paquets contiennent donc des scripts PowerShell permettant d’automatiser l’ensemble des tâches. Il est donc indispensable que la politique d’exécution des scripts sur le poste de travail soit sur RemoteSigned ou Unrestricted. Si la politique d’exécution des scripts est sur Restricted, les paquets seront bien téléchargés, mais les scripts enregistrés au sein des paquets ne pourront pas s’exécuter, et par conséquent le logiciel ne pourra pas être installé.
Exemple de script présent dans un paquet logiciel de Chocolatey
Également, il va de soi que le poste de travail doit avoir un accès à Internet pour le téléchargement des paquets auprès des fournisseurs, mais aussi auprès des différents éditeurs. C’est généralement auprès...
Description des cmdlets et démonstration
Dans cette section, nous allons voir l’ensemble des cmdlets Windows PowerShell suivantes, qui permettent d’interagir avec le gestionnaire de paquets :
-
Install-PackageProvider : permet d’inscrire un fournisseur de paquets et son dépôt.
-
Get-PackageProvider : liste l’ensemble des fournisseurs de paquets inscrits.
-
Find-Package : permet de rechercher un paquet auprès des fournisseurs de paquets inscrits.
-
Install-Package : lance l’installation de l’application ou du paquet demandé.
-
Uninstall-Package : lance la désinstallation de l’application ou du paquet.
-
Get-Package : liste l’ensemble des programmes et paquets installés.
1. Ajouter un fournisseur de paquets
Si par défaut le fournisseur de paquets Chocolatey n’est pas installé dans Windows PowerShell, il est néanmoins référencé comme tel via une liste que l’interpréteur de commandes récupère sur Internet. Pour installer un fournisseur de paquets via Windows PowerShell, il faut faire usage de la cmdlet Install-PackageProvider. Voici les paramètres :
Paramètre |
Description |
-Force |
Force l’installation du fournisseur de paquets sans demande de confirmation. |
-Name <String[]> |
Nom du fournisseur de paquets à inscrire. |
Exemple : inscription du fournisseur de paquets Chocolatey
PS C:\Windows\system32> Install-PackageProvider -Name Chocolatey -Force
Name Version Source Summary
---- ------- ------ -------
chocolatey 2.8.5.130 https://onege... ChocolateyProtot
Si le fournisseur NuGet n’est pas préalablement installé sur le poste de travail, alors Windows PowerShell se chargera de le faire. Il s’agit ici d’un prérequis pour l’installation...
Scénarios d’usage
Si l’on imagine clairement la mise en place du gestionnaire de paquets Windows dans un environnement helpdesk, il peut être également très pratique dans un autre scénario : la création d’images Windows.
Les images Windows permettent de déployer facilement les systèmes d’exploitation Windows sur des postes de travail. Cette méthode de déploiement s’effectue généralement à travers le réseau, à l’aide d’un serveur PXE (Preboot Execution Environment) ou WDS (Windows Deployment Services).
Afin d’optimiser le processus de préparation des postes de travail et de gagner du temps, les images Windows contiennent en général un lot de logiciels, de configurations et de mises à jour Windows qui auront préalablement été installés avant la création de l’image.
Ainsi, certaines entreprises créent une ou plusieurs images Windows en fonction de leurs besoins et/ou clients. Cependant, la création d’une image ou sa mise à jour peut parfois s’avérer fastidieuse. C’est ici qu’intervient le gestionnaire de paquets : toute la partie de téléchargement des logiciels et d’installation peut être complètement automatisée en ligne de commande… et donc...