winget: Microsofts neuestes Tool für die Software-Verteilung über das Internet

    App-Installer und winget für das Package-ManagementAnlässlich der (virtuellen) Build-Konferenz stellte Microsoft den Package-Manager winget vor. Er soll nach dem Vorbild ähnlicher Tools das Herunter­laden und Instal­lieren von Software automa­tisieren. Micro­soft hält dazu ein eigenes Repository vor. Unklar ist noch, ob daraus eine Kon­kurrenz für den Store ent­stehen soll.

    Unter Linux spielen Paket-Manager wie das Advanced Package Tool (APT) eine zentrale Rolle bei der Installation sowie dem Update von Anwendungen und System­komponenten. Für Windows gibt es mittlerweile mehrere solcher Werkzeuge von Drittanbietern, zum Beispiel Chocolatey oder Ninite.

    Limitierte Anwendungen für PowerShellGet

    Microsoft selbst unternahm mit PowerShellGet einen Schritt in diese Richtung. Über Provider für verschiedene Repositories kann man damit etwa auch Software-Pakete von Chocolatey abrufen. In der Praxis beschränkt sich PowerShellGet aber auf das Installieren von Scripts und PowerShell-Modulen, in erster Linie von der PSGallery.

    Die automatisierte Distribution von Software-Paketen soll dagegen nun winget übernehmen. Microsoft hat dabei ohne explizite Würdigung das Konzept des Open-Source-Tools AppGet weit­gehend übernommen, sehr zum Unmut von dessen Entwickler.

    Repository auf Github

    In der aktuellen Preview besteht winget aus einem Client für die Kommando­zeile sowie einem Community Repository für die Anwendungen. Dieses wird zwar von Microsoft auf Github betrieben, aber es ist unklar, inwieweit der Hersteller die Qualität und Sicherheit der angebotenen Software gewährleistet.

    Die Ankündigung von winget nennt nur technische Maßnahmen, um die "Wahrscheinlichkeit zu verringern", dass dort bösartige Software hoch­geladen wird. Microsoft erwähnt dabei SmartScreen, statische Analysen und die Validierung von SHA256-Hashes.

    Ausrichtung auf Installation kostenloser Software

    Der Paket-Manager lässt derzeit nur relativ bescheidene Ambitionen erkennen. Anders als bei APT ist vorerst nicht vorgesehen, damit auch Updates für das Betriebs­system  zu verteilen. Außerdem fehlt es an Mechanismen für Software-Entwickler, um ihre Software auf diesem Weg zu vermarkten oder zu verkaufen.

    Daher stellt Microsoft in Abrede, dass winget eine Konkurrenz für den App Store sei. Allerdings existieren bereits Web-GUIs von unabhängigen Entwicklern wie winstall oder wingetit, die erahnen lassen, dass sich ein Schaufenster für das Marketing leicht entwickeln ließe.

    Die Frage nach dem Verhältnis zum Store stellt sich besonders, nachdem kolportiert wurde, dass Microsoft den Windows 10 Store for Business ausmustern möchte. Darüber hinaus soll winget mit App-Installer ausgeliefert werden, einem Tool für das Side-Loading von Store Apps.

    Aufgrund der genannten Defizite für den Vertrieb von Software beschränkt sich der Fundus im Repository derzeit auf Open-Source-Tools und kostenlose kommerzielle Programme. Darunter finden sich die üblichen Verdächtigen wie Adobe Reader, Flash Player oder das Java Runtime Environment.

    Zu den Paketen im winget-Repository gehören kostenlose Programme von Adobe sowie das JRE.

    Gerade sie haben sich aufgrund notorischer Sicherheits­mängel einen einschlägigen Ruf erworben. Da stellt sich natürlich die Frage, ob Microsoft dafür sorgen wird, dass die Pakete nach dem Erscheinen eines kritischen Updates umgehend aktualisiert werden, so wie das bei kuratierten Services der Fall ist.

    Pakete verwalten mit winget

    Der Verwendung des Clients ist relativ einfach. Er unterstützt folgende Optionen:

    • search: Suchen und Anzeigen grundlegender Informationen zu Apps
    • show: Zeigt Details zu einer Anwendung an
    • install: Installiert die angegebene Anwendung
    • source: Verwalten von Anwendungsquellen
    • hash: Hilfsprogramm zum Erzeugen von Hashes für Installations­dateien
    • validate: Überprüft eine Manifestdatei

    Aktuell verfügbare Optionen für den winget-Client

    Aus der Sicht von Admins sind nur die ersten drei Befehlswörter relevant, um Programme im Repository zu finden, Details dazu anzuzeigen und sie zu installieren. Die beiden letzten richten sich an Entwickler. Diese können Applikationen als MSI, MSIX und EXE in das Repository einstellen.

    Der Parameter source dient dazu, ein anderes Repository auszuwählen als jenes von Microsoft. Ein solches gibt es zurzeit aber noch nicht.

    Ruft man winget mit dem Schalter search auf, ohne diesen weiter einzugrenzen, dann erhält man die Liste sämtlicher verfügbarer Pakete. Aktuell sind das etwas mehr als 700.

    Beispielinstallation von Notepad++

    Um beispielsweise Notepad++ zu installieren, würde man erst mit

    winget search notepad

    schauen, ob das Paket verfügbar ist und könnte über

    winget install notepad++

    dieses installieren.

    Installation von Notepad++ über winget

    Ein Aufruf des Clients kann immer nur ein Paket angeben. Will man mehrere Anwendungen in einem Durchgang hinzufügen, dann muss man die ent­sprechenden Kommandos in eine Batch-Datei oder ein PowerShell-Script packen.

    Es fällt auf, dass aktuell noch zwei wichtige Methoden für das Paket-Management fehlen, nämlich Update und Uninstall. Diese sind bereits auf der Roadmap und sollen beizeiten folgen.

    Verfügbarkeit

    Derzeit liegt winget in einer Preview vor, welche bereits in der Insider Preview von Windows 10 20H2 enthalten ist. Alternativ kann man den Client von Github als Appx herunterladen. Er unterliegt einer Open-Source-Lizenz. Als System­voraus­setzung nennt Microsoft mindestens Windows 10 1709.

    1 Kommentar

    Karl Wester-Ebb... sagt:
    23. Juni 2020 - 11:33

    Überschrift: oder lokal. Man kann auch lokale Repos erstellen