WinGet
« | 18 Jul 2021 | »Worüber die Linux Community seit
Jahrzehnten bei Windows
lacht und was auch Windows-Nachbauprojekte wie ReactOS
hinbekommen haben, ist das Fehlen eines Anwendungs-Installationsprogramms,
das alle möglichen Apps aus einem Repository installiert.
Oder anders gesagt: Windows hatte nie ein apt install
.
Und jetzt, 20 Jahre zu spät, kommt winget
…
Vorgeschichte
Das Thema Installation
oder Setup
ist historisch bedingt unter Windows
(und früher auch unter DOS), Sache
des Anwendungsentwicklers gewesen.
Ganz anders ist es heute in unixoiden Systemen, denn sowohl Linux, BSD,
Android und MacOS
nutzen die für sie typischen “Paket-Manager”, die eine Anwendung von einem
definierten Ort herunterladen und alle Dateien an den korrekten Stellen
integrieren.
Unter Windows (und DOS) hingegen hatte jeder Hersteller seinen eigenen
Installer entwickelt, der häufig mehr Probleme verursacht als gelöst hatte.
Da wurden wild DLLs in Windows\System[32]
überschrieben nur damit die
eigene Anwendung eine anders-aussehende “coolere” Titelleiste bekam.
Am Ende bildeten sich ein Hand voll “Installer” Hersteller, die den Vorgang der Installation durch eigene proprietäre Scriptsprachen abbildeten.
Microsoft versuchte das Chaos noch durch Standards wie dem MSI Format (Microsoft Installer) und später mit dem Windows-Store zu verhindern, doch bis heute schreiben die Hersteller eigene Setups, um den Kunden-PC mit möglichst viel Werbung und andere Blödheiten zu infizieren.
Nun, man darf dabei nicht vergessen, dass große Firmen ihre genutzte Fremdsoftware immer selbst anpassen wollen und forderten die “Eigenständigkeit” dafür von Microsoft ein. Für den Endanwender zu Hause blieb natürlich das reine Chaos übrig, denn der hatte kein Active Directory und keine eigene Software-Administrationsabteilung, die seinen Rechner korrekt aufsetzte.
Lösung
Es ist doch eigentlich einfach:
- Man lädt seine Binärdateien in ein definiertes Verzeichnis auf einen Webserver
- Dann schreibt man ein Script, das nach dem Herunterladen der Binärdateien alles an eine korrekte Stelle im Dateisystem schreibt und dann noch ein paar Konfigurationsdateien anpasst.
- Und am Ende erstellt man ein paar fette XML (JSON oder YAML) Dateien auf einen zentralen öffentlichen Webserver, wo jede Software mit seinen Dateien und Scripten verzeichnet ist.
- Jetzt braucht man nur noch ein kleines Programm, das die Softwareliste
herunterlädt, gefolgt von den Binärdateien und dann das Setup-Script
ausführt.
Fertig ist die allumfassende Softwareverwaltung.
apt
, rpm
, apk
und wie sie alle heißen machen das schon seit vielen
vielen Jahren und jetzt rüstet Microsoft endlich mit winget
nach, was
im Endeffekt auch nichts anderes ist, als ein Downloader und Installer-Starter
Anwendung
Microsoft plant winget
in Zukunft direkt mit Windows auszuliefern,
vermutlich im frisch angekündigten[] Windows 11](http://de.wikipedia.org/wiki/Microsoft_Windows_11).
Heute müssen wir es manuell installieren, damit alles andere “automatisch”
installiert werden kann.
Unter github.com/microsoft/winget-cli/releases
findet man beim neuesten Release eine msixbundle
Datei, die man herunterlädt
und ausführt.
Dann startet die Installation von winget
und am Ende kann man sofort
seine Konsole (cmd.exe
) öffnen und winget
eintippen.
winget search
listet die gesamte Software auf, die man perwinget
installieren kann. Natürlich kann man auch einen Token anfügen, der vorhanden sein muss, wiewinget search visualstudio
winget list
zeigt, was bereits alles am PC installiert ist, und obwinget
eine neuere Version online bereit hätte.winget install APP-ID
leitet dann den Download und die Installation ein. Die APP-ID setzt sich in der Regel aus
Hersteller + "." + Produkt [ + "." + Untertitel ]
zusammen. Einwinget install microsoft.openjdk.11
installiert dann z.B. die neuesten Version von OpenJDK.11 (bei mir aktuell in Version 11.0.11.9)winget upgrade APP-ID
leitet die Installation einer neueren Version eines bereits installierten Programms ein. Ich konnte z.B. perwinget upgrade CPUID.CPU-Z
meine aktuelle CPU-Z Version v1.92 auf v1.96 aktualisieren.winget uninstall APP-ID
führt einfach die Deinstallations-Routine eines Softwarepaketes aus.
Fazit
Warum erst jetzt, Microsoft? Verdammt noch mal!
Dieses Feature hätte schon vor 15 Jahren mit Windows Vista an die breiten
Massen verteilt werden können und müssen.
Denn das größte Problem mit Windows ist, dass jeder sich seine Software per
Suche im Internet zusammenladen muss und nicht selten landet man bei einem
bösen Abzocker, der seine eigene “FireFox-Setup.Exe” zum Download anbietet,
die dann viele weitere Holzpferdchen mitinstalliert.
Ein “geprüftes” Repository, wo sich alle seriösen Hersteller eintragen können, und ein einziges Setup-Tool, das alles installieren kann, ist doch DIE Lösung für viele Probleme.
Ich verstehe nicht, wie es so lange dauern konnte, bis so eine essentielle Funktion endlich bereitgestellt wird.
Wie auch immer … das Tool ist eine meiner großen Hoffnungen.
Und ich bin schon sehr gespannt, was sich mein älteres Ich in 10 Jahren
denken wird, wenn es diesen Text wiederfindet.
Wird dann winget
die ganze Windows-Welt erobert haben … oder blieb es
eine bedauernswerte Eintagsfliege, die nur mir verdammt gut gefallen hat?