dpkg não instalará pacotes com dependências que tenham uma versão mais nova

2

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 todas as dependências. Este pacote está quebrado ou estou vendo um problema com minhas configurações? Tanto quanto eu entendo,

(>= 1.49)

significa maior ou igual a 1,49, certo?

    
por Alex 09.05.2014 / 03:17

2 respostas

2

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

Existem nomes de pacotes diferentes porque eles têm 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 um lançamento mais recente do Ubuntu, como picante 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 (também, versões antigas do Ubuntu são arquivadas em versões antigas). releases.ubuntu.com ), mas isso pode levá-lo a um inferno de dependência, então recomendo recompilar o Freeling.

    
por 09.05.2014 / 04:52
2

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

trecho

The file freeling-3.1-quantal-x86_64.deb will work with ubuntu Quantal (12.10) and Raring (13.04), because those releases shipped both libboost-1.49 and libboost-1.53

Saucy ships libboost-1.53 and 1.54, so, you'll have to compile FreeLing from source.

Source packages for 3.1 will fail to compile, but trunk version in SVN will successfully compile with boost 1.54

    
por 09.05.2014 / 04:00

Tags