dpkg não instalará pacote com dependências que possuem versão mais recente

dpkg não instalará pacote com dependências que possuem versão mais recente

Por favor, alguém me explique isso, porque não faz 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.

Mas eu tenho liboost 1,54!!! (TODOS os pacotes)

$ 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

E assim por diante para todas as dependências. Este pacote está quebrado ou estou tendo um problema com minhas configurações? Tanto quanto eu entendo,

(>= 1.49)

significa maior ou igual a 1,49, certo?

Responder1

Você precisa do pacote chamado libboost-program-options1.49.0. Pode ser qualquer versão maior ou igual a 1.49, mas precisa ser esse nome de pacote. libboost-program-options1.54.0é um nome de pacote diferente.

Existem nomes de pacotes diferentes porque possuem ABIs incompatíveis, portanto, um executável compilado para 1.49.0 não funcionará com 1.54.0 ou vice-versa. Como os nomes dos pacotes são diferentes, você pode ter ambos instalados, o que permite usar programas compilados para 1.49.0 e programas compilados para 1.54.0 no mesmo sistema.

O nome do pacote …-quantal-…indica que este é um pacote destinado ao Ubuntu 10.10 quantal. Em uma versão mais recente do Ubuntu, como atrevida ou confiável, você deve pegar o pacote fonte e recompilá-lo ou encontrar um binário destinado à sua versão do Ubuntu. Alternativamente, você pode tentar pegar as antigas bibliotecas 1.49.0 que ainda estão disponíveis em raring (além disso, versões antigas do Ubuntu estão arquivadas emlançamentos antigos.ubuntu.com), mas isso pode levar você a um inferno de dependência, então recomendo recompilar o Freeling.

Responder2

De acordo com este tópico intitulado:Re: Instalando o Freeling 3.1 no Ubuntu 13.10 - 08/01/2014 16:30parece que você precisará recompilá-lo.

excerto

O arquivo freeling-3.1-quantal-x86_64.deb funcionará com o ubuntu Quantal (12.10) e Raring (13.04), porque essas versões enviaram libboost-1.49 e libboost-1.53

O Saucy vem com libboost-1.53 ​​e 1.54, então você terá que compilar o FreeLing a partir do código-fonte.

Os pacotes fonte para 3.1 não serão compilados, mas a versão trunk no SVN será compilada com sucesso com o boost 1.54

informação relacionada