dpkg installiert keine Pakete mit Abhängigkeiten, die eine neuere Version haben

dpkg installiert keine Pakete mit Abhängigkeiten, die eine neuere Version haben

Kann mir das bitte jemand erklären, denn das ergibt keinen Sinn:

$ dpkg -i freeling-3.1-quantal-x86_64.deb
Selecting previously unselected package freeling.
(Reading database ... 283003 files and directories currently installed.)
Preparing to unpack freeling-3.1-quantal-x86_64.deb ...
Unpacking freeling (3.1) ...
dpkg: dependency problems prevent configuration of freeling:
 freeling depends on libboost-program-options1.49.0 (>= 1.49); however:
  Package libboost-program-options1.49.0 is not installed.
 freeling depends on libboost-regex1.49.0 (>= 1.49); however:
  Package libboost-regex1.49.0 is not installed.
 freeling depends on libboost-system1.49.0 (>= 1.49); however:
  Package libboost-system1.49.0 is not installed.
 freeling depends on libicu48 (>= 4.8.1); however:
  Package libicu48:amd64 is not installed.

Aber ich habe liboost 1.54 !!! (ALLE Pakete)

$ apt-cache policy libboost-program-options1.54.0
libboost-program-options1.54.0:
  Installed: 1.54.0-5
  Candidate: 1.54.0-5

$ apt-cache policy libboost-program-options-dev
libboost-program-options-dev:
  Installed: 1.54.0.1
  Candidate: 1.54.0.1

Und so weiter für alle Abhängigkeiten. Ist dieses Paket defekt oder liegt ein Problem mit meinen Einstellungen vor? Soweit ich weiß,

(>= 1.49)

bedeutet größer oder gleich 1,49, richtig?

Antwort1

Sie benötigen das Paket mit dem Namen libboost-program-options1.49.0. Es kann jede Version größer oder gleich 1.49 sein, aber es muss dieser Paketname sein. libboost-program-options1.54.0ist ein anderer Paketname.

Es gibt unterschiedliche Paketnamen, weil sie inkompatible ABIs haben, sodass eine für 1.49.0 kompilierte ausführbare Datei nicht mit 1.54.0 funktioniert und umgekehrt. Da die Paketnamen unterschiedlich sind, können Sie beide installiert haben, was Ihnen ermöglicht, sowohl für 1.49.0 kompilierte Programme als auch für 1.54.0 kompilierte Programme auf demselben System zu verwenden.

Der Paketname …-quantal-…zeigt an, dass es sich um ein Paket für Ubuntu 10.10 Quantal handelt. Bei einer neueren Ubuntu-Version wie Saucy oder Trusty sollten Sie das Quellpaket herunterladen und neu kompilieren oder eine Binärdatei für Ihre Ubuntu-Version finden. Alternativ können Sie versuchen, die alten 1.49.0-Bibliotheken herunterzuladen, die noch in Raring verfügbar sind (alte Ubuntu-Versionen sind außerdem archiviert unteralte-releases.ubuntu.com), aber das könnte Sie in eine Abhängigkeitshölle führen, daher empfehle ich, Freeling neu zu kompilieren.

Antwort2

Laut diesem Thread mit dem Titel:Betreff: Freeling 3.1 auf Ubuntu 13.10 installieren – 08.01.2014, 16:30 Uhres sieht aus, als müssten Sie es neu kompilieren.

Auszug

Die Datei freeling-3.1-quantal-x86_64.deb funktioniert mit Ubuntu Quantal (12.10) und Raring (13.04), da diese Versionen sowohl libboost-1.49 als auch libboost-1.53 ​​enthielten.

Saucy liefert libboost-1.53 ​​und 1.54 aus, Sie müssen FreeLing also aus dem Quellcode kompilieren.

Quellpakete für 3.1 können nicht kompiliert werden, aber die Trunk-Version in SVN wird mit Boost 1.54 erfolgreich kompiliert

verwandte Informationen