Domanda Incapace di correggere i problemi, hai tenuto dei pacchetti rotti


Dopo l'aggiornamento dalla 10.04 alla 12.04 sto provando ad installare diversi pacchetti. Ad esempio ia32-libs e skype (4.0).

Quando provo a installarli, ricevo il messaggio di errore "Impossibile correggere i problemi, hai tenuto dei pacchetti rotti".

Output di comandi:

sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Dopo aver eseguito questo:

sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

177
2017-11-28 23:48


origine


Potrebbe essere d'aiuto se ci mostrassi il comando che stai effettivamente provando (ad esempio sudo apt-get install ia32-libs) e l'output da quel comando. Inoltre, fa sudo apt-get dist-upgrade mostra eventuali aggiornamenti disponibili? - thomasrutter
Non so cosa c'è di sbagliato nella tua domanda, non vedo alcun errore effettivo, né quello che descrivi nel tuo titolo. - Braiam
possibile duplicato di Come posso risolvere le dipendenze non soddisfatte? - Eliah Kagan
Relazionato: E: impossibile correggere i problemi, hai tenuto dei pacchetti rotti - Melebius


risposte:


Quel particolare messaggio di errore potrebbe indicare che hai sospeso i pacchetti, ma potrebbe anche indicare un problema diverso.

È possibile ottenere un elenco di effettivo pacchetti con:

dpkg --get-selections | grep hold

Se non ce ne sono, o nessuno sembra correlato, allora probabilmente è qualcos'altro. Controlla attentamente l'output del comando che stavi cercando quando hai ricevuto il messaggio di errore, in quanto potrebbero esserci altri indizi nell'output completo di quel comando, a parte il messaggio di errore.

Un altro metodo di risoluzione dei problemi potrebbe essere l'utilizzo di aptitude anziché apt-get per provare a installare il pacchetto:

sudo aptitude install <packagename>

Aptitude si arrenderà meno facilmente e tenterà di trovare soluzioni che potrebbero comportare la modifica di altri pacchetti. Potrebbe darti più spiegazioni sul problema e opzioni per risolverlo.

Occasionalmente aptitude sarà troppo desideroso di rimuovere o downgrade un gran numero di pacchetti per soddisfare la tua richiesta, nel qual caso riprovare con -f cambia le sue priorità e aiuta a trovare soluzioni che comportino la rimozione / il downgrade di un minor numero di pacchetti, anche se ciò significa che non tutte le modifiche richieste possono andare avanti:

sudo aptitude -f install <packagename>

198
2017-11-29 01:58



Qualche idea su come rimuovere un pacchetto? :-) - Eugene van der Merwe
Cioè un domanda separata. - thomasrutter
Aptitude è stato più utile per me che apt-get, grazie per il suggerimento. - szx
Una cosa da notare è che aptitude può rendere più facile fare più danni al tuo sistema. Ad esempio, se apt-get non riesce a installare qualcosa a causa di dipendenze in conflitto, si arrenderà. Tuttavia, aptitude potrebbe offrire di andare avanti, ma disinstallare un sacco di altri pacchetti al fine di soddisfare tali conflitti - o addirittura eseguire il downgrade dei pacchetti. Devi semplicemente essere consapevole di ciò che suggerisce e procedere solo se è una buona idea. - thomasrutter
I pacchetti "in attesa" non hanno nulla a che fare con il messaggio, solo che il conflitto è stato evitato trattenendoli (non installando, aggiornando, eseguendo il downgrade o rimuovendo). - Braiam


È successo anche a me. Tutto quello che ho fatto è stato sudo apt-get update e questo ha risolto il mio problema. In bocca al lupo.


23
2017-08-27 02:43





Mi sono imbattuto in uno scenario simile per quanto riguarda le dipendenze mancanti. Nel mio caso stavo cercando di installare curl su ubuntu saucy salamander 13.10 ...

L'errore indicava che la dipendenza richiedeva una versione precedente della libreria curl3.

Sono stato in grado di degradare alla versione precedente cercando di installare Curl usando aptitude.

Quando ha notato la dipendenza mancante e il motivo (richiesto una versione precedente del file della libreria), mi ha dato diverse opzioni su come rispondere ... y //n/q

Y avrebbe annullato l'installazione, N cercherebbe un'altra opzione, e Q semplicemente smettere e non fare nulla di più, lasciando un pacchetto rotto.

Ho selezionato Ne mi ha dato la possibilità di eseguire il downgrade del file della libreria a una versione precedente. Quindi è quello che ho fatto e arricciato finito l'installazione senza più errori.

  • Potrei cercare di aggiornare il file della libreria di nuovo dopo l'installazione, ma hey, finora tutto bene.

7
2018-03-02 06:53





Ho avuto uno scenario simile in una nuova installazione di 14.04, senza file elencati in dpkg --get-selections | grep holde nessuna gioia dopo sudo apt-get update.

Che cosa fatto aggiustarlo per me era un semplice

sudo apt-get autoremove

Quando ho provato a reinstallare il pacchetto malfunzionante, ha funzionato bene. Sìì!


7
2017-07-27 13:41





Ho avuto lo stesso problema, ho eseguito il comando di controllo del pacchetto dall'altra risposta (dpkg --get-selections | grep hold)  e vidi

tomcat7                                         deinstall
tomcat7-common                                  install

così ho usato "apt-get remove tomcat7-common"

Quindi potrei installare Tomcat 6 (stavo rimuovendo Tomcat 7 e installando Tomcat 6 come fai tu).


4
2017-10-03 11:03



I pacchetti "in attesa" non hanno nulla a che fare con il messaggio, solo che il conflitto è stato evitato trattenendoli (non installando, aggiornando, eseguendo il downgrade o rimuovendo) - Braiam
aggiungi la flag purge: apt-get remove --purge packet - Sergio Abreu


Per me, nessuno dei precedenti ha funzionato perché il mio sistema non è stato aggiornato. L'ho fatto

Home Key > Software Updater > Install 

e aggiornato il mio sistema; in seguito, potrei installare il mio pacchetto normalmente con apt.


0
2018-05-25 14:01