dpkg는 최신 버전의 종속성이 있는 패키지를 설치하지 않습니다.

dpkg는 최신 버전의 종속성이 있는 패키지를 설치하지 않습니다.

말이 안 되니까 누군가 나에게 설명해주세요.

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

하지만 나는 liboost 1.54를 가지고 있습니다 !!! (모든 패키지)

$ 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

모든 종속성에 대해서도 마찬가지입니다. 이 패키지가 손상되었나요? 아니면 설정에 문제가 있는 것인가요? 내가 이해하는 한도에서는,

(>= 1.49)

1.49보다 크거나 같다는 뜻이죠?

답변1

라는 패키지가 필요합니다 libboost-program-options1.49.0. 1.49 이상의 모든 버전이 가능하지만 해당 패키지 이름이어야 합니다. libboost-program-options1.54.0패키지 이름이 다릅니다.

ABI가 호환되지 않기 때문에 패키지 이름이 다르기 때문에 1.49.0용으로 컴파일된 실행 파일은 1.54.0에서 작동하지 않으며 그 반대의 경우도 마찬가지입니다. 패키지 이름이 다르기 때문에 둘 다 설치하면 1.49.0용으로 컴파일된 프로그램과 1.54.0용으로 컴파일된 프로그램을 동일한 시스템에서 사용할 수 있습니다.

패키지 이름은 …-quantal-…Ubuntu 10.10 Quantal용 패키지임을 나타냅니다. saucy 또는 trusty와 같은 최신 Ubuntu 릴리스에서는 소스 패키지를 가져와 다시 컴파일하거나 Ubuntu 버전용 바이너리를 찾아야 합니다. 또는 여전히 Raring에서 사용할 수 있는 이전 1.49.0 라이브러리를 사용해 볼 수 있습니다(또한 이전 Ubuntu 릴리스는 다음 위치에 보관되어 있습니다).old-releases.ubuntu.com), 하지만 이로 인해 종속성 지옥에 빠질 수 있으므로 Freeling을 다시 컴파일하는 것이 좋습니다.

답변2

이 스레드에 따르면 다음과 같습니다.Re:Ubuntu 13.10에 Freeling 3.1 설치 - 2014/01/08 16:30다시 컴파일해야 할 것 같습니다.

발췌

freeling-3.1-qualal-x86_64.deb 파일은 ubuntu Quantal(12.10) 및 Raring(13.04)에서 작동합니다. 해당 릴리스는 libboost-1.49 및 libboost-1.53을 모두 제공했기 때문입니다.

Saucy는 libboost-1.53 ​​및 1.54를 제공하므로 소스에서 FreeLing을 컴파일해야 합니다.

3.1용 소스 패키지는 컴파일에 실패하지만 SVN의 트렁크 버전은 부스트 ​​1.54로 성공적으로 컴파일됩니다.

관련 정보