Chocolatey: gestione pacchetti da riga di comando come su Linux

Published on 14/05/2026 Windows

Se hai mai usato apt, brew o pacman sai il valore di un package manager. Su Windows la scelta pragmatica e' Chocolatey: ~10.000 pacchetti mantenuti, installazione silent, upgrade batch.

1. Installazione (una volta sola)

PowerShell in modalita' amministratore:

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'))

Chiudi e riapri il terminale.

2. Comandi essenziali

choco search vscode                  # cerca
choco install vscode -y              # installa (silent con -y)
choco install googlechrome firefox git nodejs -y   # batch
choco upgrade all -y                 # aggiorna TUTTO in un colpo
choco list --local-only              # cosa ho installato
choco uninstall vscode -y            # disinstalla

3. La mia checklist post-installazione Windows

choco install -y `
    vscode `
    git `
    7zip `
    firefox `
    googlechrome `
    vlc `
    notepadplusplus `
    powertoys `
    windows-terminal `
    pwsh `
    nodejs-lts `
    python3 `
    winrar `
    treesize-free `
    everything `
    obs-studio

~15 minuti e la macchina e' produttiva.

4. Confronto con winget

  • winget (Microsoft ufficiale): meno pacchetti (~5000), ma preinstallato su Win11, sicuro perche' firmato Microsoft
  • chocolatey: piu' pacchetti, community ampia, gestione upgrade sana
  • Usali insieme senza problemi. Winget per Microsoft stuff, Choco per il resto

5. Automazione con file di provisioning

Se reinstalli spesso Windows, usa un file packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="vscode" />
  <package id="git" />
  <package id="firefox" />
  <package id="7zip" />
  <package id="python3" version="3.12.7" />
</packages>
choco install packages.config -y

6. Aggiornamento notturno automatico

Crea un Task Scheduler che gira choco upgrade all -y ogni notte:

$action = New-ScheduledTaskAction -Execute "powershell.exe" `
    -Argument "-NoProfile -Command choco upgrade all -y"
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -TaskName "ChocoNightlyUpgrade" `
    -Action $action -Trigger $trigger -RunLevel Highest -User "SYSTEM"

7. Alternativa GUI: Chocolatey GUI

choco install chocolateygui -y

Apre una finestra tipo Store con search, install, upgrade con click. Perfetto per chi non ama la console.

8. Cosa fa Choco dietro le quinte

  • Scarica il pacchetto .nupkg (un ZIP con script PowerShell + installer originale)
  • Esegue lo script che invoca l'.exe/.msi ufficiale in modalita' silent
  • Traccia in C:ProgramDatachocolateylib cosa e' installato
  • Al upgrade rifa lo stesso ciclo con la nuova versione
Sicurezza: i pacchetti community non sono ispezionati uno per uno. Per software critici (banking, VPN aziendale) preferisci sempre l'installer ufficiale scaricato dal sito del vendor. Per il resto (browser, editor, tool dev) Choco e' affidabile.