Wie behebe ich festgehaltene, beschädigte Pakete?

21

Versuch, libssl-dev unter Ubuntu 14.04.2 zu installieren

$ 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.

Wie kann ich das zurückgehaltene Paket entfernen und das richtige installieren?

Sam Healey
quelle
Wann bist du das letzte Mal gelaufen sudo apt updateund / oder sudo apt upgrade?
DopeGhoti
Hallo, ich habe beides zwischen den einzelnen Schritten gemacht.
Sam Healey

Antworten:

18

Versuchen Sie zunächst Folgendes einzugeben: sudo dpkg --configure -a

Dies wird einen großen Beitrag zur Behebung defekter Abhängigkeiten leisten. Wenn das nicht ausreicht, versuchen Sie: sudo apt-get install -f

Dann bereinigen und aktualisieren: sudo apt-get clean && sudo apt-get update

Dann aktualisiere: sudo apt-get upgrade (sage 'y' zu Upgrades)

Wenn Sie die Meldung erhalten, dass einige Pakete "zurückgehalten" werden, gehen Sie wie folgt vor:

sudo apt-get dist-upgrade

Führen Sie nun diese beiden Befehle aus:

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

Dann sehen Sie, was passiert, wenn Sie eingeben: sudo apt-get install libssl-dev

Wenn es immer noch nicht funktioniert, versuchen Sie Folgendes:

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

Wenn es immer noch nicht funktioniert, öffnen Sie den Synaptic Package Manager (sollte sich in Ihrem Launcher befinden. Wenn Sie ihn nicht finden, geben Sie am Terminal ein synaptic-pkexec).

Suche nach zlib1g-dev. Wenn das Kästchen neben zlib1g-dev nicht grün ist, klicken Sie darauf und wählen Sie "Zur Installation markieren". Wenn Sie mehr als eine Version sehen, wählen Sie 1:1.2.8.dfsg-1ubuntu1. Dann suchen Sie nach libssl-dev. Wenn das Kästchen neben libssl-dev nicht grün ist, klicken Sie darauf und wählen Sie "Zur Installation markieren".

Wählen Sie dann "Übernehmen".

gnädig1
quelle
Hallo, danke für die Antwort. Ich habe alles oben gemacht und den gleichen Fehler wie in meinem ursprünglichen Beitrag erhalten. Beim Ausführen des Upgrades wurde die folgende Meldung angezeigt. Die folgenden Pakete wurden zurückgehalten: Linux-Generic-LTS-Utopic Linux-Header-Generic-LTS-Utopic Linux-Image-Generic-LTS-Utopic 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
Sam Healey
was gibt apt-cache policy zlib1g-devundgrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
@ Bahamut Sind Sie sicher, dass Sie "-P" meinen? Für mich, ichE: Command line option 'P' [from -P] is not known.
gracious1
@SamHealey Ich habe meine Antwort etwas geändert. Versuchen Sie, was ich dort vorschlage, und lassen Sie uns wissen, wie es geht.
gracious1
1
@ Bahamut Warum kein Sudo mit Grafikprogramm?
gracious1
2

Sie müssen nach allen Dateien suchen, die zu Ihrem Paket gehören, diese löschen und anschließend neu installieren.

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

Wiederholen Sie den zweiten Befehl für jede Datei und installieren Sie sie anschließend erneut.

Alex
quelle
0
sudo aptitude install lib_name_depending

hat bei mir funktioniert, als ich libcurl4-openssl-devauf meinem Ubuntu 14.04LTS installieren wollte .

Einige abhängige Bibliotheken wurden nicht auf meinem Computer installiert, und mit dem aptitude-Tool kann ich die erforderlichen Bibliotheken / Pakete interaktiv installieren / downgraden, um sie installieren zu können libcurl4-openssl-dev.

Danijel Hodzic
quelle