Dimensione: 12211
Commento: Piccola aggiunta
|
Dimensione: 13927
Commento: revisione cenni storici
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 6: | Linea 6: |
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=646634"; rilasci="20.04 18.04 16.04 14.04")>> | <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=646634"; rilasci="24.04 22.04 21.10 20.04 18.04 16.04 14.04")>> |
Linea 10: | Linea 10: |
In questa guida viene schematicamente presentato '''DPKG''' ('''D'''ebian '''P'''ac``'''K'''a``'''G'''e), il sistema di gestione dei pacchetti di livello più basso predefinito in Ubuntu. | In questa guida viene schematicamente presentato '''DPKG''' ('''D'''ebian '''P'''ac'''K'''a'''G'''e), il sistema di gestione dei pacchetti di livello più basso predefinito in Ubuntu. |
Linea 16: | Linea 16: |
''In principio i programmi venivano distribuiti tramite file archivio `.tar.gz`. Gli utenti dovevano [[AmministrazioneSistema/InstallareProgrammi/DaSorgenti|compilare]] ogni programma che volevano usare sui loro sistemi [[https://it.wikipedia.org/wiki/Linux|GNU/Linux]]. Quando fu creata [[https://www.debian.org/|Debian]], fu ritenuto necessario che il sistema incorporasse un metodo di gestione dei pacchetti installati sulla macchina. '''DPKG''' è stato il primo programma per gestire i pacchetti costituenti il sistema Debian, e fu creato da Ian Murdock nel gennaio 1994 come script della shell. Successivamente Ian Murdock, Carl Streeter e Matt Welsh l'hanno interamente traslato in linguaggio '''Perl''', e dopo ancora il cuore del programma è stato traslato in linguaggio '''C''' da Ian Jackson nel 1994. Oggi '''DPKG''' è considerato uno strumento di gestione pacchetti di basso livello, sostituito nell'uso corrente dallo strumento d'alto livello [[AmministrazioneSistema/InstallareProgrammi/Apt|APT]] ma, nondimeno, ancora molto utile per riparare eventuali danni di varie entità al sistema dei pacchetti medesimo.'' = Una comodità = È possibile visualizzare e stampare una lista, disponibile in più formati, per la consultazione rapida delle varie opzioni dei programmi '''[[AmministrazioneSistema/InstallareProgrammi/Apt|Apt]]''' e '''Dpkg'''. 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://apt-dpkg-ref|apt-dpkg-ref]]. 0. [[AmministrazioneSistema/ComandiBase#ls|Leggere]] la lista dei formati disponibili e scegliere quello voluto. 0. [[AmministrazioneSistema/ComandiBase#cp|Copiare]] il file `/usr/share/doc/apt-dpkg-ref/apt-dpkg-ref.<formato>.gz` nella propria '''Home'''. Sostituire <formato> con quello scelto. 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi]] nella cartella dove è stato copiato il file `apt-dpkg-ref.<formato>.gz`. 0. [[AmministrazioneSistema/FormatiDiCompressione#decomprimere|Estrarre]] il contenuto dell'archivio `apt-dpkg-ref.<formato>.gz`. 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] il programma più acconcio per visualizzare i e/o stampare contenuti del file estratto. In alternativa, per visualizzare la lista delle opzioni, aprire con un [[InternetRete/Navigazione|browser]] il file `/usr/share/doc/apt-dpkg-ref/apt-dpkg-ref.html`. |
Ai primordi della distribuzione [[https://www.debian.org/|Debian]], i programmi venivano distribuiti tramite semplici file archivio `.tar.gz`. Gli utenti dovevano [[AmministrazioneSistema/InstallareProgrammi/DaSorgenti|compilare]] manualmente ogni software che desideravano installare sui propri sistemi [[https://it.wikipedia.org/wiki/Linux|GNU/Linux]]. Quando fu creata, si rese necessario, quindi, implementare un metodo per gestire efficacemente i pacchetti installati sul sistema. '''DPKG''' ha rappresentato il primo passo fondamentale per gestire i pacchetti in sistema '''Debian'''. Creato da Ian Murdock nel gennaio 1994 come semplice script per la [[https://it.wikipedia.org/wiki/Shell_(informatica)|shell]], è stato successivamente traslato interamente in linguaggio Perl da Ian Murdock, Carl Streeter e Matt Welsh. Nel 1994, Ian Jackson ha curato la riscrittura del codice centrale in linguaggio '''C''', conferendo a '''DPKG''' la sua forma attuale. Sebbene oggigiorno '''DPKG''' sia considerato uno strumento di basso livello, soppiantato nell'uso quotidiano da tool più evoluti come '''[[AmministrazioneSistema/InstallareProgrammi/Apt|APT]]''', rimane uno strumento prezioso per la risoluzione di problematiche complesse del sistema dei pacchetti. = Installazione = Il pacchetto ''dpkg'' è preinstallato nel sistema. Per implementare il suo funzionamento [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto [[apt://dpkg-dev|dpkg-dev]]. |
Linea 35: | Linea 29: |
Tutti i comandi di '''dpkg''' e quelli correlati che prevedono modifiche al sistema (installazione, rimozione, riparazione di pacchetti, ecc.) necessitano dei [[AmministrazioneSistema/Sudo|privilegi di amministrazione]]. Per l'installazione è pure richiesto lo scaricamento preventivo nella propria '''Home''' del pacchetto, o pacchetti, che si desidera installare. |
Tutti i comandi di '''dpkg''' e quelli correlati che prevedono modifiche al sistema (installazione, rimozione, riparazione di pacchetti, ecc.) necessitano dei [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]]. Per l'installazione è pure richiesto lo scaricamento preventivo nella propria '''Home''' del pacchetto, o dei pacchetti, che si desidera installare. }}} {{{#!wiki tip [[AmministrazioneSistema/InstallareProgrammi|Installando]] il pacchetto [[apt://apt-dpkg-ref|apt-dpkg-ref]] sarà disponibile nella cartella `/usr/share/doc/apt-dpkg-ref` una lista dei principali comandi e opzioni dei programmi '''dpkg''' e '''[[AmministrazioneSistema/InstallareProgrammi/Apt|apt]]'''.<<BR>> Questa lista è disponibile in vari formati, come ad esempio file `pdf.gz` o `.html` (che possono essere aperti rispettivamente con un visualizzatore di documenti o con un [[InternetRete/Navigazione|browser]]), e può essere [[AmministrazioneSistema/ComandiBase#cp|copiata]] nella propria '''Home''' per essere consultata e/o stampata più comodamente. |
Linea 43: | Linea 42: |
||<:-2 #cccccc>'''Comandi'''|| ||<27% #f7f7f7> '''dpkg -i ''' ''nome_pacchetto'' || (> Installa un nuovo pacchetto. || ||<#f7f7f7> '''dpkg --configure''' ''nome_pacchetto'' || Prova a riconfigurare il pacchetto male installato. || ||<#f7f7f7> '''dpkg --configure''' ''-a'' || Prova a riconfigurare l'insieme dei pacchetti male installati. || ||<#f7f7f7> '''dpkg -r''' ''nome_pacchetto'' || Rimuove un pacchetto, ma senza rimuovere i relativi file di configurazione. || ||<#f7f7f7> '''dpkg -P''' ''nome_pacchetto'' || Rimuove un pacchetto, compresi tutti i file di configurazione. || |
||<:-2>'''Comandi'''|| ||<27%> '''dpkg -i ''' ''nome_pacchetto'' || Installa un nuovo pacchetto. || || '''dpkg --configure''' ''nome_pacchetto'' || Prova a riconfigurare un pacchetto installato con errori. || || '''dpkg --configure''' ''-a'' || Prova a riconfigurare l'insieme dei pacchetti installati con errori. || || '''dpkg -r''' ''nome_pacchetto'' || Rimuove un pacchetto senza rimuovere i relativi file di configurazione. || || '''dpkg -P''' ''nome_pacchetto'' || Rimuove un pacchetto, compresi tutti i file di configurazione. || |
Linea 56: | Linea 55: |
In questa sezione vengono elencati alcuni comandi utili alla ricerca dei pacchetti all'interno del database e delle informazioni riguardanti il contenuto d'essi. ||<:-2 #cccccc>'''Comandi'''|| ||<27% #f7f7f7> '''dpkg -l''' ''nome_pacchetto_nel_pattern'' || Lista dei pacchetti individuati dalla stringa di ricerca. || ||<#f7f7f7> '''dpkg -S''' ''nome_file'' || Dato un file, mostra il pacchetto che ha provveduto alla sua installazione nel sistema. || ||<#f7f7f7> '''dpkg -L''' ''nome_pacchetto'' || Lista dei file presenti nel pacchetto. || |
In questa sezione vengono elencati alcuni comandi utili alla ricerca dei pacchetti all'interno del database e delle informazioni riguardanti il contenuto di essi. ||<:-2>'''Comandi'''|| ||<50%> '''dpkg -l''' ''nome_pacchetto_nel_pattern'' || Lista dei pacchetti individuati dalla stringa di ricerca. || || '''dpkg -S''' ''nome_file'' || Dato un file, mostra il pacchetto che ha provveduto alla sua installazione nel sistema. || || '''dpkg -L''' ''nome_pacchetto'' || Lista dei file presenti nel pacchetto. || || '''dpkg-query --showformat='${binary:Package}\n' --show''' || Lista dei pacchetti che compongono il sistema. || |
Linea 65: | Linea 65: |
Questi comandi servono per forzare la rimozione o reinstallo dei pacchetti nel caso l'aggiornamento del sistema s'inceppi, ''si __raccomanda__'' d'usarli solo in caso d'effettiva necessità. ||<:-2 #cccccc>'''Comandi'''|| ||<27% #f7f7f7> '''dpkg --force-remove-reinstreq -i''' ''nome_pacchetto da reinstallare'' || Rimuove il pacchetto, o pacchetti, installato e installa il pacchetto, o pacchetti, precedentemente scaricato di versione successiva. || ||<#f7f7f7> '''dpkg --force-downgrade''' ''nome pacchetto'' || Sostituisce un pacchetto con una versione precedente. || ||<#f7f7f7> '''dpkg --force-configure-any''' ''nome pacchetto'' || Configura qualsiasi pacchetto che potrebbe essere di aiuto a installare il pacchetto. || = Rimpacchettare pacchetti installati = Questa procedura serve a rimpacchettare i pacchetti installati nel proprio sistema, utile a copiare dei pacchetti da un computer ad un altro e che non sono più disponibili da fonti terze, o convertire ad un'architettura differente ove possibile. |
Questi comandi servono per forzare la rimozione o la reinstallazione dei pacchetti in caso di blocco dell'aggiornamento del sistema. Si raccomanda di usarli solo in caso di effettiva necessità. ||<:-2>'''Comandi'''|| ||<27%> '''dpkg --force-remove-reinstreq -i''' ''nome_pacchetto da reinstallare'' || Forza la rimozione uno o più pacchetti installati preimpostando la reinstallazione. Per il corretto uso leggere [[#reinstallo|questa sezione]]. || || '''dpkg --force-downgrade''' ''nome pacchetto'' || Sostituisce un pacchetto con una versione precedente. || || '''dpkg --force-configure-any''' ''nome pacchetto'' || Configura qualsiasi pacchetto che potrebbe essere di aiuto a installare il pacchetto. || = Rimpacchettare i pacchetti installati = Questa procedura può rivelarsi utile per copiare da un sistema ad un altro dei pacchetti non più disponibili da fonti terze, oppure per convertirli in un'architettura differente ove possibile. |
Linea 77: | Linea 77: |
0. Per creare il pacchetto digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ | 0. A seconda dei casi: * Per creare il pacchetto digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 80: | Linea 81: |
0. Per creare il pacchetto convertito all'architettura desiderata, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ | * Per creare un pacchetto e convertirlo nell'architettura desiderata, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
Linea 83: | Linea 84: |
* Sostituire ''<nome pacchetto>'' col nome del pacchetto da rimpacchettare, è pure possibile listare i nomi di più pacchetti separati da uno spazio. * Sostituire ''<arch>'' con ''i386'' per convertire a 32 bit, ''<amd64>'' per convertire a 64 bit. |
sostituendo «`nome pacchetto`» con il nome del pacchetto da rimpacchettare e «`arch`» con «`i386`» per convertire a 32 bit oppure con «`amd64`» per convertire a 64 bit. È inoltre possibile listare i nomi di più pacchetti separati da uno spazio. |
Linea 88: | Linea 88: |
Questa procedura d'installazione è utile specialmente per installare pacchetti forniti da fonti terze, ma non gestendo le eventuali dipendenze richieste può richiedere un comando integrativo con '''[[AmministrazioneSistema/InstallareProgrammi/Apt|apt]]'''. 0. [[AmministrazioneSistema/ComandiBase#mkdir|Creare]] nella propria '''Home''' una cartella in cui salvare il pacchetto, o gruppo di pacchetti, che si vuole scaricare. 0. [[AmministrazioneSistema/ComandiBase#cd|Spostarsi]] nella cartella dove è stato il pacchetto, o gruppo di pacchetti, scaricato. 0. Installare il pacchetto, o gruppo di pacchetti, col comando:{{{ |
Questa procedura di installazione è utile per installare uno o più pacchetti salvati nel sistema in formato di file `.deb` (ad esempio dopo averli scaricati da Internet da fonti terze oppure salvati da un precedente backup). Non gestendo le eventuali dipendenze richieste, può talvolta richiedere un comando integrativo con '''[[AmministrazioneSistema/InstallareProgrammi/Apt|apt]]'''. 0. Per installare il pacchetto `.deb` digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{ sudo dpkg -i /percorso/pacchetto.deb }}} sostituendo `/percorso/pacchetto.deb` con il nome del file `.deb` completo di percorso. {{{#!wiki tip Qualora il terminale sia aperto nella stessa cartella dove è stato salvato il file, è possibile omettere il percorso completo, anteponendo `./` al nome del file. }}} 0. Se l'installazione termina indicando problemi di dipendenze, digitare inoltre il comando:{{{ sudo apt install -f }}} Qualora si abbia necessità di installare più file `.deb` presenti in una determinata cartella, per installarli tutti insieme sarà sufficiente: 0. Digitare il comando:{{{ |
Linea 95: | Linea 105: |
0. Se l'installazione termina indicando problemi di dipendenze, digitare il comando:{{{ | {{{#!wiki important Il comando precedente installa tutti i pacchetti presenti nella directory. Quindi occorre essere sicuri che siano presenti soltanto il/i pacchetto/i che si vuole effettivamente installare. Se necessario è possibile [[AmministrazioneSistema/ComandiBase#mkdir|creare]] una cartella apposita contenente i pacchetti desiderati, quindi [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] all'interno di essa. }}} 0. Se l'installazione termina indicando problemi di dipendenze, digitare inoltre il comando:{{{ |
Linea 99: | Linea 112: |
Per ulteriori metodi di installazione di singoli file `.deb` consultare questo [[AmministrazioneSistema/InstallareProgrammi#Pacchetti_deb|paragrafo]]. |
|
Linea 101: | Linea 116: |
Quelli che seguono sono alcuni esempi di comandi utili per sbloccare un sistema con singoli o multipli pacchetti bloccati, cagionanti aggiornamenti mal riusciti o bloccati. Le seguenti procedure possono richiedere d'usare in congiunzione a '''dpkg''' i comandi '''[[AmministrazioneSistema/InstallareProgrammi/Apt|apt]]''' e '''[[AmministrazioneSistema/ComandiBase#rm_e_rmdir|rm]]'''. Sostituire nei comandi seguenti <nomepacchetto> col nome del pacchetto. |
Quelli che seguono sono alcuni esempi di comandi utili per sbloccare un sistema con uno o più pacchetti bloccati, a causa di installazioni e/o aggiornamenti non andati a buon fine o bloccati. Le seguenti procedure possono richiedere di usare congiuntamente comandi di '''dpkg''', di '''[[AmministrazioneSistema/InstallareProgrammi/Apt|apt]]''' e di '''[[AmministrazioneSistema/ComandiBase#rm_e_rmdir|rm]]'''. Sostituire nei comandi seguenti «`<nomepacchetto>`» con il nome del pacchetto di proprio interesse. |
Linea 111: | Linea 126: |
{{{#!wiki important Durante l'esecuzione delle procedure seguenti, alcuni comandi potrebbero mostrare degli avvisi relativi a rischi di danni al sistema. Trascurare tali avvisi e __non__ eseguire comandi diversi da quelli indicati. }}} |
|
Linea 113: | Linea 132: |
Questa situazione è tipica delle rimozioni incomplete dei pacchetti. 0. Visualizzare l'eventuale presenza dei residue:{{{ sudo dpkg -l | egrep "^rc" | cut -d ' ' -f3 }}} 0. Rimuovere i residui visualizzati:{{{ sudo dpkg --purge `dpkg -l | egrep "^rc" | cut -d ' ' -f3` }}} |
Consultare questo [[AmministrazioneSistema/PulireUbuntu#Pulizia_delle_configurazioni_inutilizzate|paragrafo]]. |
Linea 135: | Linea 147: |
0. Riconfigura il sistema pacchetti:{{{ | 0. Riconfigurare il sistema pacchetti:{{{ |
Linea 145: | Linea 157: |
== Sblocco pacchetto rotto con reinstallo == Questa procedura serve a sbloccare i pacchetti tramite reinstallo forzato. 0. Rimuovere le informazioni del pacchetto:{{{ |
<<Anchor(reinstallo)>> == Sblocco pacchetto danneggiato con reinstallazione == Questa procedura serve per sbloccare i pacchetti tramite reinstallazione forzata. * Per i pacchetti disponibili nei repository [[Repository#Repository_ufficiali|ufficiali]] o [[Repository/NonUfficiali|di terze parti]]: 0. Rimuovere le informazioni del pacchetto:{{{ |
Linea 152: | Linea 167: |
0. Forzare rimozione a scopo reinstallo:{{{ | 0. Forzare rimozione a scopo reinstallazione:{{{ |
Linea 155: | Linea 170: |
0. Reinstallare il pacchetto:{{{ | 0. Aggiornare il database dei pacchetti:{{{ sudo apt update }}} 0. Reinstallare il pacchetto rimosso:{{{ |
Linea 158: | Linea 176: |
* Per i pacchetti scaricati manualmente, è sufficiente [[AmministrazioneSistema/ComandiBase#cp|copiare]] il pacchetto `.deb` interessato nella directory `/var/cache/apt/archives` (sede della cache di '''apt''') e [[AmministrazioneSistema/InstallareProgrammi/Apt#Installazione_e_rimozione_pacchetti|reinstallarlo]]. |
|
Linea 172: | Linea 192: |
Sostituire <nome-pacchetto-versione_architettura.deb> coll'intera dicitura identificativa del pacchetto. | sostituendo `<nome-pacchetto-versione_architettura.deb>` con l'intera dicitura identificativa del pacchetto. |
Linea 187: | Linea 207: |
La [[AmministrazioneSistema/Terminale|riga di comando]] è uno strumento molto potente. Tuttavia per alcuni utenti potrebbe risultare scomodo digitare comandi anche lunghi oppure memorizzarli. Di seguito sono quindi descritti alcune semplici e utili funzioni di '''[[Programmazione/LinguaggioBash|Bash]]''', shell predefinita nella linea di comando di Ubuntu. | La [[AmministrazioneSistema/Terminale|riga di comando]] è uno strumento molto potente. Tuttavia per alcuni utenti potrebbe risultare scomodo digitare comandi anche lunghi oppure memorizzarli. Di seguito sono quindi descritti alcune semplici e utili funzioni di '''[[Programmazione/LinguaggioBash|Bash]]''', [[https://it.wikipedia.org/wiki/Shell_(informatica)|shell]] predefinita nella linea di comando di Ubuntu. |
Guida verificata con Ubuntu: 20.04 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
In questa guida viene schematicamente presentato DPKG (Debian PacKaGe), il sistema di gestione dei pacchetti di livello più basso predefinito in Ubuntu.
Verranno descritti i comandi contenuti nei pacchetti dpkg e dpkg-repack.
Cenni storici
Ai primordi della distribuzione Debian, i programmi venivano distribuiti tramite semplici file archivio .tar.gz. Gli utenti dovevano compilare manualmente ogni software che desideravano installare sui propri sistemi GNU/Linux. Quando fu creata, si rese necessario, quindi, implementare un metodo per gestire efficacemente i pacchetti installati sul sistema.
DPKG ha rappresentato il primo passo fondamentale per gestire i pacchetti in sistema Debian. Creato da Ian Murdock nel gennaio 1994 come semplice script per la shell, è stato successivamente traslato interamente in linguaggio Perl da Ian Murdock, Carl Streeter e Matt Welsh. Nel 1994, Ian Jackson ha curato la riscrittura del codice centrale in linguaggio C, conferendo a DPKG la sua forma attuale.
Sebbene oggigiorno DPKG sia considerato uno strumento di basso livello, soppiantato nell'uso quotidiano da tool più evoluti come APT, rimane uno strumento prezioso per la risoluzione di problematiche complesse del sistema dei pacchetti.
Installazione
Il pacchetto dpkg è preinstallato nel sistema. Per implementare il suo funzionamento installare il pacchetto dpkg-dev.
Comandi
Tutti i comandi di dpkg e quelli correlati che prevedono modifiche al sistema (installazione, rimozione, riparazione di pacchetti, ecc.) necessitano dei privilegi di amministrazione. Per l'installazione è pure richiesto lo scaricamento preventivo nella propria Home del pacchetto, o dei pacchetti, che si desidera installare.
Installando il pacchetto apt-dpkg-ref sarà disponibile nella cartella /usr/share/doc/apt-dpkg-ref una lista dei principali comandi e opzioni dei programmi dpkg e apt.
Questa lista è disponibile in vari formati, come ad esempio file pdf.gz o .html (che possono essere aperti rispettivamente con un visualizzatore di documenti o con un browser), e può essere copiata nella propria Home per essere consultata e/o stampata più comodamente.
Installazione e rimozione pacchetti
Di seguito vengono elencati i comandi più comuni per l'installazione e la rimozione dei pacchetti dal sistema:
Comandi |
|
dpkg -i nome_pacchetto |
Installa un nuovo pacchetto. |
dpkg --configure nome_pacchetto |
Prova a riconfigurare un pacchetto installato con errori. |
dpkg --configure -a |
Prova a riconfigurare l'insieme dei pacchetti installati con errori. |
dpkg -r nome_pacchetto |
Rimuove un pacchetto senza rimuovere i relativi file di configurazione. |
dpkg -P nome_pacchetto |
Rimuove un pacchetto, compresi tutti i file di configurazione. |
Per un elenco completo dei comandi e delle opzioni disponibili per dpkg, digitare nel terminale:
man dpkg
Ricerca pacchetti o file
In questa sezione vengono elencati alcuni comandi utili alla ricerca dei pacchetti all'interno del database e delle informazioni riguardanti il contenuto di essi.
Comandi |
|
dpkg -l nome_pacchetto_nel_pattern |
Lista dei pacchetti individuati dalla stringa di ricerca. |
dpkg -S nome_file |
Dato un file, mostra il pacchetto che ha provveduto alla sua installazione nel sistema. |
dpkg -L nome_pacchetto |
Lista dei file presenti nel pacchetto. |
dpkg-query --showformat='${binary:Package}\n' --show |
Lista dei pacchetti che compongono il sistema. |
Forzature per sbloccare aggiornamenti
Questi comandi servono per forzare la rimozione o la reinstallazione dei pacchetti in caso di blocco dell'aggiornamento del sistema. Si raccomanda di usarli solo in caso di effettiva necessità.
Comandi |
|
dpkg --force-remove-reinstreq -i nome_pacchetto da reinstallare |
Forza la rimozione uno o più pacchetti installati preimpostando la reinstallazione. Per il corretto uso leggere questa sezione. |
dpkg --force-downgrade nome pacchetto |
Sostituisce un pacchetto con una versione precedente. |
dpkg --force-configure-any nome pacchetto |
Configura qualsiasi pacchetto che potrebbe essere di aiuto a installare il pacchetto. |
Rimpacchettare i pacchetti installati
Questa procedura può rivelarsi utile per copiare da un sistema ad un altro dei pacchetti non più disponibili da fonti terze, oppure per convertirli in un'architettura differente ove possibile.
Installare il pacchetto dpkg-repack.
- A seconda dei casi:
Per creare il pacchetto digitare nel terminale il seguente comando:
dpkg-repack <nome pacchetto>
Per creare un pacchetto e convertirlo nell'architettura desiderata, digitare nel terminale il seguente comando:
dpkg-repack --arch=<arch> <nome pacchetto>
sostituendo «nome pacchetto» con il nome del pacchetto da rimpacchettare e «arch» con «i386» per convertire a 32 bit oppure con «amd64» per convertire a 64 bit. È inoltre possibile listare i nomi di più pacchetti separati da uno spazio.
Installazione pacchetti
Questa procedura di installazione è utile per installare uno o più pacchetti salvati nel sistema in formato di file .deb (ad esempio dopo averli scaricati da Internet da fonti terze oppure salvati da un precedente backup). Non gestendo le eventuali dipendenze richieste, può talvolta richiedere un comando integrativo con apt.
Per installare il pacchetto .deb digitare nel terminale il seguente comando:
sudo dpkg -i /percorso/pacchetto.deb
sostituendo /percorso/pacchetto.deb con il nome del file .deb completo di percorso.
Qualora il terminale sia aperto nella stessa cartella dove è stato salvato il file, è possibile omettere il percorso completo, anteponendo ./ al nome del file.
Se l'installazione termina indicando problemi di dipendenze, digitare inoltre il comando:
sudo apt install -f
Qualora si abbia necessità di installare più file .deb presenti in una determinata cartella, per installarli tutti insieme sarà sufficiente:
Digitare il comando:
sudo dpkg -i *.deb
Il comando precedente installa tutti i pacchetti presenti nella directory. Quindi occorre essere sicuri che siano presenti soltanto il/i pacchetto/i che si vuole effettivamente installare. Se necessario è possibile creare una cartella apposita contenente i pacchetti desiderati, quindi spostarsi all'interno di essa.
Se l'installazione termina indicando problemi di dipendenze, digitare inoltre il comando:
sudo apt install -f
Per ulteriori metodi di installazione di singoli file .deb consultare questo paragrafo.
Esempi di sblocco pacchetti
Quelli che seguono sono alcuni esempi di comandi utili per sbloccare un sistema con uno o più pacchetti bloccati, a causa di installazioni e/o aggiornamenti non andati a buon fine o bloccati.
Le seguenti procedure possono richiedere di usare congiuntamente comandi di dpkg, di apt e di rm.
Sostituire nei comandi seguenti «<nomepacchetto>» con il nome del pacchetto di proprio interesse.
L'uso di queste procedure è sconsigliato nella gestione corrente del sistema. Un uso scorretto potrebbe causare dei danni irrimediabili al sistema.
Durante l'esecuzione delle procedure seguenti, alcuni comandi potrebbero mostrare degli avvisi relativi a rischi di danni al sistema. Trascurare tali avvisi e non eseguire comandi diversi da quelli indicati.
Ripulire configurazioni residue
Consultare questo paragrafo.
Sblocco pacchetto bloccato tramite rimozione
Questa procedura serve a sbloccare i pacchetti tramite rimozione forzata.
Ripulire la lista dei sorgenti del pacchetto:
sudo rm -r /var/lib/apt/lists/*
Ripulire la lista file dei metadati del pacchetto:
sudo rm -r /var/lib/app-info/yaml/*
Rimuovere le informazioni del pacchetto:
sudo rm /var/lib/dpkg/info/<nomepacchetto>*
Riconfigurare il sistema pacchetti:
sudo dpkg --configure -a
Aggiornare il database dei pacchetti:
sudo apt update
Aggiornare il sistema:
sudo apt full-upgrade
Sblocco pacchetto danneggiato con reinstallazione
Questa procedura serve per sbloccare i pacchetti tramite reinstallazione forzata.
Per i pacchetti disponibili nei repository ufficiali o di terze parti:
Rimuovere le informazioni del pacchetto:
sudo rm /var/lib/dpkg/info/<nomepacchetto>*
Forzare rimozione a scopo reinstallazione:
sudo dpkg --remove --force-remove-reinstreq <nomepacchetto>
Aggiornare il database dei pacchetti:
sudo apt update
Reinstallare il pacchetto rimosso:
sudo apt install --reinstall <nomepacchetto>
Per i pacchetti scaricati manualmente, è sufficiente copiare il pacchetto .deb interessato nella directory /var/cache/apt/archives (sede della cache di apt) e reinstallarlo.
Forzare la corretta installazione
Questa procedura serve a reinstallare i pacchetti male installati.
Rimuovere la cache delle password:
sudo rm /var/cache/debconf/passwords.dat
Rimuovere la cache dei templates:
sudo rm /var/cache/debconf/templates.dat
Forzare la sovrascrittura dei contenuti del pacchetto:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/<nome-pacchetto-versione_architettura.deb>
sostituendo <nome-pacchetto-versione_architettura.deb> con l'intera dicitura identificativa del pacchetto.
Correggere eventuali problemi nel sistema pacchetti:
sudo apt install -f
Pacchetti aggiuntivi
Pacchetti come deborphan, debfoster e kleansweep, con le loro relative funzioni, possono risultare utili alla scopo di mantenere il sistema pulito e a rimuovere i pacchetti orfani (cioè non più utili a soddisfare dipendenze di altri pacchetti). Per maggiori informazione consultare i manuali dei relativi programmi.
L'uso di queste applicazioni è sconsigliato agli utenti meno esperti. Un uso non corretto potrebbe causare dei danni irrimediabili al sistema.
Digitazione rapida dei comandi comuni
La riga di comando è uno strumento molto potente. Tuttavia per alcuni utenti potrebbe risultare scomodo digitare comandi anche lunghi oppure memorizzarli. Di seguito sono quindi descritti alcune semplici e utili funzioni di Bash, shell predefinita nella linea di comando di Ubuntu.
Cronologia: digitando i tasti direzionali superiore e inferiore sarà possibile accedere ai comandi digitati di recente. Questa funzionalità risulterà pertanto utile, ad esempio, se si esegue di frequente l'aggiornamento del sistema da terminale.
Comandi rapidi: è possibile rinominare i comandi più lunghi con altri più corti scelti dall'utente (ad esempio: dki invece di sudo dpkg --install). A tale fine modificare con un editor di testo il file ~/.bashrc, inserendo alla fine del testo delle righe come nel seguente esempio:
alias dkp='dpkg-repack' alias dki='sudo dpkg --install' alias dkr='sudo dpkg --purge' alias dkp='sudo dpkg --remove'.