# Elenco dei gestori di pacchetti software

Questo è un elenco dei gestori di pacchetti software, categorizzati in base al formato del pacchetto (binario, codice sorgente, ibrido) e alla famiglia del sistema operativo sui quali lavorano.

## Pacchetti binari

I seguenti sistemi di gestione dei pacchetti gestiscono le app in formato di pacchetto binario; vale a dire che tutte le app sono compilate e pronte per essere installate e utilizzate.

### Unix-like
#### Linux

* dpkg: Sistema di gestione dei pacchetti di Debian utilizzato anche da Ubuntu. Utilizza il formato .deb ed è stato il primo ad avere uno strumento di risoluzione delle dipendenze
* Entropy: Gestore pacchetti creato per Sabayon Linux.
* Flatpak: Gestore di pacchetti per Linux che consente di installare applicazioni in modo isolato e portabile, offrendo maggiore sicurezza e aggiornamenti frequenti.
* GNU Guix: Gestore di pacchetti per il sistema operativo GNU, noto per la sua enfasi sulla libertà del software e la riproducibilità delle build.
* Homebrew: porting del gestore di pacchetti di MacOS (con lo stesso nome) e precedentemente noto come Linuxbew;
* ipkg: Ispirato a dpkg, è un sistema di gestione dei pacchetti, spesso utilizzato in dispositivi embedded e sistemi operativi minimalisti. Viene utilizzato da webOS;
* netpkg: gestore pacchetti di Zenwalk e compatibile con i tool di gestione dei pacchetti di Slackware;
* Nix package manager: Gestore di pacchetti funzionale che crea un ambiente di sistema immutabile e riproducibile, gestendo pacchetti e dipendenze in modo efficiente e sicuro, eliminando il cosiddetto "inferno delle dipendenze".
* OpenPKG: Permette di installare software su diverse piattaforme Unix
* opkg: Fork di ipkg è un gestore di pacchetti leggero e flessibile, comunemente utilizzato in sistemi embedded e distribuzioni Linux come OpenWrt.
* Pacman: Utilizzato da Arch Linux, Frugalware e DeLi Linux.
* PETget: Utilizzato da Puppy Linux;
* PISI (Packages Installed Successfully as Intended) è il gestore di pacchetti utilizzato da Pisi Linux. Anche la distribuzione Pardus utilizzava Pisi ma, nel 2013, ha migrato verso APT;
* pkgsrc: sistema di gestione dei pacchetti cross-platform che permette l'installazione, la rimozione e la gestione di software su diverse piattaforme Unix-like e Windows, sviluppato originariamente per NetBSD.
* Portage: sistema di gestione dei pacchetti di Gentoo Linux;
* RPM (Red Hat Package Manager): Gestore di pacchetti tra i più utilizzati nelle distribuzioni Linux. Sviluppato originariamente da Red Hat, è diventato uno standard de facto per molte altre distribuzioni come Fedora, CentOS, openSUSE e altre ancora. Molti tool di molte distribuzioni si basano su RPM tra cui up2date di Red Hat, urpmi di Mageia, ZYpp (zypper) di openSUSE's, poldek di PLD Linux, DNF di Fedora, e YUM utilizzato tra gli altri da Red Hat Enterprise Linux e Yellow Dog Linux;
* slackpkg;
* slapt-get: Un gestore pacchetti simile a APT per Slackware;
* Smart Package Manager: Used da CCux Linux;
* Snap: Gestore di pacchetti multi-distribuzione originariamente sviluppato per Ubuntu
* Swaret;
* xbps (X Binary Package System): Utilizzato da Void Linux;
* apk-tools: Utilizzato da Alpine Linux. In origine era composto da una raccolta di script shell. In seguito è stato riscritto in C;

#### Android

* Amazon Appstore: App store alternativo per dispositivi Android;
* Aptoide: negozio online che offre applicazioni mobili compatibili con i sistemi operativi Android
* F-Droid: App store alternativo per Android che contiene solo software libero;
* Samsung Galaxy Store: App store sviluppato da Samsung per dispositivi Android, Tizen, Windows Mobile e Bada.
* GetJar: App store indipendente per telefoni cellulari fondato in Lituania nel 2004;
* Google Play: App store gestito e sviluppato da Google. Serve come app store ufficiale per Android.
* Huawei AppGallery: un app store sviluppato da Huawei per dispositivi Android e dispositivi HarmonyOS.
* SlideME: App store alternativo per Android

#### macOS (OS X)

* Mac App Store: piattaforma ufficiale di distribuzione digitale per le app OS X. Parte di OS X 10.7 e disponibile come aggiornamento per OS X 10.6;
* Fink: port di dpkg, è uno dei primi gestori di pacchetti per macOS;
* Homebrew: gestore di pacchetti a riga di comando, noto per la sua semplicità d'uso ed estensibilità.
* MacPorts: precedentemente noto come DarwinPorts e basato sui port di FreeBSD;
* Joyent: repository di oltre 10.000 pacchetti binari per macOS basati su pkgsrc;

#### BSD

* FreeBSD pkg – gestore di pacchetti per FreeBSD che semplifica l'installazione, l'aggiornamento e la rimozione di software gestendo automaticamente le dipendenze e offrendo un'interfaccia utente intuitiva.;
* OpenBSD ports: sistema di compilazione che permette di costruire pacchetti software personalizzati a partire da sorgenti, su OpenBSD;
* pkgsrc: gestore di pacchetti multipiattaforma, con pacchetti binari per NetBSD, Linux e macOS;
* dpkg: Utilizzato da GNU/kFreeBSD come parte di Debian;
* OpenPKG: sistema di gestione dei pacchetti multipiattaforma basato su rpm;
* PC-BSD: gestore di pacchetti PBI (PC-BSD Installer), che offre un'interfaccia grafica intuitiva per installare, aggiornare e rimuovere software in modo semplice e veloce, senza richiedere l'uso del terminale.

#### Solaris, illumos

* Image Packaging System (IPS, noto anche come "pkg(5)"): utilizzato dalle distribuzioni Solaris, OpenSolaris e Illumos come OpenIndiana e OmniOS;
* pkgsrc: SmartOS, la distribuzione del sistema operativo di Illumos da Joyent utilizza pkgsrc, che può anche essere avviato per l'uso su OpenIndiana;
* OpenCSW: raccolta di pacchetti supportata dalla comunità in formato SysV per SunOS 5.8-5.11 (Solaris 8-11);
* OpenPKG: sistema di gestione dei pacchetti multipiattaforma basato su RPM Package Manager.

#### iOS

* App Store: app store ufficiale per le app iOS;
* Cydia: Frontend per un port di APT. Gestito dalla comunità jailbreak.

### Windows

* Microsoft Store: app store ufficiale per le app UWP (Universal Windows Platform) su Windows NT e Windows 10 Mobile. A partire da Windows 11, distribuisce anche videogiochi e film;
* Windows Package Manager (noto come winget): gestore pacchetti open source per Microsoft Windows;
* Chocolatey: gestore di pacchetti decentralizzato open source per Windows ispirato a Yum e apt-get.
* Cygwin: repository di software libero e open source per Windows NT. Fornisce molti strumenti Linux e uno strumento di installazione con gestore di pacchetti;
* Homebrew: porting del gestore pacchetti MacOS pensata per essere usato in Windows Subsystem for Linux;
* Ninite: gestore di pacchetti proprietario per Windows NT;
* NuGet: gestore di pacchetti open source per Windows, disponibile come plugin per Visual Studio ed estensibile dalla riga di comando;
* Pacman: versione Windows del gestore di pacchetti Arch Linux, adattata tramite MSYS2;
* Scoop Package Manager: gestore di pacchetti open source per Windows
* wpkg: gestore di pacchetti open source che gestisce i pacchetti Debian su Windows. Inizialmente era un clone di dpkg e presentava molte funzionalità simili ad apt-get;
Sostituito:
* Windows Phone Store: ex app store ufficiale per Windows Phone. Ora sostituito da Microsoft Store;

### z/OS

* SMP/E

## Basati su codice sorgente

I gestori di pacchetti basati su codice sorgente sono strumenti che automatizzano il processo di compilazione e installazione del software direttamente dal codice sorgente, anziché utilizzare pacchetti binari precompilati. Questi gestori scaricano il codice sorgente del software, applicano eventuali patch necessarie, configurano le opzioni di compilazione specifiche dell'utente e quindi compilano ed installano il software sul sistema.
Ad esempio, in GoboLinux, lo strumento Compile permette agli utenti di scaricare, compilare e installare software direttamente dal codice sorgente, utilizzando ricette predefinite per gestire le dipendenze e le configurazioni necessarie.
Quando si utilizzano gestori pacchetti basati sul codice sorgente, è l'utente che deve fornire la potenza di calcolo. Questo significa che il processo di compilazione avviene sul computer dell'utente, utilizzando le risorse disponibili, come CPU e RAM. Inoltre, l'utente è legalmente responsabile delle conseguenze della compilazione e dell'utilizzo del software. Deve cioè assicurarsi di rispettare le licenze del software open source e di non violare eventuali diritti di proprietà intellettuale o altre leggi applicabili durante il processo di compilazione e utilizzo del pacchetto compilato.

### BSD

* FreeBSD Ports: Sistema di gestione dei pacchetti basato su codice sorgente, progettato per semplificare l'installazione e la gestione del software su FreeBSD;
* OpenBSD ports: Simile a FreeBSD Ports, ma con un focus maggiore sulla sicurezza e la stabilità.

### Linux

* ABS utilizzato da Arch Linux per automatizzare la creazione di pacchetti binari a partire dal codice sorgente (o anche da altri archivi binari) con download automatico e controllo delle dipendenze;
* apt-build è utilizzato dalle distribuzioni che utilizzano pacchetti deb. Consente la creazione di un repository locale con pacchetti compilati, facilitando la gestione delle installazioni e degli aggiornamenti del sistema;
* Sorcery è il gestore di pacchetti di Sourcemage GNU/Linux. E' basato su script bash e consente di scaricare automaticamente il software dal sito originale, compilarlo e installarlo sul computer locale;

### MacOS (OS X)

* Fink, per OS X, deriva in parte da dpkg/apt e in parte da ports;
* MacPorts, precedentemente chiamato DarwinPorts, ha avuto origine dal progetto OpenDarwin;
* Homebrew, con stretta integrazione con Git;
* pkgsrc può essere utilizzato per installare il software direttamente dal codice sorgente oppure per utilizzare i pacchetti binari forniti da diversi fornitori indipendenti.

### Windows

* vcpkg: Un gestore di pacchetti per Microsoft C++ disponibile per Windows, Linux e MacOS.

## Sistemi ibridi

* Nix (gestore pacchetti): è un gestore di pacchetti per Linux che offre un approccio funzionale e dichiarativo alla gestione del software. È particolarmente noto per la sua capacità di creare ambienti isolati e indipendenti per ogni pacchetto, garantendo che le dipendenze non entrino in conflitto tra loro o con il sistema host Supporta macOS ed è multidistribuzione per quanto riguarda il supporto Linux;
* Portage ed emerge sono utilizzati nella gestione dei pacchetti dalla distribuzione Gentoo Linux e dalle derivate Funtoo Linux e Sabayon Linux. È noto per la sua flessibilità e capacità di compilare software dal sorgente, permettendo agli utenti di ottimizzare le applicazioni per le loro specifiche configurazioni hardware Dispone di un controllo automatico delle dipendenze e consente di installare più versioni di un pacchetto software in diversi "slot" sullo stesso sistema.
* Upkg: sistema di gestione dei pacchetti e di compilazione basato sulle specifiche Mono e XML. Utilizzato da paldo e in precedenza da ExTiX Linux;
* MacPorts (per OS X);
* pkgsrc di NetBSD funziona su diversi sistemi operativi Unix-like, con pacchetti binari regolari per macOS e Linux forniti da diversi fornitori indipendenti;
* Collective Knowledge Framework è un framework di pacchetti e flussi di lavoro multipiattaforma con API JSON che può scaricare pacchetti binari o crearli da fonti per le piattaforme Linux, Windows, MacOS e Android .

## Gestori di pacchetti di gioco

Sistemi di gestione dei pacchetti orientati allo sviluppo e alla distribuzione di videogiochi.
* Steam: Uno dei gestori di giochi più popolari, sviluppato da Valve. Offre una vasta libreria di giochi e funzionalità di socializzazione e gestione dei diritti d'uso. Utilizzato per acquistare, scaricare, installare, aggiornare, disinstallare ed effettuare il backup dei videogiochi. Funziona su Windows , MacOS e Linux;
* Ubisoft Connect (in precedenza nota come Uplay): è un ecosistema multipiattaforma che consente ai giocatori di accedere ai loro giochi, amici e vantaggi in un unico posto, indipendentemente dalla piattaforma utilizzata (PC, console o dispositivi mobili). Utilizzato per acquistare, scaricare, installare e aggiornare videogiochi. Funziona su Windows, Android, iOS, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii U, Windows Phone
* Xbox network: è il servizio online di Microsoft per la console Xbox, che consente ai giocatori di giocare online, chattare, condividere contenuti e accedere a una vasta libreria di giochi e servizi.

## Sistemi software proprietari

* Software Distributor è il gestore dei pacchetti HP-UX.

## Gestori di pacchetti a livello di applicazione

* Alire: gestore di pacchetti e catalogo di librerie per Ada;
* Bitnami: libreria di programmi e pacchetti software per applicazioni web;
* Cargo: è il sistema di compilazione e gestore dei pacchetti Rust . Scarica, compila e distribuisce pacchetti;
* CocoaPods: gestore delle dipendenze per i progetti Cocoa Swift e Objective-C;
* Composer: gestore delle dipendenze per PHP;
* Conda: gestore di pacchetti per Python e R;
* CPAN: una libreria di programmazione e gestore di pacchetti per Perl;
* CRAN: una libreria di programmazione e gestore di pacchetti per R;
* CTAN: un gestore di pacchetti per TeX;
* Docker: Docker, un sistema per la gestione dei container, funge da gestore di pacchetti per la distribuzione di applicazioni containerizzate;
* Enthought Canopy: gestore di pacchetti per l'ambiente di distribuzione e analisi di elaborazione scientifica e analitica di Python;
* Gradle: sistema di compilazione e gestore di pacchetti per Groovy e altri linguaggi JVM, nonché per C++;
* Apache Ivy: gestore di dipendenze progettato per essere utilizzato con Apache Ant, un'infrastruttura di build per Java. Ivy è specializzato nella gestione delle dipendenze dei progetti, consentendo di risolvere e scaricare automaticamente le risorse necessarie per compilare un progetto
* Leiningen: uno strumento di automazione dei progetti per Clojure;
* LuaRocks: una libreria di programmazione e gestore di pacchetti per Lua;
* Maven: un gestore di pacchetti e strumento di compilazione per Java;
* npm: una libreria di programmazione e gestore di pacchetti per Node.js e JavaScript;
* NuGet: il gestore dei pacchetti per la piattaforma di sviluppo Microsoft, inclusi .NET Framework e Xamarin;
* opam: un gestore di pacchetti basato sul codice sorgente per OCaml;
* PAR::Repository e Perl package manager: gestori di pacchetti binari per Perl;
* PEAR: una libreria di programmazione per PHP;
* pip: un gestore di pacchetti per Python e la libreria di programmazione PyPI;
* RubyGems: un gestore di pacchetti e repository per Ruby;
* sbt: uno strumento di compilazione per Scala, utilizza Ivy per la gestione delle dipendenze;
* yarn: un'alternativa a npm per Node.js e JavaScript;