Che cos’è un Package Manager (gestore di pacchetti) in Linux? Come funziona?

Package Manager (gestore di pacchetti) in Linux

Uno dei punti principali in cui le distribuzioni GNU/Linux differiscono l’una dall’altra è la gestione dei pacchetti.

Oggi imparerai a conoscere la pacchettizzazione e i gestori di pacchetti in Linux, i Package Manager. Imparerai cosa sono i pacchetti, cosa sono i gestori di pacchetti e come funzionano e che tipo di gestori di pacchetti sono disponibili.

Cos’è un Package Manager o gestore di pacchetti in Linux?

In parole più semplici, un Package Manager o gestore di pacchetti è uno strumento che consente agli utenti di installare, rimuovere, aggiornare, configurare e gestire i pacchetti software su un sistema operativo. Il gestore di pacchetti può essere un’applicazione grafica come un centro software o uno strumento a riga di comando come apt-get o pacman.

Per capire il gestore di pacchetti, devi capire cos’è un pacchetto.

Cos’è un Package o pacchetto?

Un pacchetto è solitamente riferito a un’applicazione, potrebbe essere un’applicazione GUI, uno strumento a riga di comando o una libreria software (richiesta da altri programmi software). Un pacchetto è essenzialmente un file di archivio contenente l’eseguibile binario, il file di configurazione e talvolta le informazioni sulle dipendenze.

In passato ma anche oggi, il software veniva installato dal suo codice sorgente facendo riferimento a un file di istruzioni sempre presente (solitamente chiamato readme ovvero leggimi), dove vedere quali componenti software necessitano e come procedere. Spesso era incluso uno script di configurazione o un makefile. Bisognava compilare il software e gestire tutte le dipendenze perchè alcuni software richiedono l’installazione di altri software per poter funzionare.

Per sbarazzarsi di questa complessità, le distribuzioni GNU/Linux hanno creato il proprio formato di pacchettizzazione per fornire agli utenti finali file binari pronti all’uso (software precompilato) per l’installazione del software insieme ad alcuni metadati (numero di versione, descrizione) e dipendenze varie.

Intorno alla metà degli anni ’90, Debian creò il formato di pacchettizzazione .deb o DEB e Red Hat Linux creò il sistema di pacchettizzazione .rpm o RPM (abbreviazione di Red Hat Package Manager). 

La compilazione del codice sorgente esiste ancora ma ora è facoltativa.

Per interagire o utilizzare i sistemi di pacchettizzazione, è necessario un gestore di pacchetti.

Come funziona il Package Manager o gestore di pacchetti?

Tieni presente che il gestore di pacchetti è un concetto generico e non è esclusivo di Linux.

Troverai spesso un gestore di pacchetti per diversi software o linguaggi di programmazione. Ad esempioc’è il gestore di pacchetti PIP solo per i pacchetti Python. Anche l’editor Atom ha il proprio gestore di pacchetti .

Poiché il focus in questo articolo è su Linux, prenderò le cose dalla prospettiva di Linux. Tuttavia, la maggior parte della spiegazione qui potrebbe essere applicata anche al gestore di pacchetti in generale.

Ho creato questo diagramma (basato su SUSE Wiki) in modo che tu possa capire facilmente come funziona un gestore di pacchetti.

Come funziona un gestore di pacchetti
Come funziona un gestore di pacchetti

Quasi tutte le distribuzioni GNU/Linux hanno repository software che sono fondamentalmente una raccolta di pacchetti software. Potrebbe esserci più di un repository. I repository contengono pacchetti software di diverso tipo.

I repository hanno anche file di metadati che contengono informazioni sui pacchetti come il nome del pacchetto, il numero di versione, la descrizione del pacchetto e il nome del repository ecc. Questo è quello che vedi se usi il comando apt show in Ubuntu/Debian.

Il gestore dei pacchetti del tuo sistema interagisce prima con i metadati. Il gestore di pacchetti crea una copia locale di metadati sul tuo sistema. Quando esegui l’opzione di aggiornamento del gestore pacchetti (ad esempio apt update), viene aggiornata questa copia locale dei metadati facendo riferimento ai metadati dal repository.

Quando esegui il comando di installazione del tuo gestore di pacchetti (ad esempio apt install nome_pacchetto), il gestore di pacchetti fa riferimento a questa copia e se vi trova le informazioni sul pacchetto, utilizza la connessione Internet per connettersi al repository appropriato e scarica il pacchetto prima di installarlo sul sistema.

Un pacchetto può avere dipendenze.

Significa che potrebbe richiedere l’installazione di altri pacchetti. Il gestore di pacchetti spesso si prende cura delle dipendenze e le installa automaticamente insieme al pacchetto che stai installando.

Un Package Manager che gestisce le dipendenze in Linux
Un Package Manager che gestisce le dipendenze in Linux

Oltre alle ovvie attività di installazione e rimozione, è possibile utilizzare il gestore di pacchetti per configurare i pacchetti e gestirli secondo le proprie necessità. Ad esempio, è possibile impedire l’aggiornamento di una versione del pacchetto con i normali aggiornamenti di sistema. Ci sono molte altre cose di cui il tuo gestore di pacchetti potrebbe essere capace.

Diversi tipi di gestori di pacchetti

I gestori di pacchetti differiscono in base al sistema di pacchettizzazione ma lo stesso sistema di pacchettizzazione può avere più di un gestore di pacchetti.

Ad esempio, il formato di pacchetto RPM ha come gestori di pacchetti Yum e DNF. Per DEB, hai apt-get, o il gestore di pacchetti basati sulla riga di comando aptitude.

Synaptic package manager
Synaptic package manager

I gestori di pacchetti non sono necessariamente basati sulla riga di comando. Hai strumenti di gestione dei pacchetti grafici come Synaptic.

Il centro software o Software Center della tua distribuzione GNU/Linux è anche lui un gestore di pacchetti tant’è che dietro le quinte viene eseguito apt-get o DNF.

Conclusione

Non voglio andare più in dettaglio su questo argomento perché posso andare avanti all’infinito.

Per ora ho omesso i nuovi formati di packaging universali (ovvero indipendenti dalla distribuzione GNU/Linux) come Snap, Flatpak e AppImage.

Spero che tu abbia ora una migliore comprensione del sistema di gestione dei pacchetti in Linux. Se sei ancora confuso o se hai qualche domanda su questo argomento, scrivimi un commento. Cercherò di rispondere alle tue domande e, se necessario, aggiornerò questo articolo con nuovi punti.

Fonte: https://itsfoss.com/package-manager/

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.