请有人向我解释一下,因为这没有意义:
$ 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 的软件包。在更新的 Ubuntu 版本(例如 saucy 或 trusty)上,您应该获取源代码包并重新编译它,或者找到适用于您的 Ubuntu 版本的二进制文件。或者,您可以尝试获取旧的 1.49.0 库,这些库在 raring 中仍然可用(此外,旧的 Ubuntu 版本存档在旧版本.ubuntu.com),但这可能会让你陷入依赖地狱,所以我建议重新编译 Freeling。
答案2
根据这个标题为:回复:在 Ubuntu 13.10 上安装 Freeling 3.1 - 2014/01/08 16:30看来你需要重新编译它。
摘抄
文件 freeling-3.1-quantal-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中的trunk版本使用boost 1.54可以成功编译