{"id":3631,"date":"2026-07-16T13:14:30","date_gmt":"2026-07-16T11:14:30","guid":{"rendered":"https:\/\/rootmail.it\/courses\/lpic-1-exam-101-010-160-corso-completo-in-italiano\/lessons\/102-4-gestione-dei-pacchetti-debian\/"},"modified":"2026-07-20T21:56:01","modified_gmt":"2026-07-20T19:56:01","slug":"102-4-gestione-dei-pacchetti-debian","status":"publish","type":"lesson","link":"https:\/\/rootmail.it\/en\/courses\/lpic-1-exam-1-101-500-corso-completo-in-italiano\/lessons\/102-4-gestione-dei-pacchetti-debian\/","title":{"rendered":"102.4 Gestione dei pacchetti Debian"},"content":{"rendered":"<h2>102.4 Gestione dei pacchetti Debian<\/h2>\n<p>Uno dei principali punti di forza delle distribuzioni Linux basate su Debian \u00e8 il sistema di gestione dei pacchetti, che consente di installare, aggiornare, rimuovere e verificare il software in modo semplice, sicuro ed efficiente. Anzich\u00e9 scaricare e installare manualmente i programmi, Linux utilizza pacchetti software contenenti applicazioni, librerie, file di configurazione e informazioni sulle dipendenze.<\/p>\n<p>Per gestire questi pacchetti, le distribuzioni Debian e derivate (come Ubuntu e Linux Mint) mettono a disposizione due strumenti fondamentali: <strong>dpkg<\/strong>, che opera direttamente sui pacchetti <code>.deb<\/code>, e <strong>APT (Advanced Package Tool)<\/strong>, che automatizza la gestione delle dipendenze e comunica con i repository software per scaricare e aggiornare i programmi.<\/p>\n<p>In questa lezione scoprirai come funziona il sistema di gestione dei pacchetti Debian, imparerai a utilizzare i principali comandi di <strong>dpkg<\/strong> e <strong>APT<\/strong> e comprenderai come installare, aggiornare e rimuovere software mantenendo il sistema stabile e sicuro.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> La gestione dei pacchetti Debian rappresenta uno degli argomenti pi\u00f9 importanti dell&#8217;esame LPIC-1 Exam 101. \u00c8 fondamentale conoscere la differenza tra <strong>dpkg<\/strong> e <strong>APT<\/strong>, il funzionamento dei repository software, la gestione delle dipendenze e i principali comandi utilizzati per amministrare i pacchetti.<\/p><\/blockquote>\n<hr \/>\n<h2>\ud83c\udfaf Obiettivi della lezione<\/h2>\n<p>Al termine di questa lezione sarai in grado di:<\/p>\n<ul>\n<li>comprendere il funzionamento del sistema di gestione dei pacchetti Debian;<\/li>\n<li>distinguere il ruolo di <strong>dpkg<\/strong> e <strong>APT<\/strong>;<\/li>\n<li>installare, aggiornare e rimuovere pacchetti software;<\/li>\n<li>ricercare informazioni sui pacchetti installati e disponibili;<\/li>\n<li>comprendere il funzionamento dei repository software;<\/li>\n<li>gestire le dipendenze delle applicazioni e risolvere i problemi pi\u00f9 comuni relativi ai pacchetti.<\/li>\n<\/ul>\n<hr \/>\n<h2>Argomenti trattati<\/h2>\n<ul>\n<li>Il sistema di pacchetti Debian.<\/li>\n<li>Installazione, aggiornamento e rimozione dei pacchetti.<\/li>\n<li>Utilizzo di <code>dpkg<\/code>.<\/li>\n<li>Utilizzo di <code>APT<\/code>.<\/li>\n<li>Repository software e file <code>sources.list<\/code>.<\/li>\n<li>Gestione delle dipendenze e diagnostica dei pacchetti.<\/li>\n<\/ul>\n<h2>102.4.1 Comprendere la gestione dei pacchetti Debian<\/h2>\n<p>Le distribuzioni Linux basate su <strong>Debian<\/strong> sono tra le pi\u00f9 diffuse al mondo e costituiscono la base di numerosi sistemi operativi, tra cui <strong>Ubuntu<\/strong>, <strong>Linux Mint<\/strong>, <strong>Kali Linux<\/strong> e molte altre distribuzioni. Uno dei principali motivi del loro successo \u00e8 il potente sistema di gestione dei pacchetti, che consente di installare, aggiornare e rimuovere software in modo semplice, affidabile e sicuro.<\/p>\n<p>Ogni programma viene distribuito sotto forma di un <strong>pacchetto Debian<\/strong>, contenente non solo i file dell&#8217;applicazione, ma anche informazioni sulle dipendenze, la versione del software, i file di configurazione e altri metadati necessari alla sua corretta installazione.<\/p>\n<p>Grazie agli strumenti <strong>dpkg<\/strong> e <strong>APT (Advanced Package Tool)<\/strong>, l&#8217;amministratore pu\u00f2 gestire migliaia di pacchetti software senza dover compilare manualmente i programmi o preoccuparsi delle librerie necessarie al loro funzionamento.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante distinguere il ruolo di <strong>dpkg<\/strong>, che gestisce direttamente i pacchetti <code>.deb<\/code>, da <strong>APT<\/strong>, che automatizza la gestione delle dipendenze e comunica con i repository software.<\/p><\/blockquote>\n<hr \/>\n<h3>Cos&#8217;\u00e8 un pacchetto Debian?<\/h3>\n<p>Un <strong>pacchetto Debian<\/strong> \u00e8 un archivio con estensione:<\/p>\n<pre><code>.deb\r\n<\/code><\/pre>\n<p>che contiene tutto il necessario per installare un&#8217;applicazione sul sistema.<\/p>\n<p>Generalmente un pacchetto include:<\/p>\n<ul>\n<li>i file eseguibili del programma;<\/li>\n<li>le librerie necessarie al suo funzionamento;<\/li>\n<li>i file di configurazione;<\/li>\n<li>la documentazione;<\/li>\n<li>informazioni sulla versione e sul manutentore;<\/li>\n<li>l&#8217;elenco delle dipendenze richieste.<\/li>\n<\/ul>\n<p>Questa struttura consente di distribuire software in modo standardizzato e facilmente gestibile.<\/p>\n<hr \/>\n<h3>Perch\u00e9 utilizzare un sistema di gestione dei pacchetti?<\/h3>\n<p>Senza un package manager, ogni programma dovrebbe essere installato manualmente insieme a tutte le librerie necessarie.<\/p>\n<p>Il sistema di gestione dei pacchetti automatizza queste operazioni, offrendo numerosi vantaggi:<\/p>\n<ul>\n<li>installazione semplice e veloce del software;<\/li>\n<li>aggiornamenti centralizzati dell&#8217;intero sistema;<\/li>\n<li>gestione automatica delle dipendenze;<\/li>\n<li>rimozione pulita delle applicazioni;<\/li>\n<li>maggiore sicurezza grazie ai repository ufficiali.<\/li>\n<\/ul>\n<p>Questo approccio riduce il rischio di errori e rende l&#8217;amministrazione del sistema molto pi\u00f9 efficiente.<\/p>\n<hr \/>\n<h3>Gli strumenti principali<\/h3>\n<p>Nelle distribuzioni Debian vengono utilizzati principalmente due strumenti.<\/p>\n<table>\n<thead>\n<tr>\n<th>Strumento<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dpkg<\/code><\/td>\n<td>Installa, rimuove e gestisce direttamente i pacchetti <code>.deb<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>APT<\/code><\/td>\n<td>Scarica i pacchetti dai repository e gestisce automaticamente le dipendenze.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Durante questa lezione approfondirai entrambi gli strumenti e imparerai quando utilizzare l&#8217;uno o l&#8217;altro.<\/p>\n<hr \/>\n<h3>Dove vengono installati i pacchetti?<\/h3>\n<p>Una volta installato, il contenuto di un pacchetto viene distribuito nelle varie directory del filesystem secondo il <strong>Filesystem Hierarchy Standard (FHS)<\/strong>.<\/p>\n<p>Ad esempio:<\/p>\n<ul>\n<li>gli eseguibili vengono normalmente installati in <code>\/usr\/bin<\/code> o <code>\/usr\/sbin<\/code>;<\/li>\n<li>le librerie in <code>\/usr\/lib<\/code>;<\/li>\n<li>i file di configurazione in <code>\/etc<\/code>;<\/li>\n<li>la documentazione in <code>\/usr\/share\/doc<\/code>.<\/li>\n<\/ul>\n<p>Il package manager tiene traccia di tutti questi file, facilitando gli aggiornamenti e l&#8217;eventuale rimozione del software.<\/p>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Installa sempre il software utilizzando i repository ufficiali della tua distribuzione quando possibile. In questo modo riceverai automaticamente gli aggiornamenti di sicurezza e le correzioni dei bug, mantenendo il sistema stabile e coerente.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>Le distribuzioni Debian utilizzano pacchetti con estensione <code>.deb<\/code>.<\/li>\n<li>Un pacchetto contiene programma, librerie, file di configurazione e metadati.<\/li>\n<li><code>dpkg<\/code> gestisce direttamente i pacchetti locali.<\/li>\n<li><code>APT<\/code> comunica con i repository e gestisce automaticamente le dipendenze.<\/li>\n<li>Il sistema di gestione dei pacchetti semplifica installazione, aggiornamento e rimozione del software.<\/li>\n<\/ul>\n<h2>102.4.2 I pacchetti binari Debian: concetti fondamentali<\/h2>\n<p>Nelle distribuzioni Debian il software viene distribuito principalmente sotto forma di <strong>pacchetti binari<\/strong>. Si tratta di programmi gi\u00e0 compilati e pronti per essere installati, senza che l&#8217;utente debba compilare il codice sorgente.<\/p>\n<p>Ogni pacchetto Debian \u00e8 identificato dall&#8217;estensione:<\/p>\n<pre><code>.deb\r\n<\/code><\/pre>\n<p>Oltre ai file dell&#8217;applicazione, un pacchetto contiene numerose informazioni utilizzate dal sistema di gestione dei pacchetti per installare e amministrare correttamente il software.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante ricordare che i pacchetti Debian hanno estensione <code>.deb<\/code> e vengono gestiti direttamente dal comando <code>dpkg<\/code>.<\/p><\/blockquote>\n<hr \/>\n<h3>Cosa contiene un pacchetto .deb?<\/h3>\n<p>Un pacchetto Debian non contiene solamente il programma da installare.<\/p>\n<p>Generalmente include:<\/p>\n<ul>\n<li>i file eseguibili;<\/li>\n<li>le librerie necessarie al funzionamento dell&#8217;applicazione;<\/li>\n<li>i file di configurazione;<\/li>\n<li>la documentazione;<\/li>\n<li>script eseguiti durante l&#8217;installazione o la rimozione;<\/li>\n<li>informazioni sulle dipendenze e sulla versione del software.<\/li>\n<\/ul>\n<p>Queste informazioni permettono al sistema di installare e amministrare il software in modo sicuro e coerente.<\/p>\n<hr \/>\n<h3>Il comando dpkg<\/h3>\n<p>Il comando <code>dpkg<\/code> \u00e8 il gestore dei pacchetti a basso livello utilizzato dalle distribuzioni Debian.<\/p>\n<p>A differenza di APT, <code>dpkg<\/code> lavora direttamente sui file <code>.deb<\/code> presenti sul sistema e non scarica automaticamente i pacchetti dai repository.<\/p>\n<p>Le operazioni principali sono:<\/p>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dpkg -i pacchetto.deb<\/code><\/td>\n<td>Installa un pacchetto Debian.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -r pacchetto<\/code><\/td>\n<td>Rimuove un pacchetto mantenendo i file di configurazione.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -P pacchetto<\/code><\/td>\n<td>Rimuove completamente il pacchetto, inclusi i file di configurazione.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Installare un pacchetto<\/h3>\n<p>Per installare un pacchetto locale si utilizza il comando:<\/p>\n<pre><code>sudo dpkg -i package_name.deb\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>sudo dpkg -i google-chrome-stable.deb\r\n<\/code><\/pre>\n<p>Il pacchetto viene installato direttamente dal file presente sul disco.<\/p>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> <code>dpkg<\/code> installa il pacchetto ma non scarica automaticamente le eventuali dipendenze mancanti.<\/p><\/blockquote>\n<hr \/>\n<h3>Rimuovere un pacchetto<\/h3>\n<p>Per rimuovere un programma mantenendo i file di configurazione \u00e8 possibile utilizzare:<\/p>\n<pre><code>sudo dpkg -r package_name\r\n<\/code><\/pre>\n<p>Se invece si desidera eliminare completamente il software e tutte le relative configurazioni, si utilizza:<\/p>\n<pre><code>sudo dpkg -P package_name\r\n<\/code><\/pre>\n<p>Questa operazione viene comunemente definita <strong>purge<\/strong>.<\/p>\n<hr \/>\n<h3>Aggiornare un pacchetto<\/h3>\n<p>Sebbene sia possibile reinstallare manualmente una versione pi\u00f9 recente di un pacchetto con <code>dpkg<\/code>, nelle distribuzioni Debian gli aggiornamenti vengono normalmente gestiti tramite <strong>APT<\/strong>.<\/p>\n<p>APT verifica automaticamente:<\/p>\n<ul>\n<li>la disponibilit\u00e0 di nuove versioni;<\/li>\n<li>le dipendenze richieste;<\/li>\n<li>gli eventuali conflitti tra pacchetti.<\/li>\n<\/ul>\n<p>Per questo motivo gli aggiornamenti del sistema vengono generalmente eseguiti con strumenti come <code>apt<\/code> o <code>apt-get<\/code>, che approfondirai nelle prossime sezioni.<\/p>\n<hr \/>\n<h3>dpkg e APT: qual \u00e8 la differenza?<\/h3>\n<p>\u00c8 importante distinguere i due strumenti.<\/p>\n<table>\n<thead>\n<tr>\n<th>dpkg<\/th>\n<th>APT<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Gestisce direttamente i file <code>.deb<\/code>.<\/td>\n<td>Scarica i pacchetti dai repository.<\/td>\n<\/tr>\n<tr>\n<td>Non gestisce automaticamente le dipendenze.<\/td>\n<td>Risoluzione automatica delle dipendenze.<\/td>\n<\/tr>\n<tr>\n<td>Lavora localmente.<\/td>\n<td>Comunica con i repository software.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Nella pratica quotidiana gli amministratori utilizzano prevalentemente APT, mentre <code>dpkg<\/code> viene impiegato quando \u00e8 necessario installare o analizzare un pacchetto locale.<\/p>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Quando possibile utilizza APT per installare e aggiornare il software, poich\u00e9 gestisce automaticamente le dipendenze e riduce il rischio di errori. Ricorri a <code>dpkg<\/code> principalmente quando devi installare un pacchetto <code>.deb<\/code> scaricato manualmente o eseguire operazioni specifiche sui pacchetti locali.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>I pacchetti Debian hanno estensione <code>.deb<\/code>.<\/li>\n<li><code>dpkg -i<\/code> installa un pacchetto locale.<\/li>\n<li><code>dpkg -r<\/code> rimuove un pacchetto mantenendo i file di configurazione.<\/li>\n<li><code>dpkg -P<\/code> elimina completamente il pacchetto e le relative configurazioni.<\/li>\n<li>Gli aggiornamenti vengono normalmente gestiti tramite APT.<\/li>\n<li><code>dpkg<\/code> non risolve automaticamente le dipendenze.<\/li>\n<\/ul>\n<h2>102.4.3 Individuare il pacchetto che contiene un file o una libreria<\/h2>\n<p>Durante l&#8217;amministrazione di un sistema Linux pu\u00f2 capitare di dover individuare il pacchetto al quale appartiene un determinato file o una libreria. Questa operazione \u00e8 particolarmente utile quando si desidera sapere quale pacchetto installare per ottenere un file specifico oppure quando si sta risolvendo un problema legato a dipendenze mancanti.<\/p>\n<p>Le distribuzioni Debian mettono a disposizione due strumenti differenti per svolgere questa attivit\u00e0:<\/p>\n<ul>\n<li><strong>dpkg-query<\/strong>, che ricerca tra i pacchetti gi\u00e0 installati nel sistema.<\/li>\n<li><strong>apt-file<\/strong>, che permette di cercare anche nei pacchetti non ancora installati.<\/li>\n<\/ul>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante ricordare che <code>dpkg-query<\/code> ricerca solamente nei pacchetti installati, mentre <code>apt-file<\/code> consente di cercare file presenti nei repository, anche se il relativo pacchetto non \u00e8 ancora installato.<\/p><\/blockquote>\n<hr \/>\n<h3>Utilizzare dpkg-query<\/h3>\n<p>Se il file appartiene a un pacchetto gi\u00e0 installato, \u00e8 possibile utilizzare il comando:<\/p>\n<pre><code>dpkg-query -S \/percorso\/del\/file\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>dpkg-query -S \/bin\/ls\r\n<\/code><\/pre>\n<p>L&#8217;output potrebbe essere simile al seguente:<\/p>\n<pre><code>coreutils: \/bin\/ls\r\n<\/code><\/pre>\n<p>In questo caso il comando indica che il file <code>\/bin\/ls<\/code> appartiene al pacchetto <strong>coreutils<\/strong>.<\/p>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> <code>dpkg-query -S<\/code> funziona soltanto se il pacchetto \u00e8 gi\u00e0 installato sul sistema.<\/p><\/blockquote>\n<hr \/>\n<h3>Utilizzare apt-file<\/h3>\n<p>Se il pacchetto non \u00e8 installato, <code>dpkg-query<\/code> non sar\u00e0 in grado di trovare il file.<\/p>\n<p>In questo caso \u00e8 possibile utilizzare:<\/p>\n<pre><code>apt-file search nome_file\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>apt-file search libssl.so\r\n<\/code><\/pre>\n<p>Il comando interroga il database dei repository e restituisce il nome del pacchetto che contiene il file richiesto.<\/p>\n<p>Questo strumento \u00e8 particolarmente utile quando:<\/p>\n<ul>\n<li>manca una libreria condivisa;<\/li>\n<li>si desidera installare un programma che contiene un determinato file;<\/li>\n<li>si sta risolvendo un problema di dipendenze.<\/li>\n<\/ul>\n<hr \/>\n<h3>Aggiornare il database di apt-file<\/h3>\n<p>Prima di utilizzare <code>apt-file<\/code> per la prima volta \u00e8 necessario aggiornare il database locale.<\/p>\n<p>Il comando \u00e8:<\/p>\n<pre><code>sudo apt-file update\r\n<\/code><\/pre>\n<p>Questa operazione scarica l&#8217;elenco dei file contenuti nei pacchetti disponibili nei repository configurati.<\/p>\n<p>Successivamente sar\u00e0 possibile eseguire le ricerche con:<\/p>\n<pre><code>apt-file search nome_file\r\n<\/code><\/pre>\n<hr \/>\n<h3>Quando utilizzare ciascun comando<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Quando utilizzarlo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dpkg-query -S<\/code><\/td>\n<td>Per individuare il pacchetto che possiede un file gi\u00e0 presente sul sistema.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-file search<\/code><\/td>\n<td>Per cercare un file all&#8217;interno dei pacchetti disponibili nei repository, anche se non sono installati.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Esempio pratico<\/h3>\n<p>Supponiamo che un&#8217;applicazione restituisca un errore perch\u00e9 manca la libreria:<\/p>\n<pre><code>libexample.so\r\n<\/code><\/pre>\n<p>L&#8217;amministratore pu\u00f2 utilizzare:<\/p>\n<pre><code>apt-file search libexample.so\r\n<\/code><\/pre>\n<p>per individuare il pacchetto che contiene la libreria e installarlo successivamente tramite APT.<\/p>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Utilizza <code>dpkg-query<\/code> quando il file \u00e8 gi\u00e0 presente sul sistema e desideri sapere da quale pacchetto proviene. Se invece il file non esiste oppure devi individuare quale pacchetto installare, utilizza <code>apt-file<\/code>, ricordandoti di aggiornare periodicamente il suo database con <code>apt-file update<\/code>.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>dpkg-query -S<\/code> individua il pacchetto proprietario di un file installato.<\/li>\n<li><code>apt-file<\/code> permette di cercare file nei pacchetti disponibili nei repository.<\/li>\n<li>Prima di utilizzare <code>apt-file<\/code> \u00e8 necessario eseguire <code>apt-file update<\/code>.<\/li>\n<li><code>dpkg-query<\/code> lavora solo sui pacchetti installati.<\/li>\n<li><code>apt-file<\/code> \u00e8 uno strumento fondamentale per individuare librerie e file non ancora presenti nel sistema.<\/li>\n<\/ul>\n<h2>102.4.4 Ottenere informazioni sui pacchetti<\/h2>\n<p>Durante l&#8217;amministrazione di un sistema Linux \u00e8 spesso necessario raccogliere informazioni dettagliate sui pacchetti installati. Ad esempio, potresti voler conoscere la versione di un programma, verificare quali file sono stati installati, controllarne le dipendenze oppure accertarti che i file del pacchetto non siano stati modificati.<\/p>\n<p>Le distribuzioni Debian mettono a disposizione numerosi strumenti che permettono di interrogare il database dei pacchetti e ottenere rapidamente tutte queste informazioni.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 importante conoscere i principali comandi utilizzati per interrogare il database dei pacchetti Debian, in particolare <code>dpkg -p<\/code>, <code>dpkg -L<\/code>, <code>apt-cache depends<\/code>, <code>dpkg -V<\/code> e <code>dpkg -l<\/code>.<\/p><\/blockquote>\n<hr \/>\n<h3>Visualizzare le informazioni di un pacchetto<\/h3>\n<p>Per ottenere le informazioni generali di un pacchetto \u00e8 possibile utilizzare:<\/p>\n<pre><code>dpkg -p package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>dpkg -p bash\r\n<\/code><\/pre>\n<p>Il comando mostra numerose informazioni, tra cui:<\/p>\n<ul>\n<li>nome del pacchetto;<\/li>\n<li>versione installata;<\/li>\n<li>architettura;<\/li>\n<li>manutentore;<\/li>\n<li>dimensione;<\/li>\n<li>descrizione del software;<\/li>\n<li>dipendenze dichiarate dal pacchetto.<\/li>\n<\/ul>\n<p>Queste informazioni risultano particolarmente utili durante la verifica della configurazione di un sistema.<\/p>\n<hr \/>\n<h3>Elencare i file installati<\/h3>\n<p>Per conoscere tutti i file appartenenti a un pacchetto installato si utilizza:<\/p>\n<pre><code>dpkg -L package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>dpkg -L openssh-server\r\n<\/code><\/pre>\n<p>L&#8217;output comprende:<\/p>\n<ul>\n<li>file eseguibili;<\/li>\n<li>directory create durante l&#8217;installazione;<\/li>\n<li>file di configurazione;<\/li>\n<li>documentazione;<\/li>\n<li>pagine di manuale.<\/li>\n<\/ul>\n<p>Questo comando \u00e8 molto utile per individuare rapidamente dove un&#8217;applicazione installa i propri file.<\/p>\n<hr \/>\n<h3>Visualizzare le dipendenze<\/h3>\n<p>Per conoscere le dipendenze di un pacchetto \u00e8 possibile utilizzare:<\/p>\n<pre><code>apt-cache depends package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>apt-cache depends nginx\r\n<\/code><\/pre>\n<p>Il comando mostra tutti i pacchetti richiesti per il corretto funzionamento dell&#8217;applicazione, oltre alle eventuali dipendenze opzionali o raccomandate.<\/p>\n<p>Comprendere le dipendenze \u00e8 fondamentale per evitare problemi durante l&#8217;installazione o la rimozione del software.<\/p>\n<hr \/>\n<h3>Verificare l&#8217;integrit\u00e0 di un pacchetto<\/h3>\n<p>Per controllare che i file appartenenti a un pacchetto non siano stati modificati accidentalmente o danneggiati \u00e8 possibile utilizzare:<\/p>\n<pre><code>dpkg -V package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>dpkg -V coreutils\r\n<\/code><\/pre>\n<p>Se il comando non produce alcun output significa che tutti i file verificati corrispondono alle informazioni registrate nel database del pacchetto.<\/p>\n<p>Se invece vengono rilevate differenze, verranno segnalati i file modificati.<\/p>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> Un comando <code>dpkg -V<\/code> che non restituisce alcun risultato indica normalmente che il pacchetto \u00e8 integro.<\/p><\/blockquote>\n<hr \/>\n<h3>Verificare se un pacchetto \u00e8 installato<\/h3>\n<p>Per controllare rapidamente se un determinato pacchetto \u00e8 presente nel sistema si pu\u00f2 utilizzare:<\/p>\n<pre><code>dpkg -l | grep package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>dpkg -l | grep openssh\r\n<\/code><\/pre>\n<p>L&#8217;output mostra tutti i pacchetti che corrispondono al nome specificato e il loro stato di installazione.<\/p>\n<p>\u00c8 uno dei comandi pi\u00f9 utilizzati dagli amministratori Linux durante la gestione quotidiana del sistema.<\/p>\n<hr \/>\n<h3>Riepilogo dei principali comandi<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Funzione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dpkg -p package_name<\/code><\/td>\n<td>Visualizza le informazioni dettagliate di un pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -L package_name<\/code><\/td>\n<td>Elenca tutti i file installati dal pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-cache depends package_name<\/code><\/td>\n<td>Mostra le dipendenze del pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -V package_name<\/code><\/td>\n<td>Verifica l&#8217;integrit\u00e0 dei file del pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -l | grep package_name<\/code><\/td>\n<td>Controlla se il pacchetto \u00e8 installato.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Prima di reinstallare o rimuovere un pacchetto, verifica sempre le sue dipendenze e i file installati. Utilizza <code>dpkg -V<\/code> quando sospetti che alcuni file siano stati modificati o corrotti e consulta le informazioni del pacchetto per conoscere versione, manutentore e caratteristiche del software installato.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li><code>dpkg -p<\/code> visualizza le informazioni generali di un pacchetto.<\/li>\n<li><code>dpkg -L<\/code> elenca tutti i file installati.<\/li>\n<li><code>apt-cache depends<\/code> mostra le dipendenze del software.<\/li>\n<li><code>dpkg -V<\/code> verifica l&#8217;integrit\u00e0 dei file appartenenti a un pacchetto.<\/li>\n<li><code>dpkg -l<\/code> consente di verificare lo stato di installazione dei pacchetti.<\/li>\n<\/ul>\n<h2>102.4.5 Introduzione ad APT (Advanced Package Tool)<\/h2>\n<p>Sebbene <code>dpkg<\/code> sia in grado di installare e gestire i pacchetti Debian, presenta una limitazione importante: non risolve automaticamente le dipendenze tra i pacchetti. Se un programma richiede librerie o componenti aggiuntivi non presenti nel sistema, l&#8217;installazione tramite <code>dpkg<\/code> potrebbe non andare a buon fine.<\/p>\n<p>Per semplificare la gestione del software, le distribuzioni Debian utilizzano <strong>APT (Advanced Package Tool)<\/strong>, un insieme di strumenti che automatizza il download dei pacchetti, la gestione delle dipendenze, gli aggiornamenti del sistema e l&#8217;accesso ai repository software.<\/p>\n<p>Grazie ad APT, l&#8217;amministratore pu\u00f2 installare e mantenere migliaia di pacchetti con pochi semplici comandi.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Exam Tip<\/strong> Per l&#8217;esame LPIC-1 \u00e8 fondamentale conoscere il ruolo di <strong>APT<\/strong>, il file <code>\/etc\/apt\/sources.list<\/code>, i comandi <code>apt-get<\/code>, <code>apt-cache<\/code> e <code>dpkg-reconfigure<\/code>, oltre a comprenderne le differenze rispetto a <code>dpkg<\/code>.<\/p><\/blockquote>\n<hr \/>\n<h3>APT e la gestione delle dipendenze<\/h3>\n<p>APT lavora sopra <code>dpkg<\/code> e ne estende le funzionalit\u00e0.<\/p>\n<p>Quando viene installato un nuovo programma, APT:<\/p>\n<ul>\n<li>individua il pacchetto richiesto;<\/li>\n<li>verifica tutte le dipendenze necessarie;<\/li>\n<li>scarica automaticamente i pacchetti mancanti dai repository;<\/li>\n<li>installa tutto nell&#8217;ordine corretto.<\/li>\n<\/ul>\n<p>Questo permette di evitare errori dovuti a librerie mancanti o incompatibilit\u00e0 tra pacchetti.<\/p>\n<hr \/>\n<h3>I repository software<\/h3>\n<p>APT scarica il software dai <strong>repository<\/strong>, ovvero archivi online contenenti migliaia di pacchetti ufficiali mantenuti dalla distribuzione Linux.<\/p>\n<p>L&#8217;elenco dei repository configurati \u00e8 normalmente contenuto nel file:<\/p>\n<pre><code>\/etc\/apt\/sources.list\r\n<\/code><\/pre>\n<p>oppure nei file presenti nella directory:<\/p>\n<pre><code>\/etc\/apt\/sources.list.d\/\r\n<\/code><\/pre>\n<p>Un tipico esempio di repository Debian \u00e8:<\/p>\n<pre><code>deb http:\/\/deb.debian.org\/debian\/ bookworm main\r\n<\/code><\/pre>\n<p>Ogni riga indica:<\/p>\n<ul>\n<li>il tipo di repository (<code>deb<\/code>);<\/li>\n<li>l&#8217;indirizzo del server;<\/li>\n<li>la versione della distribuzione (ad esempio <strong>bookworm<\/strong>);<\/li>\n<li>la sezione del repository (<strong>main<\/strong>).<\/li>\n<\/ul>\n<blockquote><p><strong>\ud83d\udccc Da ricordare<\/strong> I repository rappresentano la principale fonte di software, aggiornamenti di sicurezza e nuove versioni dei pacchetti.<\/p><\/blockquote>\n<hr \/>\n<h3>Installare un pacchetto con apt-get<\/h3>\n<p>Uno dei comandi pi\u00f9 utilizzati \u00e8:<\/p>\n<pre><code>sudo apt-get install package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>sudo apt-get install nginx\r\n<\/code><\/pre>\n<p>APT scaricher\u00e0 automaticamente il pacchetto e tutte le eventuali dipendenze necessarie.<\/p>\n<hr \/>\n<h3>Ricercare un pacchetto<\/h3>\n<p>Per cercare un software disponibile nei repository si utilizza:<\/p>\n<pre><code>apt-cache search keyword\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>apt-cache search apache\r\n<\/code><\/pre>\n<p>Il comando restituisce tutti i pacchetti che corrispondono alla parola chiave specificata.<\/p>\n<p>\u00c8 uno strumento molto utile quando non si conosce il nome esatto del pacchetto da installare.<\/p>\n<hr \/>\n<h3>Riconfigurare un pacchetto<\/h3>\n<p>Alcuni pacchetti possono essere riconfigurati dopo l&#8217;installazione senza dover essere reinstallati.<\/p>\n<p>Per questo scopo viene utilizzato:<\/p>\n<pre><code>sudo dpkg-reconfigure package_name\r\n<\/code><\/pre>\n<p>Ad esempio:<\/p>\n<pre><code>sudo dpkg-reconfigure tzdata\r\n<\/code><\/pre>\n<p>Il comando riavvia la procedura di configurazione del pacchetto, consentendo di modificare le impostazioni iniziali.<\/p>\n<p>Viene frequentemente utilizzato per configurare:<\/p>\n<ul>\n<li>fuso orario;<\/li>\n<li>layout della tastiera;<\/li>\n<li>server di posta;<\/li>\n<li>altri servizi di sistema.<\/li>\n<\/ul>\n<hr \/>\n<h3>APT e dpkg a confronto<\/h3>\n<table>\n<thead>\n<tr>\n<th>dpkg<\/th>\n<th>APT<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Gestisce direttamente i pacchetti <code>.deb<\/code>.<\/td>\n<td>Gestisce i repository software.<\/td>\n<\/tr>\n<tr>\n<td>Non risolve automaticamente le dipendenze.<\/td>\n<td>Risolve automaticamente le dipendenze.<\/td>\n<\/tr>\n<tr>\n<td>Lavora su pacchetti locali.<\/td>\n<td>Scarica e aggiorna i pacchetti dai repository.<\/td>\n<\/tr>\n<tr>\n<td>\u00c8 uno strumento a basso livello.<\/td>\n<td>\u00c8 uno strumento ad alto livello che utilizza <code>dpkg<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h3>Best Practice<\/h3>\n<p>Per installare e aggiornare il software utilizza preferibilmente APT, poich\u00e9 gestisce automaticamente le dipendenze e mantiene il sistema coerente. Ricorri a <code>dpkg<\/code> principalmente quando devi installare un pacchetto <code>.deb<\/code> scaricato manualmente o eseguire operazioni specifiche sui pacchetti locali.<\/p>\n<hr \/>\n<h3>Riepilogo<\/h3>\n<ul>\n<li>APT automatizza la gestione dei pacchetti Debian.<\/li>\n<li>Risolve automaticamente le dipendenze tra i pacchetti.<\/li>\n<li>I repository software sono configurati nei file <code>\/etc\/apt\/sources.list<\/code> e <code>\/etc\/apt\/sources.list.d\/<\/code>.<\/li>\n<li><code>apt-get install<\/code> installa software e relative dipendenze.<\/li>\n<li><code>apt-cache search<\/code> permette di cercare pacchetti nei repository.<\/li>\n<li><code>dpkg-reconfigure<\/code> consente di riconfigurare un pacchetto gi\u00e0 installato.<\/li>\n<\/ul>\n<h2>\ud83d\udcda Riepilogo della lezione<\/h2>\n<p>In questa lezione hai approfondito il funzionamento del sistema di gestione dei pacchetti delle distribuzioni Debian, imparando a utilizzare gli strumenti fondamentali per installare, aggiornare, rimuovere e verificare il software. Hai compreso la differenza tra <strong>dpkg<\/strong>, che opera direttamente sui pacchetti <code>.deb<\/code>, e <strong>APT<\/strong>, che automatizza la gestione delle dipendenze e comunica con i repository software.<\/p>\n<p>Hai inoltre imparato a ricercare pacchetti e file, ottenere informazioni dettagliate sul software installato, verificare l&#8217;integrit\u00e0 dei pacchetti e riconfigurare applicazioni gi\u00e0 presenti nel sistema.<\/p>\n<h3>Concetti principali<\/h3>\n<ul>\n<li>Hai compreso il funzionamento dei <strong>pacchetti Debian (.deb)<\/strong> e della gestione del software nelle distribuzioni Debian.<\/li>\n<li>Hai imparato a utilizzare <code>dpkg<\/code> per installare, rimuovere e amministrare i pacchetti locali.<\/li>\n<li>Hai scoperto come individuare il pacchetto che contiene un determinato file utilizzando <code>dpkg-query<\/code> e <code>apt-file<\/code>.<\/li>\n<li>Hai imparato a ottenere informazioni dettagliate sui pacchetti installati e sulle loro dipendenze.<\/li>\n<li>Hai compreso il ruolo dei <strong>repository software<\/strong> e del file <code>\/etc\/apt\/sources.list<\/code>.<\/li>\n<li>Hai utilizzato i principali strumenti di APT per installare, cercare e gestire i pacchetti software.<\/li>\n<li>Hai imparato a riconfigurare un pacchetto gi\u00e0 installato mediante <code>dpkg-reconfigure<\/code>.<\/li>\n<li>Hai compreso le differenze operative tra <code>dpkg<\/code> e <code>APT<\/code>.<\/li>\n<\/ul>\n<blockquote><p><strong>\ud83c\udfaf Obiettivo raggiunto<\/strong> Al termine di questa lezione sei in grado di amministrare i pacchetti software nelle distribuzioni Debian, utilizzare i principali strumenti di gestione, comprendere il funzionamento dei repository e risolvere le operazioni pi\u00f9 comuni legate all&#8217;installazione e alla manutenzione del software.<\/p><\/blockquote>\n<h3>Comandi da ricordare<\/h3>\n<table>\n<thead>\n<tr>\n<th>Comando<\/th>\n<th>Descrizione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>dpkg -i package.deb<\/code><\/td>\n<td>Installa un pacchetto Debian locale.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -r package<\/code><\/td>\n<td>Rimuove un pacchetto mantenendo i file di configurazione.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -P package<\/code><\/td>\n<td>Rimuove completamente un pacchetto e i relativi file di configurazione.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg-query -S file<\/code><\/td>\n<td>Individua il pacchetto proprietario di un file installato.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-file search file<\/code><\/td>\n<td>Cerca un file nei pacchetti disponibili nei repository.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -L package<\/code><\/td>\n<td>Elenca i file installati da un pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-cache depends package<\/code><\/td>\n<td>Visualizza le dipendenze di un pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg -V package<\/code><\/td>\n<td>Verifica l&#8217;integrit\u00e0 dei file di un pacchetto.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-get install package<\/code><\/td>\n<td>Installa un pacchetto risolvendo automaticamente le dipendenze.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-cache search keyword<\/code><\/td>\n<td>Ricerca pacchetti nei repository.<\/td>\n<\/tr>\n<tr>\n<td><code>dpkg-reconfigure package<\/code><\/td>\n<td>Riconfigura un pacchetto gi\u00e0 installato.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-get update<\/code><\/td>\n<td>Aggiorna l&#8217;elenco dei pacchetti disponibili nei repository.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-get upgrade<\/code><\/td>\n<td>Aggiorna i pacchetti installati all&#8217;ultima versione disponibile.<\/td>\n<\/tr>\n<tr>\n<td><code>apt-get autoremove<\/code><\/td>\n<td>Rimuove automaticamente le dipendenze non pi\u00f9 necessarie.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p><strong>\ud83d\udca1 Preparazione all&#8217;esame LPIC-1<\/strong> Prima di proseguire assicurati di conoscere la differenza tra <code>dpkg<\/code> e <code>APT<\/code>, il ruolo del file <code>\/etc\/apt\/sources.list<\/code>, i principali comandi per installare, rimuovere e interrogare i pacchetti e le operazioni di aggiornamento del sistema. Questi argomenti sono tra i pi\u00f9 frequenti nella certificazione LPIC-1 Exam 101.<\/p><\/blockquote>\n<hr \/>\n<h2>\u27a1\ufe0f Prossima lezione<\/h2>\n<p>Nella prossima lezione (<strong>102.5 Gestione dei pacchetti RPM<\/strong>) scoprirai il sistema di gestione del software utilizzato dalle distribuzioni della famiglia Red Hat. Imparerai a utilizzare gli strumenti <strong>RPM<\/strong> e <strong>DNF\/YUM<\/strong> per installare, aggiornare, rimuovere e verificare i pacchetti software, confrontandoli con gli strumenti Debian studiati in questa lezione.<\/p>\n<blockquote><p><strong>\ud83d\udcd6 Materiale di approfondimento<\/strong> Consulta il PDF allegato alla lezione per esercitarti con laboratori guidati, scenari realistici e quiz di autovalutazione.<\/p><\/blockquote>\n","protected":false},"comment_status":"open","ping_status":"closed","template":"","class_list":["post-3631","lesson","type-lesson","status-publish","has-post-thumbnail","hentry"],"uagb_featured_image_src":[],"uagb_author_info":{"display_name":"Rootmail Academy","author_link":"https:\/\/rootmail.it\/en\/author\/"},"uagb_comment_info":0,"uagb_excerpt":"102.4 Gestione dei pacchetti Debian Uno dei principali punti di forza delle distribuzioni Linux basate su Debian \u00e8 il sistema di gestione dei pacchetti, che consente di installare, aggiornare, rimuovere e verificare il software in modo semplice, sicuro ed efficiente. Anzich\u00e9 scaricare e installare manualmente i programmi, Linux utilizza pacchetti software contenenti applicazioni, librerie, file&hellip;","_links":{"self":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson\/3631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/lesson"}],"about":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/types\/lesson"}],"replies":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/comments?post=3631"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media\/3670"}],"wp:attachment":[{"href":"https:\/\/rootmail.it\/en\/wp-json\/wp\/v2\/media?parent=3631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}