winget, cos'è e come funziona il gestore pacchetti Microsoft per Windows 11 e 10
5 ottobre 2021
1633433718000
Panaromica su winget, il package manager open source sviluppato da Microsoft, e al suo utilizzo.
Un sistema di gestione paccheti (package manager) é un software che automatizza il processo d’installazione, rimozione, aggiornamento e configurazioni dei vari programmi che andremo ad installare nel sistema operativo.
Il software è distribuito in pacchetti, incapsulati in un singolo file e spesso scaricabili da una repository. I pacchetti includono importanti informazioni: nome, versione, e fornitore del software, informazioni sul checksum e le dipendenze, ulteriori pacchetti necessari al software per funzionare correttamente.
Obiettivi di un package manager sono:
- Verifica del checksum al fine di legittimare l’integritá e autenticitá del pacchetto;
- Fornire semplici strumenti per installazione, aggiornamento, e rimozione;
- Gestire le dipendenze al fine di garantire il corretto funzionamento del pacchetto;
- Controllo degli aggiornamenti per fornire le ultime versioni dei software;
# winget
winget é un gestore pacchetti, gratuito ed open source, sviluppato da Microsoft per il suo sistema operativo: Windows.
winget consiste di un’interfaccia a linea di comando (CLI) predisposta per la gestione dei pacchetti su Windows. Obiettivo annunciato di winget é limitare l’installazione di software malevoli da parte dell’utente mettendo a disposizione una repository controllata e una verifica hash con algortimo SHA256.
winget é perfettamente intregrato nelle distribuzioni Windows, per iniziare ad utilizzarlo basterá aprire il nostro terminale.
# winget search
L’utilizzo di winget è semplice e intuitivo, entrati nel nostro terminale non ci resta che decidere quale software installare e verificare la sua disponibilitá nella repository (in continuo aggiornamento):
winget search nomepacchetto
Possiamo vedere come il software da noi desiderato, nell’esempio VLC, é presente nella repository. Non ci resta che proseguire con l’installazione.
# winget install
Installiamo il pacchetto attraverso il seguente codice:
winget install nomepacchetto
Eseguito il comando ci potremo trovare di fronte a due diversi scenari:
- Installazione andata a buon fine, in pochi secondi troveremo il software nel menú start:
- L’installazione restituisce un alert:
Multipli pacchetti hanno trovato criteri di input corrispondenti. Ridefinisci l'input.
Se ci ritroviamo in un caso simile vorrá dire che l’installazione non é andata a buon fine in quanto sono stati ritrovati piú pacchetti corrispondeti al nome da noi digitato, dovremo procedere quindi a disambiguazione.
La disambiguazione consiste nello scegliere un solo pacchetto da installare tra quelli disponibili.
Per prima cosa accertiamoci che l’origine (terza colonna) del pacchetto sia winget. Scelto il pacchetto da installare digitiamo il comando seguente aggiungendo un ulteriore argomento:
winget install --id=idpacchetto
Come visibile nello screen esempio possiamo trovare l’id del pacchetto in corrispondenza della colonna id (sia in cerca che nell’alert di disambiguazione).
Eseguito il comando il software sará installato e pronto per essere avviato.
NOTA: É possibile eseguire installazioni con winget sia aprendo il terminale con i permessi d’amministratore che non. Nel caso aprissimo il terminale senza i permessi d’amministratore essi ci verranno chiesti, attraverso Windows Smart Screen, ad ogni installazione. Al contrario i permessi verranno implicitamente concessi.
# winget upgrade
winget ci dá la possibilitá di gestire come preferiamo i nostri aggiornamenti, possiamo aggiornare un singolo pacchetto:
winget upgrade nomepacchetto
oppure tutti i pacchetti:
winget upgrade --all
# winget uninstall
Per disinstallare un paccheto il comando da eseguire é:
winget uninstall nomepacchetto
# winget export\import
Per favorire la migrazione verso altri dispositivi, o l’installazione a seguito di una installazione pulita, winget ci mette a disposizione una funzione d’import\export.
# export
Usfruire di questa funzionalitá é semplicissimo, in primis dobbiamo esportare i pacchetti installati sul nostro pc attraverso il comando export:
winget export -o \percorsodovesalvare\filexport.json
NOTA: con il comando export winget tenta di esportare ogni pacchetto del nostro PC gestibile da winget stesso, anche quelli non installati tramite winget. Da notare come l’output restituisca solo i pacchetti non esportati.
Ricordiamo di fare un backup del file .json esportato prima di formattare il PC!
# import
L’import dei nostri pacchetti é altrettanto semplice.
Trasferito il file .json sulla macchina destinazione non resta altro che digitare un semplice comando:
winget import -i \percorsodacuiimportare\fileimport.json
Ricevuto l’output di conferma l’installazione é andata a buon fine e con un semplice comando avremo installato la moltitudine di pacchetti presenti nelle precedenti installazioni,
# Lista comandi
comando | descrizione |
---|---|
export | Esporta un elenco dei pacchetti installati. |
features | Mostra lo stato delle funzionalità sperimentali. |
hash | Genera l’hash SHA256 per il programma di installazione. |
import | Installa tutti i pacchetti in un file. |
install | Installa l’applicazione specificata. |
list | Visualizzare i pacchetti installati. |
search | Cerca un’applicazione. |
settings | Aprire le impostazioni. |
show | Visualizza i dettagli per l’applicazione specificata. |
source | Aggiunge, rimuove e aggiorna i repository di Gestione pacchetti Windows accessibili tramite lo strumento winget. |
validate | Convalida un file manifesto da inviare al repository di Gestione pacchetti Windows. |
uninstall | Disinstalla il pacchetto specificato. |
upgrade | Aggiorna il pacchetto specificato. |
-v, --version | Restituisce la versione corrente di winget. |
–info | Fornisce tutte le informazioni dettagliate su winget, inclusi i collegamenti alla licenza, all’informativa sulla privacy e ai criteri di gruppo configurati. |
-?, --help | Visualizza la Guida aggiuntiva per winget. |
# Analisi finale
Winget é un ottimo strumento per gestire i pacchetti software sul nostro PC, ben supportato e con una repository in continuo aggiornamento.
Finalmente lo strumento chiesto a gran voce dalla communitá é arrivato sui nostri dispositivi cosí da garantirci una migliore user experience e maggiore sicurezza.
Da notare infine che il package manager di casa Microsoft puó gestire anche software installato esternamente da winget, se presente nelle sue repository.