winget: eigene Paketquellen hinzufügen

AGB-Leser

Commodore
Registriert
Jan. 2021
Beiträge
4.452
Hallo Leute,
nach gefühlten tausend Jahren hat Microsoft sich endlich bequemt eine eigene Paketverwaltung einzusetzen.
Die Befehle von winget sind ja dem apt recht ähnlich, damit komme ich klar. Womit ich nicht klarkomme: eigene Quellen hinzuzufügen. Alle Suchergebnisse, die ich gefunden haben, bedienen sich einfach aus dem MS-Store, das kommt für mich aber nicht in Frage. Ich wollte folgendes hinzufügen:

vlc (https://get.videolan.org/vlc/)
Firefox (https://ftp.mozilla.org/pub/firefox/releases/)
....

so gehts weiter. Dort trage ich alle Programme ein, die regelmäßig aktualisiert werden müssen.
Probiert habe ich:
Code:
C:\>winget source add --name vlc https://get.videolan.org/vlc/
Quelle wird hinzugefügt:
    vlc -> https://get.videolan.org/vlc/
Unerwarteter Fehler beim Ausführen des Befehls:
0x801901f4 : Interner Serverfehler (500).

Ergebnis sieht nicht gut aus. Er will, kann aber nicht.

Gibt es dafür eine Lösung, oder muss ich das manuell innerhalb jedes Programmes machen?
 
Wie kommst du darauf das es so gehen sollte? Es ist ja mit dem einfachen hinzufügen einer URL nicht getan, irgendwie muss winget ja auch wissen wie das Programm installiert werden muss.
Für die beiden Programme könntest du aber auch einfach Chocolatey nutzen.
 
  • Gefällt mir
Reaktionen: CoMo
Was du machst, ist natürlich Quatsch und kann nicht funktionieren. Du musst schon eine gültige Winget Repo-URL eintragen. Wenn es die nicht gibt, dann kannst du auch keine hinzufügen.

Wie schon von @Masamune2 erwähnt, benutz einfach Chocolatey.
 
  • Gefällt mir
Reaktionen: mibbio
  • Gefällt mir
Reaktionen: aragorn92
Okay, bin davon ausgegangen, dass das wie in Linux funktioniert:
hole das Paket und installiere. Muss ja nicht still im Hintergrund sein, ich kann dann auch die Installation machen. Aber scheinbar habe ich da wieder zu einfach gedacht. Schade.
Warum sollte ich chocolaty nehmen? Die haben doch auch ihre eigenen Paketquellen, wenn ich das richtig sehe. Dann kann ich mich auch aus dem ms-store bedienen
 
Auch unter Linux funktioniert das nicht so, dass du im Paketmanager einfach die Download-Url des Programms einträgst. Da musst du genauso eine Url eines passenden Repositories eintragen.
 
  • Gefällt mir
Reaktionen: aragorn92 und dafReak
Warum sollte ich chocolaty nehmen?
Hauptsächlich deshalb:

Code:
PS C:\WINDOWS\system32> winget search -q `"`" | Measure-Object


Count    : 4572
Average  :
Sum      :
Maximum  :
Minimum  :
Property :



PS C:\WINDOWS\system32> choco list * | Measure-Object


Count    : 7412
Average  :
Sum      :
Maximum  :
Minimum  :
Property :
 
Es steht bei Winget übrigens auch jedem frei, zusätzliche Pakete einzureichen (und zu pflegen).
https://github.com/microsoft/winget-pkgs

Die Pakete landet dann ein einem entsprechenden Repository, das winget ab Werk kennt.
 
  • Gefällt mir
Reaktionen: aragorn92
Ja genau, wie oben geschrieben. Link, Systemversion. ZB Ubuntu:
deb HTTPS://archive.ubuntu.com/ubuntu jammy main

so ähnlich wollte ich das ja eintragen
Ergänzung ()

mibbio schrieb:
Es steht bei Winget übrigens auch jedem frei, zusätzliche Pakete einzureichen (und zu pflegen).
https://github.com/microsoft/winget-pkgs

Die Pakete landet dann ein einem entsprechenden Repository, das winget ab Werk kennt.
Ich wollte die Pakete direkt vom Entwickler holen
 
Dein Beispiel mit Ubuntu ist eben nicht das Gleiche oder kannst du da auch einfach
Code:
deb https://get.videolan.org/vlc/ jammy main
eintragen? Auch da musst du eine Url angeben, wo der Paketmanager dann .deb Dateien vorfindet mit den notwendigen Metadaten.
 
Achso, ja an die meta-Daten habe ich nicht gedacht. Die müssen die Entwickler zur Verfügung stellen und das wird noch eine Weile dauern
 
mibbio schrieb:
Es steht bei Winget übrigens auch jedem frei, zusätzliche Pakete einzureichen (und zu pflegen).
https://github.com/microsoft/winget-pkgs

Die Pakete landet dann ein einem entsprechenden Repository, das winget ab Werk kennt.
Im Repo, das für jeden Lesend zur Verfügung steht sind nur YAML files, die Hashes und Links zum Download des Herstellers beinhalten

AGB-Leser schrieb:
Ja genau, wie oben geschrieben. Link, Systemversion. ZB Ubuntu:
deb HTTPS://archive.ubuntu.com/ubuntu jammy main

so ähnlich wollte ich das ja eintragen
Ergänzung ()


Ich wollte die Pakete direkt vom Entwickler holen
genau das tut winget

winget install VideoLAN.VLC

und alles ist gut.
 
  • Gefällt mir
Reaktionen: aragorn92
Wenn ich das richtig verstanden habe, dann läuft das nicht unabhängig, sondern muss deren repo nutzen
 
  • Gefällt mir
Reaktionen: alQamar
das ist richtig, man kann auch ein eigenes Repo anlegen, ist aber technisch komplex. Jedoch wichtig: Winget Repo ist keine Datenablage, sondern nur eine Metadatenablage an der man via github teilnehmen kann, neue Vorschläge, Fehlermeldungen etc, jedoch werden Eingaben und Änderungen über KI und und Prozesse sehr effektiv geprüft und auch Updates "gefunden".

Winget Repo
https://github.com/microsoft/winget-pkgs
Für alle die mit der commanline über Windows Terminal nicht klar kommen wollen, gibt es:
https://github.com/marticliment/WingetUI
 
  • Gefällt mir
Reaktionen: aragorn92
alQamar schrieb:
Im Repo, das für jeden Lesend zur Verfügung steht sind nur YAML files, die Hashes und Links zum Download des Herstellers beinhalten
Ja, meinte ich auch. Wenn einem ein Programm in Winget fehlt, kann man dort eine passende YAML-Datei für sein Wunschprogramm einreichen, damit es dann entsprechend in Winget aufgenommen wird.
 
  • Gefällt mir
Reaktionen: alQamar
ja das richtig, es kann etwas dauern, aber dank der Automatismen läuft es sehr gut.
 
Also kann ich im Prinzip auch meine eigene yaml-Datenbank anlegen. Muss ich nur noch schauen, wie ich die dann winget beibringe. Ich hätte ja nicht gedacht, dass das so kompliziert ist
 
Zurück
Oben