winget n'est pas (encore) un gestionnaire de paquets

winget n’est pas (encore) un gestionnaire de paquets

Mais ça va venir

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

27/05/2020 7 minutes
24

winget n'est pas (encore) un gestionnaire de paquets

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ôtsScoop 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

WinGetWinGet
L'installation de winget et les fonctionnalités actuellement disponibles

24

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Le Store plutôt que l'ouverture

winget officialisé, il n'a rien d'un gestionnaire de paquets

Il faudra tenir la roadmap pour convaincre

Commentaires (24)


“il ne vient pas non plus compléter un projet existant comme Chocolatey”



Je ne comprendrai jamais cette volonté de systématiquement réinventer la roue.



Il y a déjà quelque chose de fonctionnel, efficace, bien testé, pourquoi ne pas forquer de là ?


Parce que ça revient à devoir gérer l’existant, ce qui n’est pas toujours la bonne solution. Surtout qu’un gestionnaire de paquets, en soi, ce n’est pas franchement la brique la plus complexe. Le fait de repartir de zéro n’empêche d’ailleurs pas d’assurer une certaine interopérabilité avec différents types de dépôts existants ;) On verra ce qui est choisi en la matière (tant du côté de MS que des outils tiers)


Lectureconnexe très intéressante.


Logique, Windows n’est pas (encore) un OS


Je me demande comment sontgérér les installeurs qui nous demandent notre accord pour installer des trucs en plus (spyware, autre applications du même développeurs…etc) : est-ce que tout s’installe dans notre dos vu que l’installation est “silencieuse” ?


Ca dépend des choix de l’éditeur de l’appli, quand il a fait son setup..


@Roxar: très bon complément d’information


Je calme quand même un peu, apt get c’est simple quand le nom du paquet est connu, que le repo est bien installé, quand c’est la bonne version,… 😁




apt search mot-clé





De rien <img data-src=" />


Tu peux faire une recherche comme dit au-dessus, et les dépôts par défaut sont le plus souvent présents. Après oui si tu veux l’applicatif de jean-kevin du 32, soit tu passes par un PPA & co ou par une distribution plus classique.&nbsp;








PercevalIO a écrit :



Je calme quand même un peu, apt get c’est simple quand le nom du paquet est connu, que le repo est bien installé, quand c’est la bonne version,… 😁









Mihashi a écrit :



De rien <img data-src=" />







yum/dnf provides (fichier/commande)





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.



<img data-src=" /> Et tout ça sans avoir besoin de rebooter. <img data-src=" />








PercevalIO a écrit :



Je calme quand même un peu, apt get c’est simple quand le nom du paquet est connu, que le repo est bien installé, quand c’est la bonne version,… 😁





Sur nunux il existe des gestionnaires de logiciels graphiques qui marchent très bien.

Il n’y a plus qu’a choisir et cliquer. Courage, ça viendra bien un jour… <img data-src=" />



Winget a été créé à partir d’un projet existant dont l’auteur à contacté les équipes de Microsoft ils partent pas vraiment de 0. De deux chocolatey est un format de paquet rien ne dit que Microsoft ne partira pas sur ce format, le projet étant open source tu peux tout à fait proposer une api permettant de gérer différent formats de paquets chocolatey + msi/x me semble une bonne base de départ ça existe déjà et ça marche.



Je pense qu’il y aura un croisement avec nuget pour reprendre les processus de désinstallation , mise à jour etc.



Bref il reste du boulot c’est open source, donc faut arrêter de râler et proposer&nbsp;


Windows Store quoi. <img data-src=" />


Le problème n’est-il pas simplement qu’historiquement les programmes étaient proposé via des “Installers” et que les éditeurs ne feront pas spécialement d’effort pour passer à une nouvelle solution tant que le bon gros vieux et dégueulasse .exe fonctionne ?



On peut en effet voir à quel point le .msi a percé face au .exe en 20ans. Hors le .msi intègre tout ce qu’il faut pour installer, mettre à jour et désinstaller là où le .exe est techniquement qu’un programme executable fait maison qui se démerde tout seul pour copier les fichiers aux bons enlacements.



Techniquement,il pourraient forcer la main pour utiliser le format APPX (format des apps du store) et pénaliser les autre formats.









choukky a écrit :



Sur nunux il existe des gestionnaires de logiciels graphiques qui marchent très bien.

Il n’y a plus qu’a choisir et cliquer. Courage, ça viendra bien un jour… <img data-src=" />





Ce nouveau “store” est horrible, c’est très mal ranger, il manque la moitié des packages, je ne comprends plus rien à ce qu’il fait (je ne sais pas s’il utilise tous les dépots, je ne suis même pas sûr que ce soit de l’APT…), ça fout la merde aux extensions de Gnome3… C’est l’une des plus grosse régression d’Ubuntu. L’ancien store n’était pas terrible, mais il fonctionnait bien en tant que GUI pour APT.



Ben sinon, y’a aptitude qui est “graphique” <img data-src=" />


Ok merci, donc je n’utiliserai pas WinGet :)


Merci pour ce lien. Je n’étais pas du tout au courant de cette histoire.



&nbsp;J’utilise Chocolatey depuis des années, et j’avais raté le fait qu’AppGet ait finalement “décollé” il y a 2 ans. Ca avait l’air pas mal du tout.



J’ai vérifié, et la plupart des paquets Choco que j’installe en général sont présent sur AppGet (même s’il y a quelque manquements)


sans vouloir troller quel est réellement l’intérêt d’un gestionnaire de paquet en plus du store pour un user lambda ? car bon utiliser des lignes de commandes ou mettre des dépôt tiers c’est ok pour des utilisateurs avancés mais pour M et Mme Michu ?

Le store fait déjà tout ce que ferait un hypothétique gestionnaire de paquet








ashlol a écrit :



sans vouloir troller quel est réellement l’intérêt d’un gestionnaire de paquet en plus du store pour un user lambda ? car bon utiliser des lignes de commandes ou mettre des dépôt tiers c’est ok pour des utilisateurs avancés mais pour M et Mme Michu ?

Le store fait déjà tout ce que ferait un hypothétique gestionnaire de paquet





A partir du moment où tu es en ligne de commande, à mon avis, tu ne vises pas Monsieur ou Madame Michu :) Par contre, tu peux viser leur fiston qui fait la maintenance de leur ordi <img data-src=" />



Perso, j’ai plutôt été déçu en lisant l’histoire de l’auteur de AppGet (un peu comme pour Wunderlist) Microsoft à un peu tué son appli avec WinGet après avoir fait miroité un rachat-embauche.



Il en parles ici : (EN) The Day AppGet Died.








Thoscellen a écrit :



Perso, j’ai plutôt été déçu en lisant l’histoire de l’auteur de AppGet (un peu comme pour Wunderlist) Microsoft à un peu tué son appli avec WinGet après avoir fait miroité un rachat-embauche.



Il en parles ici : (EN) The Day AppGet Died.





Après, c’est choses-là, c’est compliqué.&nbsp;

On ne sait pas trop comment se sont passé les entretiens d’embauche. Lui-même dit qu’il n’était pas très chaud de partir par là-bas. Ca s’est peut-être ressenti. Ou ça peut être d’autres raison, genre il n’est pas bien passé auprès d’un décisionnaire lui ayant fait passer l’entretien. Et cette personne de chez Microsoft, Andrew, s’est peut-être au final juste retrouvée dans une position le cul entre 2 chaises, à devoir dire non à quelqu’un alors qu’il n’est pas d’accord et que le problème ne vient pas de lui.



Ce n’est pas parce qu’ils sont gros qu’ils sont à l’abris des erreurs les plus basiques. Ils en ont déjà fait, même en interne. Exemple les guerres entre l’équipe dotNet Vs l’équipe VBNet, idem pour Onedivre Vs SkyDrive si ma mémoire ne se trompe pas, …









Roxtar a écrit :



Lectureconnexe très intéressante.





D’ailleurs, MS a répondu depuis, même si comme dit, dans ce genre de situation, il est difficile de juger de l’extérieur ce qu’il en est vraiment, d’un côté comme de l’autre <img data-src=" />