winget, cos'è e come funziona il gestore pacchetti Microsoft per Windows 11 e 10

5 ottobre 2021

Panaromica su winget, il package manager open source sviluppato da Microsoft, e al suo utilizzo.

Ads

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.

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

1615b32820dcd4.jpegPossiamo 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:

  1. Installazione andata a buon fine, in pochi secondi troveremo il software nel menú start:
  2. L’installazione restituisce un alert: Multipli pacchetti hanno trovato criteri di input corrispondenti. Ridefinisci l'input.

1615b32b0c1ff4.jpeg

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.

1615b33a1eb76e.jpeg

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

1615b394860236.jpeg

oppure tutti i pacchetti:

winget upgrade --all

# winget uninstall

Per disinstallare un paccheto il comando da eseguire é:

winget uninstall nomepacchetto

1615b3f1ec84b6.jpeg

# 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

1615c32ab44976.jpeg

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

1615c34069d890.jpeg

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.