it-swarm.com.de

Erhöhen Sie nicht erfüllte Abhängigkeiten

Ich habe gehört, dass es einfach ist, Bibliotheken unter Ubuntu zu installieren, also habe ich zu Ubuntu gewechselt. Ich habe versucht, boost zu installieren, also schreibe ich:

Sudo apt-get install libboost-all-dev

und ich bekomme das:

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:  libboost-all-dev :
Depends: libboost-python-dev but it is not going to be installed E:
Unable to correct problems, you have held broken packages.

Jetzt sehe ich, dass es dafür eine kanonische Frage gibt, aber wie die Antwort schon sagt:

APT ist ein Paketverwaltungssystem für Debian und andere darauf basierende Linux-Distributionen wie Ubuntu. In den meisten Fällen ist APT einfach zum Installieren, Entfernen und Aktualisieren von Paketen zu verwenden. In seltenen Fällen, wenn Sie Abhängigkeiten von Drittanbietern einbinden, kann es vorkommen, dass apt-get Ihnen einen Fehler mitteilt, dass eine Paketinstallation nicht abgeschlossen werden konnte.

Aber ich bezweifle, dass meine Situation etwas Seltenes ist. Der eigentliche Grund, warum ich versucht habe, boost zu installieren, ist, dass ich weiß, dass es ein Kinderspiel sein sollte, und ich wünschte, ich würde ein wenig Erfolg damit haben, bevor ich openscenegraph installiere, das ich tatsächlich brauche. Ich wollte versuchen, ob die grundlegenden Dinge funktionieren, und es hat mich im Stich gelassen. Bitte helfen Sie, anstatt meine Frage gegen die "allgemeine Lösung" zu täuschen. Ich habe das versucht, aber irgendwann habe ich keine Ahnung, wovon die Antwortenden sprechen, d. h.

Deaktivieren/Entfernen/Löschen von PPAs:

PPAs (Personal Package Archive) sind auf Launchpad gehostete Repositorys. Sie können PPAs verwenden, um Pakete zu installieren oder zu aktualisieren, die nicht in den offiziellen Ubuntu-Repositories verfügbar sind.

Eine der häufigsten Ursachen für nicht erfüllte Abhängigkeiten sind PPAs, insbesondere wenn sie zum Aktualisieren des vorhandenen Pakets in Ubuntu-Repositorys verwendet werden. Deaktivieren, löschen (in Ubuntu-Repositorys auf das ursprüngliche Paket zurücksetzen) oder entfernen Sie PPA, um das Problem zu lösen, für das Sie Baumoptionen haben.

Meine spezielle Frage lautet also:

Ich habe Ubuntu 12.04 LTS noch heute installiert. Ich habe Codeblöcke, G ++, Build-Essentials installiert, kein Problem.

Ich habe versucht, Sudo apt-get install openscenegraph zu verwenden. Möglicherweise hat es funktioniert, obwohl ich die Header-Dateien auf meiner Festplatte nicht finden kann. (Vielleicht hätte ich den openscenegraph-dev herunterladen sollen (aber er existiert nicht).)

Also habe ich mich für die Installation von Boost entschieden, um zu sehen, ob dieses Paketinstallationsprogramm überhaupt funktioniert und ich habe (ungedeckte Abhängigkeiten) das bekommen, was ich oben eingefügt habe.

Warum funktioniert es nicht und wie kann ich es zum Laufen bringen?

Bearbeiten:

apt-cache madison libboost-python-dev

kehrt zurück:

libboost-python-dev |   1.48.0.2 | http://archive.ubuntu.com/ubuntu/precise/main AMD64 Packages
4
Jani Kovacs

Probleme mit nicht erfüllten Abhängigkeiten treten unter anderem auf, wenn eine abhängige Anwendung über eine eigene Abhängigkeit verfügt, die nicht installiert werden soll. Hier ist es der Fall.

Das Problem ist, dass libboost-python-dev von libboost-python1.46-dev abhängt. Es wurde aber nicht versucht, installiert zu werden.

packages.ubuntu.com .

Um libboost-python-dev zu installieren, sollten Sie libboost-python1.46-dev ebenfalls installieren.

Also laufe:

Sudo apt-get install libboost-all-dev libboost-python-dev libboost-python1.46-dev

** Sie können openscenegraph-dev folgendermaßen installieren:

Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libopenscenegraph80 libopenthreads-dev libopenscenegraph-dev 
0
user224082
Sudo aptitude install libboost-all-dev

Die Verwendung von aptitude anstelle von apt-get bietet Ihnen möglicherweise einige automatische Lösungen zum Entfernen widersprüchlicher Pakete.

1
jhclark

Ich bin nur selbst auf dieses Problem gestoßen. Ich hatte 'libboost1.48-dev' installiert, ähnlich wie in Ihrem Fall, in dem Sie 'libboost1.48-python-dev' installiert haben.

  • Sie möchten libboost1.48-all-dev und nicht libboost-all-dev installieren. Letzteres ist die Version 1.46, die nicht mit Ihrem bereits installierten libboost1.48-python-dev kompatibel ist.

  • Alternativ können Sie libboost1.48-python-dev deinstallieren und libboost-all-dev installieren, wenn Sie zu Version 1.46 zurückkehren möchten.

0
John Kua