# Sistema di gestione dei pacchetti

Con sistema di gestione dei pacchetti, in informatica, si intende una collezione di strumenti software, presenti in un sistema operativo, che automatizzano il processo di installazione, configurazione, aggiornamento e rimozione dei pacchetti software in un computer, venendo dunque utilizzato per installare, aggiornare, verificare e rimuovere software del sistema operativo in maniera semplice ed intuitiva, aiutando spesso a risolvere anche le dipendenze tra i pacchetti.

## Descrizione
### Utilizzo del termine

Il termine è più comunemente utilizzato in relazione a sistemi Unix-like (tipo Unix), particolarmente Linux, dato che questi sistemi poggiano molto più pesantemente su di esso, con migliaia di pacchetti in una sola normale installazione.

### Caratteristiche

In tali sistemi, il software è distribuito in pacchetti, generalmente incapsulati in un singolo file e spesso scaricabili da un repository. I pacchetti spesso includono anche altre importanti informazioni, come il nome completo, versione, e fornitore del software, informazioni sul checksum, ed una lista di altri pacchetti, conosciuti come dipendenze, che sono necessarie al software per funzionare correttamente.
I sistemi di gestione dei pacchetti sono incaricati del compito di organizzare tutti i pacchetti installati in un sistema e mantenere la loro usabilità. Questi sistemi raggiungono questo scopo usando varie combinazioni delle seguenti tecniche:
* Verifica del checksum dei file per evitare differenze tra le versioni locali ed ufficiali di un pacchetto;
* Semplici strumenti per l'installazione, l'aggiornamento, e la rimozione;
* Gestione delle dipendenze per la distribuzione del software funzionante da un pacchetto;
* Controllo degli aggiornamenti per fornire le ultime versioni dei software, che spesso includono riparazioni di difetti ed aggiornamenti di sicurezza;
* Raggruppamento di pacchetti a seconda della funzione per aiutare l'utente ad eliminare la confusione durante l'installazione ed il mantenimento.

### Sistemi di gestione comuni

Alcuni esempi di sistemi di gestione di pacchetti realizzati da sistemi operativi tipo Unix-like:
* Advanced Packaging Tool (conosciuto anche come APT), strumento che al pari di dpkg gestisce i pacchetti in formato .deb, ed inoltre risolve automaticamente le dipendenza, in sede di installazione e rimozione software.
* Apt-rpm una versione modificata di APT
* Dpkg, utilizzato originariamente da Debian GNU/Linux ed ora anche da altri sistemi, per gestire i pacchetti in formato .deb. Ha lo svantaggio però di non risolvere automaticamente le dipendenze.
* Emerge tool del sistema Portage in Gentoo Linux.
* Pacman (acronimo di Package Manager) usato in Arch Linux.
* RPM Package Manager, il gestore di pacchetti RPM. Introdotto da Red Hat, ma oggi utilizzato da molte altre distribuzioni Linux. RPM è il formato base standard, insieme a deb di Debian, per la pacchettizzazione di Linux.
* Urpmi utilizzato da Mandriva Linux.
* Up2date, usato in Red Hat Enterprise Linux. Sebbene progettato per dialogare con la rete Red Hat Network, up2date può anche utilizzare pacchetti con sorgenti yum ed apt con repository RPM.
* YaST, utilizzato su distribuzioni Linux SUSE.
* Yellow dog Updater, Modified (YUM) usato in Fedora
* Synaptic, presente nelle distribuzioni basate su Debian.
* Ubuntu Software Center, presente in Ubuntu.
* Dnf, nuovo gestore di pacchetti su Fedora.
* Winget di Windows 10