scoop vs. winget — Windows-Paketmanager verglichen und aufgeteilt
winget für Desktop-Apps, scoop für CLI/portable. Beide verwenden — Setup und praktische Aufteilung.
Windows-Paketmanager haben keinen einheitlichen Standard wie macOS Homebrew. winget (MS offiziell) und scoop (Community) haben jeweils klare Stärken und Schwächen, daher verwendet man normalerweise beide. Dieser Leitfaden erläutert Unterschiede, Setup und eine praktische Aufteilung.
Ich glaube, was die Kombination aus winget und scoop so praktisch macht, ist nicht das Nebeneinander zweier Tools, sondern die klare Aufgabenteilung — weil winget Desktop-Apps mit Admin-Rechten installiert, während scoop CLI-Tools ohne Admin im Benutzerverzeichnis isoliert, statt beide in einem gemeinsamen System-Namespace zu vermischen. Früher habe ich alles über Chocolatey installiert; heute ist winget + scoop mein Standard, da ich weniger UAC-Abfragen und sauberere Trennungen zwischen System- und Dev-Tools bekomme.
Zielgruppe: Windows 10/11 (Windows-Ersteinrichtung abgeschlossen).
TL;DR
| Merkmal | winget | scoop | Chocolatey |
|---|---|---|---|
| Gepflegt von | Microsoft offiziell | Community | Community |
| Installationsort | System (Admin) | ~/scoop/ (Benutzer, kein Admin) | System (Admin) |
| Stärke | Desktop-GUI-Apps, offizieller Katalog | CLI-Tools, portabel, isoliert | Ältester Katalog |
| Schwäche | CLI-Tool-Katalog schwach | Weniger Desktop-GUI-Apps | UAC-Abfrage jedes Mal |
| Rechte | Admin meist erforderlich | Benutzerebene | Admin erforderlich |
| Empfohlen für | Desktop-Apps (Chrome, VS Code usw.) | Dev-CLIs (jq, fzf, gh, neovim usw.) | Nur für Legacy-Katalog |
Empfehlung: winget (Desktop) + scoop (CLI). Chocolatey nur für Dinge, die in beiden fehlen.
1. winget — Desktop-Apps zuerst
1.1 Installation prüfen
In Win11 und Win10 21H1+ eingebaut. Prüfen:
winget --version
# v1.7.x oder höherFalls fehlend, „App Installer" über Microsoft Store aktualisieren.
1.2 Gängige Befehle
# Suchen
winget search vscode
# Installieren
winget install --id Microsoft.VisualStudioCode -e
# Alles aktualisieren
winget upgrade --all
# Installierte auflisten
winget list
# Deinstallieren
winget uninstall --id ...1.3 Empfohlene winget-Pakete
# Browser / Editoren
winget install --id Google.Chrome -e
winget install --id Mozilla.Firefox -e
winget install --id Microsoft.VisualStudioCode -e
# Kommunikation
winget install --id Notion.Notion -e
winget install --id SlackTechnologies.Slack -e
winget install --id Discord.Discord -e
# Entwicklung
winget install --id Git.Git -e
winget install --id Docker.DockerDesktop -e
winget install --id Microsoft.PowerShell -e
winget install --id JetBrains.Toolbox -e
# Dienstprogramme
winget install --id 7zip.7zip -e
winget install --id Anysphere.Cursor -e
winget install --id Tailscale.Tailscale -e1.4 export / import
# Pakete der aktuellen Maschine exportieren
winget export -o packages.json
# Auf einer neuen Maschine importieren
winget import -i packages.jsonAlle GUI-Apps in einem Schritt wiederherstellen — enorme Zeitersparnis bei neuen PCs.
2. scoop — CLI-Tools zuerst
2.1 Installation
Keine Admin-PowerShell erforderlich:
# Richtlinie einmalig entsperren (dauerhaft)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# scoop installieren
irm get.scoop.sh | iexInstallationsort: ~\scoop\ (Benutzerordner). Keine Systemänderungen = sauber.
2.2 Erstmalige Einrichtung
# Bessere Suche (über Nicht-Main-Buckets)
scoop install scoop-search
# Zusätzliche Buckets (extras, versions, java usw.)
scoop bucket add extras
scoop bucket add versions
scoop bucket add java
scoop bucket add nerd-fonts2.3 Gängige Befehle
scoop search jq # suchen
scoop install jq # installieren
scoop update # alle Manifeste holen
scoop update * # alle Pakete aktualisieren
scoop list # installierte auflisten
scoop uninstall jq # deinstallieren
scoop cleanup * # alte Versionen entfernen2.4 Empfohlene scoop-Pakete
# CLI-Essentials
scoop install jq # JSON CLI
scoop install fzf # Fuzzy Finder
scoop install ripgrep # rg, grep-Ersatz
scoop install fd # find-Ersatz
scoop install bat # cat mit Syntaxhervorhebung
scoop install eza # ls-Ersatz
scoop install gh # GitHub CLI
scoop install neovim
scoop install delta # git diff-Pager
# Fonts
scoop install JetBrainsMono-NF
scoop install FiraCode-NF
# System-Dienstprogramme
scoop install sudo # WSL-ähnliches sudo für PowerShell
scoop install which
scoop install grep # GNU grep
scoop install sed # GNU sed
scoop install touch2.5 export / import
# Exportieren — JSON
scoop export -c > scoop.json
# Auf einer neuen Maschine importieren
scoop import scoop.jsonDasselbe Muster wie winget. Automatisiert das Setup auf beiden Maschinen.
3. Konflikte vermeiden
Dasselbe Tool über beide zu installieren macht es unklar, welches ausgeführt wird (hängt von der PATH-Reihenfolge ab).
Regel: ein Tool, ein Manager. Duplikate mit Get-Command git -All prüfen.
3.1 Git
- winget Git for Windows = vollständiges SSH/GCM/Help (empfohlen)
- scoop git = schlanker, portabel
- In der Regel winget Git verwenden (GCM-Integration).
3.2 Node / Python
- Beide können sie installieren, aber mise / nvs / pyenv-win wird bevorzugt (Versionsmanager)
- Siehe mac/dev-toolchain — mise funktioniert auch unter Windows.
3.3 VS Code
- Nur winget — integriertes automatisches Update
- scoop vscode ist portabel, ohne automatisches Update
4. Chocolatey — wann?
Gelegentlich fehlt etwas in winget und scoop (spezialisierte Unternehmenssoftware, Treiber). Chocolateys Katalog ist der älteste und umfangreichste.
# Administrator-PowerShell
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))choco install <pkg> -yUAC-Zustimmung jedes Mal. Empfehlung: letzter Ausweg.
5. Praktische Aufteilungstabelle
| Kategorie | Manager | Beispiele |
|---|---|---|
| Browser | winget | Chrome, Firefox, Edge |
| Editoren/IDEs | winget | VS Code, Cursor, JetBrains Toolbox |
| Kommunikations-Apps | winget | Slack, Discord, Notion |
| Git-Clients | winget | Git for Windows, GitHub Desktop |
| Container | winget | Docker Desktop |
| Virtualisierung | winget | VirtualBox, VMware |
| Fonts (Nerd) | scoop | JetBrainsMono-NF, FiraCode-NF |
| CLI-Tools | scoop | jq, fzf, ripgrep, fd, bat, eza, gh, delta |
| Shell-Dienstprogramme | scoop | sudo, which, neovim |
| Patches / Treiber | (manuell oder Chocolatey) | NVIDIA Studio Driver usw. |
6. Automatisierungsskript (optional)
Die ersten 30 Minuten eines neuen Windows-Setups automatisieren. setup.ps1:
# winget — Desktop
$wingetApps = @(
"Google.Chrome",
"Microsoft.VisualStudioCode",
"Anysphere.Cursor",
"Git.Git",
"Microsoft.PowerShell",
"Docker.DockerDesktop",
"JetBrains.Toolbox",
"Tailscale.Tailscale",
"AgileBits.1Password",
"AgileBits.1Password.CLI"
)
foreach ($app in $wingetApps) {
winget install --id $app -e --accept-package-agreements --accept-source-agreements
}
# scoop — CLI
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
irm get.scoop.sh | iex
scoop bucket add extras
scoop bucket add nerd-fonts
$scoopApps = @(
"jq", "fzf", "ripgrep", "fd", "bat", "eza", "gh", "delta",
"neovim", "sudo", "JetBrainsMono-NF"
)
foreach ($app in $scoopApps) {
scoop install $app
}Ausführen:
PowerShell -ExecutionPolicy Bypass -File .\setup.ps1Kombiniert mit dem
setup-windows.ps1der Windows-Ersteinrichtung ist ein frisches Windows in unter einer Stunde bereit.
Überprüfung
winget --version/scoop --version— beide funktionierenwinget list/scoop list— installierte Pakete anzeigengh --version— scoop-installiertes Tool im PATHcode --version— winget-installiertes Tool im PATHwinget upgrade --all/scoop update *— beide erfolgreich
Fehlerbehebung
winget fehlt (Windows 10)
- Microsoft Store → „App Installer" aktualisieren
- Älter als 21H1: OS aktualisieren
scoop-Installation schlägt fehl mit „Skriptausführung deaktiviert"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserwinget „Failed when searching source"
winget source reset --force
winget source updatescoop-Paket nicht im PATH
- Neues Terminal öffnen — scoop aktualisiert PATH nach der Installation, aber bestehende Shells sehen es nicht
- Oder
$env:Path = [System.Environment]::GetEnvironmentVariable("Path", "User")
Dasselbe Tool kollidiert
Get-Command foo -All zur Inspektion der PATH-Reihenfolge. Eine Seite entfernen und neu installieren.
scoop-Font nicht angewendet
- scoop installiert Fonts pro Benutzer. Andere Benutzer/Systemdienste sehen sie nicht
- Für systemweite Fonts winget oder manuelle Installation verwenden
Referenzen
- Windows-Ersteinrichtung — winget-Grundlagen
- PowerShell 7-Setup — pwsh-Umgebung
- WSL2-Tuning — Linux-Paketmanager (apt/dnf)
- winget (offiziell)
- scoop (offiziell)
- Chocolatey
Changelog
- 2026-05-12: Erster Entwurf. winget vs. scoop vs. Chocolatey-Vergleich + Aufteilungstabelle + Automatisierungsskript + sechs Fehlerbehebungsfälle.