Lors de la Build 2020, Microsoft a dévoilé le code source d'un nouveau gestionnaire de paquets, winget. Chacun peut l'utiliser... et s'apercevoir qu'il ne fait pas ce que devrait proposer un tel outil. Pour le moment, il ne permet que d'installer des applications. Mais d'ici un an, le projet devrait être finalisé et enfin tenir ses promesses.
Sous Linux, installer une application est simplissime. Vous voulez VLC, Gimp, un serveur HTTP ? Il suffit en général d'une ou deux lignes de commandes. Avec une distribution telle que Debian et ses dérivés, cela passe par APT :
sudo apt update
sudo apt install vlc
sudo apt full-upgrade
Ces trois lignes permettent respectivement de mettre à jour la liste des dépôts (contenant les logiciels qu'il est possible d'installer), d'installer VLC, et de mettre à jour le système ainsi que toutes les applications qui y sont présentes.
Chaque distribution dispose de ses propres dépôts, mais de nombreux miroirs sont proposés de par le monde afin de répartir la charge des serveurs. Chacun peut mettre le sien en place ou créer son dépôt que n'importe qui peut ajouter sur sa machine. Le tout passe par des connexions sécurisées, les téléchargements sont vérifiés avant l'installation, etc.
Pendant ce temps, sous Windows, on en est encore à renvoyer l'utilisateur vers des exécutables à télécharger en ligne. Aucun dispositif de téléchargement décentralisé n'est nativement supporté, pas plus que des protocoles comme Metalink qui permettraient la gestion des miroirs et des vérifications d'empreintes/signatures.
Le Store plutôt que l'ouverture
Microsoft, comme Apple avant lui, a préféré opter pour la solution centralisée et entièrement fermée de la boutique applicative. Si un compte n'est pas nécessaire pour l'utiliser, il est impossible d'y ajouter des dépôts tiers (excepté pour des usages en entreprise), ou même de passer par des procédures simplifiées en ligne de commandes.
Résultat, des services se sont développés à travers le temps, chacun ayant ses avantages propres. Le célèbre Chocolatey bien sûr. Mais d'autres comme AppGet et Just Install qui reposent sur une liste d'installeurs, Npackd pour utiliser ses propres dépôts, Scoop qui ne nécessite pas de droits administrateur, Homebrew pour macOS ou Wapt.
Conscient de ces lacunes, Microsoft a toujours regardé du côté des gestionnaires de paquets, sans jamais parvenir à arriver au bout d'un tel projet. C'est ainsi qu'est né en 2014 OneGet, très peu utilisé dans la pratique et principalement pour des modules PowerShell. Lors de la Build 2020, c'est winget qui était au centre des attentions.
winget officialisé, il n'a rien d'un gestionnaire de paquets
Car cette fois, c'est promis : un gestionnaire de paquets arrive. On aurait pu imaginer un complément au Store... mais non (enfin si, nous y reviendrons). Open source, il ne vient pas non plus compléter un projet existant comme Chocolatey. Microsoft évoque des questions de sécurité, mais veut sans doute se simplifier la vie en repartant de zéro.
Le problème de cette approche, c'est que soit on communique tôt et le résultat n'est pas à la hauteur. Soit on attend d'avoir un produit finalisé... mais cela prend des années. Bien entendu, c'est la première approche qui a été choisie. Ainsi, winget tel qu'il a été présenté n'est pas (du tout) un gestionnaire de paquets.
Comme le code est ouvert, il est assez facile de le vérifier. Il suffit d'ailleurs de se rendre dans la liste des manifestes proposés, permettant d'installer les applications. On voit clairement qu'il ne s'agit que d'une suite de fichiers au format YAML listant quelques informations sur les applications, l'URL du fichier d'installation, les architectures compatibles, une empreinte SHA-256 et d'éventuels « switchs » permettant une installation silencieuse.
Pour Gimp 2.10.18 par exemple :
Id: GIMP.GIMP
Name: GIMP
AppMoniker: GIMP
Version: 2.10.18
Publisher: GIMP
Author: GIMP
License: Copyright (C) 2007 Free Software Foundation, Inc. - GNU General Public License
LicenseUrl: https://www.gimp.org/about/COPYING
MinOSVersion: 10.0.0.0
Homepage: https://www.gimp.org
Description: GIMP is an acronym for GNU Image Manipulation Program. It is a freely distributed program for such tasks as photo retouching, image composition and image authoring.
Tags: "editor,image,picture,pictures,photo,gimp"
InstallerType: Inno
Installers:
- Arch: x64
Url: https://download.gimp.org/mirror/pub/gimp/v2.10/windows/gimp-2.10.18-setup-2.exe
Sha256: BF6CE59587E63E1E8BAB923E7DFDAA0F2C8BD3AC4D0CED602F3C063F9E32465C
Switches:
Silent: "/VERYSILENT /NORESTART /ALLUSERS"
SilentWithProgress: "/VERYSILENT /NORESTART /ALLUSERS"
Ainsi, on comprend pourquoi aucune fonctionnalité de mise à jour ou de suppression n'existe : c'est parce que de tels cas ne sont pas encore supportés. Ainsi, winget est un simple outil d'installation en ligne de commandes, basé sur un dépôt ouvert, comme Scoop par exemple. Mais celui-ci, au moins, ne nécessite pas les droits administrateur. winget si.
Il faudra tenir la roadmap pour convaincre
Mais l'objectif de Microsoft et ses équipes est bien d'aboutir à un réel gestionnaire de paquets. Simplement, cela prendra du temps, comme d'autres projets avant celui-ci, très basiques à leurs débuts et se faisant de plus en plus convaincants, comme WSL (désormais en v2) ou le nouveau Terminal (depuis peu en 1.0).
La roadmap est d'ailleurs publique, apportant déjà quelques bonnes nouvelles. Tout d'abord que la v1.0 est attendue pour mai 2021. Chaque mois, une nouvelle itération sera rendue disponible, leurs objectifs n'étant pas encore définis. On sait simplement que celle de juin (v0.2) doit apporter un lien avec le Microsoft Store ou permettre l'installation de Discord.
La liste des fonctionnalités attendues pour la v1.0 permet de confirmer que l'on arrivera bien à un véritable gestionnaire de paquets avec mise à jour, désinstallation, choix entre plusieurs installeurs, langues, architectures, canaux (dev, beta, etc.), personnalisation et autres règles d'entreprises. Les PWA devraient aussi être gérées.
Mais la route sera encore longue, le principal restant à faire. Si on ne peut pas encore dire que winget est un gestionnaire de paquets, le code diffusé la semaine dernière doit permettre d'en créer un de toutes pièces, en un an. Chacun est libre de proposer ses propres paquets. La procédure à suivre est décrite ici.
D'ici à ce que l'on puisse vérifier que l'équipe de Microsoft tient ses promesses, comment tester winget ? Vous pouvez bien entendu compiler le code source, ou passer par le programme Insider. Mais aussi simplement télécharger la dernière version en date, distribué sous la forme d'un bundle AppX. Un fichier qu'il suffit de télécharger et de lancer. Ensuite, vous aurez accès à winget en ligne de commandes.
Windows 10 est supporté à partir de la build 1709. Si jamais vous avez une erreur concernant des paquets manquants, il faut télécharger le Desktop Bridge VC++ v14 Redistributable Package. Notez au passage qu'un développeur a déjà créé un site référençant les manifestes disponibles, permettant d'en afficher la liste, d'effectuer une recherche et d'obtenir directement la commande à taper : Winstall. Un autre a créé une interface graphique.
L'installation de winget et les fonctionnalités actuellement disponibles