devAlice
← Windows

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

MerkmalwingetscoopChocolatey
Gepflegt vonMicrosoft offiziellCommunityCommunity
InstallationsortSystem (Admin)~/scoop/ (Benutzer, kein Admin)System (Admin)
StärkeDesktop-GUI-Apps, offizieller KatalogCLI-Tools, portabel, isoliertÄltester Katalog
SchwächeCLI-Tool-Katalog schwachWeniger Desktop-GUI-AppsUAC-Abfrage jedes Mal
RechteAdmin meist erforderlichBenutzerebeneAdmin erforderlich
Empfohlen fürDesktop-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öher

Falls 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 -e

1.4 export / import

# Pakete der aktuellen Maschine exportieren
winget export -o packages.json
 
# Auf einer neuen Maschine importieren
winget import -i packages.json

Alle 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 | iex

Installationsort: ~\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-fonts

2.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 entfernen

2.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 touch

2.5 export / import

# Exportieren — JSON
scoop export -c > scoop.json
 
# Auf einer neuen Maschine importieren
scoop import scoop.json

Dasselbe 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> -y

UAC-Zustimmung jedes Mal. Empfehlung: letzter Ausweg.

5. Praktische Aufteilungstabelle

KategorieManagerBeispiele
BrowserwingetChrome, Firefox, Edge
Editoren/IDEswingetVS Code, Cursor, JetBrains Toolbox
Kommunikations-AppswingetSlack, Discord, Notion
Git-ClientswingetGit for Windows, GitHub Desktop
ContainerwingetDocker Desktop
VirtualisierungwingetVirtualBox, VMware
Fonts (Nerd)scoopJetBrainsMono-NF, FiraCode-NF
CLI-Toolsscoopjq, fzf, ripgrep, fd, bat, eza, gh, delta
Shell-Dienstprogrammescoopsudo, 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.ps1

Kombiniert mit dem setup-windows.ps1 der Windows-Ersteinrichtung ist ein frisches Windows in unter einer Stunde bereit.

Überprüfung

  1. winget --version / scoop --version — beide funktionieren
  2. winget list / scoop list — installierte Pakete anzeigen
  3. gh --version — scoop-installiertes Tool im PATH
  4. code --version — winget-installiertes Tool im PATH
  5. winget 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 CurrentUser

winget „Failed when searching source"

winget source reset --force
winget source update

scoop-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

Changelog

  • 2026-05-12: Erster Entwurf. winget vs. scoop vs. Chocolatey-Vergleich + Aufteilungstabelle + Automatisierungsskript + sechs Fehlerbehebungsfälle.