GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Correzione dell'errore "Impossibile correggere i problemi, hai tenuto pacchetti rotti" in Ubuntu e altre distribuzioni Linux

Sebbene ci siano vari modi per installare le applicazioni in Ubuntu, preferisco usare il comando apt nel terminale per installare il software.

Se fai lo stesso, potresti riscontrare un errore di dipendenza come questo:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 green-recorder : Depends: python-urllib3 but it is not installable
E: Unable to correct problems, you have held broken packages.

Di solito su It's FOSS troverai soluzioni semplici e facili da seguire per problemi complicati. Sfortunatamente, questo non è così semplice.

In questo articolo sulla risoluzione dei problemi, ti spiego perché si verifica questo errore e fornisco alcuni suggerimenti su come risolvere questo problema.

Perché vedi l'errore "hai tenuto dei pacchetti rotti"?

Stavi tentando di installare un pacchetto dell'applicazione, molto probabilmente da un PPA o da un repository di terze parti.

Le applicazioni spesso richiedono versioni specifiche di librerie e componenti software (denominate dipendenze). Queste dipendenze potrebbero non far parte del pacchetto dell'applicazione stesso, ma dovrebbero essere già installate sul tuo sistema o installate durante l'installazione dell'applicazione.

Il tuo sistema Linux tenta di installare queste dipendenze da solo. Ma se la versione del pacchetto di dipendenze non è disponibile sul tuo sistema, si confonde perché non ha modo di risolvere questo problema di dipendenza.

Questo è il motivo per cui ti informa che il software che stavi tentando di installare dipende da XYZ ma questo XYZ non può essere installato.

Un altro caso d'uso è quando il tuo pacchetto può essere trattenuto è quando tenti di installare due versioni dello stesso software. Supponiamo che tu stia installando una versione specifica di Wine quando ne hai già un'altra installata.

Come risolvere l'errore "Impossibile correggere i problemi, hai trattenuto pacchetti rotti"

Puoi provare alcune cose per far funzionare le cose. Devi avere alcune idee sull'installazione/rimozione di pacchetti nella riga di comando di Linux per risolvere le cose qui.

Assicurati che la cache dei pacchetti del tuo sistema sia aggiornata

Innanzitutto, assicurati che la cache del pacchetto locale sia aggiornata. Il tuo sistema controlla questa cache per i pacchetti disponibili. È possibile (ma non certo) che il pacchetto di dipendenze venga visualizzato dal sistema dopo l'aggiornamento della cache.

sudo apt update

Prova a installare di nuovo il pacchetto problematico e verifica se risolve il problema.

Installa la dipendenza

Se provi a installare di nuovo il pacchetto problematico e si lamenta ancora dello stesso errore di dipendenza, forse quella dipendenza non è disponibile per la versione di distribuzione.

Puoi usare il comando apt search per vedere se puoi questa libreria da qualche altro pacchetto o nome:

sudo apt search package_name

Se il pacchetto è disponibile, è la stessa versione richiesta dal pacchetto che stavi cercando di installare?

Prova a installare il pacchetto delle dipendenze e guarda cosa succede:

sudo apt install dependency_package

Potresti incontrare una catena di dipendenze. Provi a installare la dipendenza A ma si lamenta di B. Quindi provi a installare B e si lamenta di C.

Può anche accadere che quando si tenta di installare il pacchetto C, sia già installato. Verificare la versione del pacchetto C. È la stessa versione richiesta dal pacchetto B? Se sì, potrebbe essere utile rimuovere C e installarlo di nuovo.

Riesci a recuperare il pacchetto di dipendenze mancante da qualche altra fonte?

Se il pacchetto di dipendenze mancante non può essere trovato sul tuo sistema (nessun risultato nella ricerca apt), puoi provare a ottenere il pacchetto di dipendenze da qualche altra parte. So che non è una cosa molto conveniente da fare, ma non hai molte opzioni qui.

Ad esempio, nel caso dell'installazione di shutter, si è lamentato di libgoo-canvas-perl e questa libreria non è più disponibile sul sistema Ubuntu.

sudo apt install shutter
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 shutter : Depends: libgoo-canvas-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Tuttavia, poiché era disponibile nelle versioni precedenti di Ubuntu, ho cercato questo pacchetto nell'archivio dei pacchetti di Ubuntu e l'ho trovato nell'elenco di Ubuntu 14.04 qui. Ho scaricato il file .DEB e l'ho installato.

Ora che questo pacchetto di dipendenze è installato, provare a installare l'applicazione originale (shutter in questo caso) non dovrebbe più lamentarsi almeno di questo pacchetto.

Se non riesci a trovare il pacchetto di dipendenze da nessuna parte, installa il pacchetto problematico da qualche altra fonte

Quindi, nell'esempio sopra, ho provato a installare l'applicazione Green Recorder usando il suo PPA. Questa applicazione necessita di python-urllib3 libreria ma sfortunatamente questa libreria non è disponibile nel mio sistema Ubuntu 20.04.

[email protected]:~$ apt search python-urllib3
Sorting... Done
Full Text Search... Done

Chiaramente, questa è un'applicazione mal confezionata. Lo sviluppatore lo ha reso disponibile per Ubuntu 20.04 senza rendersi conto che Ubuntu 20.04 non supporta più Python 2 e tutte le librerie Python ora iniziano con il prefisso python3. Quindi python-urllib3 dovrebbe essere python3-urllib3.

Se ti trovi in ​​una situazione del genere, forse controlla la home page del progetto o cerca su Internet una fonte alternativa per installarlo. Forse esiste una versione Snap/Flatpak o qualche utente ha creato un PPA per questo? Se non altro, puoi utilizzare anche l'opzione del codice sorgente.

Se durante l'aggiornamento viene visualizzato l'errore relativo al pacchetto interrotto, prova questo

La maggior parte della discussione finora presuppone che venga visualizzato questo errore durante l'installazione di una nuova applicazione. Potrebbe non essere sempre così.

Se visualizzi questo errore quando provi ad aggiornare il tuo sistema con il comando sudo apt update, dovrai adottare un approccio leggermente diverso.

Innanzitutto, controlla quale pacchetto è in attesa con questo comando:

dpkg --get-selections | grep hold

Se vedi alcuni pacchetti bloccati, rimuovili e poi continua ad aggiornare il tuo sistema o ad installare il software.

Puoi anche usare il gestore di pacchetti Synaptic per riparare i pacchetti danneggiati.

Sei riuscito a risolvere il problema?

Come ho accennato in precedenza, non esiste una soluzione semplice per questo problema. Dovrai indagare da solo e vedere se può essere risolto o meno.

Si prega di condividere nei commenti se il problema viene risolto. In caso contrario, potrei provare ad aiutarti.



Ubuntu
  1. Come installare Rust and Cargo su Ubuntu e altre distribuzioni Linux

  2. Come guardare Hulu su Ubuntu e altre distribuzioni Linux

  3. Risolto il problema con "Impossibile acquisire il blocco del frontend dpkg. Sei root?" Errore su Ubuntu e altre distribuzioni Linux

  4. Come risolvere l'errore di installazione del pacchetto – Impossibile correggere i problemi, sono stati trattenuti pacchetti rotti

  5. Installazione di Odbcins1debian2, dipendenza interrotta su Ubuntu 20.04 Lts?

Come utilizzare le immagini WebP in Ubuntu e altre distribuzioni Linux

Utilizzo di Yarn su Ubuntu e altre distribuzioni Linux

Come installare PuTTY su Ubuntu e altre distribuzioni Linux

Come aggiornare Grub su Ubuntu e altre distribuzioni Linux

Correzione dell'errore "Impossibile analizzare il file del pacchetto /var/lib/apt/lists" in Ubuntu e altre distribuzioni Linux

Correzione dell'errore "I seguenti pacchetti sono stati trattenuti" durante l'aggiornamento delle distribuzioni Linux basate su Ubuntu e Debian