請有人跟我解釋一下,因為這沒有意義:
$ 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可以成功編譯