Come riparare i pacchetti rotti tenuti?


21

Prova di installare libssl-dev su ubuntu 14.04.2

$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.

$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
 libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
 zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

Come posso rimuovere il pacchetto trattenuto e installare quello corretto?


Quando è stata l'ultima volta che hai corso sudo apt updatee / o sudo apt upgrade?
DopeGhoti,

Ciao, ho fatto entrambi i passaggi.
Sam Healey,

Risposte:


18

Innanzitutto, prova a inserire questo: sudo dpkg --configure -a

Questo farà molto per correggere le dipendenze rotte. Se ciò non è sufficiente, prova: sudo apt-get install -f

Quindi pulire e aggiornare: sudo apt-get clean && sudo apt-get update

Quindi aggiorna: sudo apt-get upgrade (dì "y" agli aggiornamenti)

Se viene visualizzato un messaggio in cui si dice che alcuni pacchetti sono "trattenuti", procedere come segue:

sudo apt-get dist-upgrade

Ora esegui questi due comandi:

sudo apt-get purge zlib1g-dev
sudo apt-get autoremove

Quindi vedi cosa succede quando entri: sudo apt-get install libssl-dev

Se il problema persiste, prova questo:

sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1

Se continua a non funzionare, apri Synaptic Package Manager (dovrebbe essere nel tuo Launcher. Se non riesci a trovarlo, allora al Terminale entra synaptic-pkexec).

Cerca zlib1g-dev. Se la casella accanto a zlib1g-dev non è verde, fai clic su di essa e seleziona "Segna per l'installazione". Se vedi più di una versione, scegli 1:1.2.8.dfsg-1ubuntu1. Quindi cerca libssl-dev. Se la casella accanto a libssl-dev non è verde, fai clic su di essa e seleziona "Segna per l'installazione".

Quindi selezionare "Applica".


Ciao, grazie per la risposta. Ho fatto tutto quanto sopra e ho avuto lo stesso errore del mio post originale. Quando ho eseguito l'aggiornamento ho ricevuto il seguente messaggio. Sono stati mantenuti i seguenti pacchetti: linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic 0 aggiornato, 0 nuovi installati, 0 da rimuovere e 3 non aggiornati.
Sam Healey,

cosa dà apt-cache policy zlib1g-devegrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

@Bahamut Sei sicuro di voler dire "-P"? Per me, ottengoE: Command line option 'P' [from -P] is not known.
gentile 1

@SamHealey Ho leggermente modificato la mia risposta. Prova quello che ti suggerisco e facci sapere come va.
gentile 1

1
@Bahamut Perché non sudo con programma grafico?
gentile1,

2

Devi cercare tutti i file relativi al tuo pacchetto ed eliminarli, quindi reinstallarli.

sudo dpkg --list
sudo apt-get purge "file-name"

ripeti il ​​secondo comando con ogni file e poi reinstalla.


0
sudo aptitude install lib_name_depending

ha funzionato per me quando volevo installare libcurl4-openssl-devsul mio Ubuntu 14.04LTS.

Diverse librerie dipendenti non sono state installate sul mio computer e, con l'uso dello strumento aptitude, riesco a installare / eseguire il downgrade interattivo delle librerie / pacchetti necessari per poterlo installare libcurl4-openssl-dev.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.