dpkg no instalará el paquete con dependencias que tengan una versión más reciente

dpkg no instalará el paquete con dependencias que tengan una versión más reciente

Por favor que alguien me explique esto, porque no tiene sentido:

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

Pero tengo liboost 1.54!!! (TODOS los paquetes)

$ 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

Y así sucesivamente para todas las dependencias. ¿Este paquete está roto o tengo un problema con mi configuración? Hasta donde yo entiendo,

(>= 1.49)

significa mayor o igual a 1,49, ¿verdad?

Respuesta1

Necesitas el paquete llamado libboost-program-options1.49.0. Puede ser cualquier versión mayor o igual a 1.49, pero debe ser ese nombre de paquete. libboost-program-options1.54.0es un nombre de paquete diferente.

Hay diferentes nombres de paquetes porque tienen ABI incompatibles, por lo que un ejecutable compilado para 1.49.0 no funcionará con 1.54.0 o viceversa. Dado que los nombres de los paquetes son diferentes, puede tener ambos instalados, lo que le permite usar programas compilados para 1.49.0 y programas compilados para 1.54.0 en el mismo sistema.

El nombre del paquete …-quantal-…indica que se trata de un paquete destinado a Ubuntu 10.10 Quantal. En una versión más reciente de Ubuntu, como saucy o trusty, debes tomar el paquete fuente y recompilarlo, o buscar un binario destinado a tu versión de Ubuntu. Alternativamente, puede intentar obtener las bibliotecas antiguas 1.49.0 que todavía están disponibles en raras ocasiones (además, las versiones antiguas de Ubuntu están archivadas enversiones antiguas.ubuntu.com), pero esto podría llevarte a un infierno de dependencias, por lo que recomiendo recompilar Freeling.

Respuesta2

Según este hilo titulado:Re:Instalar Freeling 3.1 en Ubuntu 13.10 - 08/01/2014 16:30parece que necesitarás volver a compilarlo.

extracto

El archivo freeling-3.1-quantal-x86_64.deb funcionará con ubuntu Quantal (12.10) y Raring (13.04), porque esas versiones incluyeron libboost-1.49 y libboost-1.53.

Saucy incluye libboost-1.53 ​​y 1.54, por lo que tendrás que compilar FreeLing desde el código fuente.

Los paquetes fuente para 3.1 no se podrán compilar, pero la versión troncal en SVN se compilará exitosamente con boost 1.54

información relacionada