2010-09-24 43 views
2

在一个新的Debian系统(挤压/ SID)我一直在使用安装了以下软件包apt-get的:这些DLL中的哪一个是“正确”的?

  1. 的OCaml的电池,包括
  2. libpcre-ocaml的-dev的
  3. libcamlnet-SSL-ocaml的-dev
  4. libldap-ocaml的-dev的

当编译代码我得到的错误,如:

ocamlfind: [WARNING] The DLL dllnetaccel_c.so occurs in multiple directories: /usr/lib/ocaml/stublibs 
ocamlfind: [WARNING] The DLL dllnetaccel_c.so occurs in multiple directories: /usr/local/lib/ocaml/3.11.2/stublibs 
ocamlfind: [WARNING] The DLL dllnetsys.so occurs in multiple directories: /usr/lib/ocaml/stublibs 
ocamlfind: [WARNING] The DLL dllnetsys.so occurs in multiple directories: /usr/local/lib/ocaml/3.11.2/stublibs 

他们是不相同的:

$ diff /usr/lib/ocaml/stublibs/dllnetsys.so /usr/local/lib/ocaml/3.11.2/stublibs/dllnetsys.so 
Binary files /usr/lib/ocaml/stublibs/dllnetsys.so and /usr/local/lib/ocaml/3.11.2/stublibs/dllnetsys.so differ 

我的代码编译stll,但这些都是正确的,我怎么能抑制这显然是虚假的警告?

谢谢!

回答

1

官方的debian软件包把dll * .so放到/usr/lib/ocaml/stublibs。并且/usr/local/lib/ocaml/<version>/stublibs被配置为ocamlfind的默认安装目标,以便手动编译和安装的库将立即可用(请参阅/usr/lib/ocaml/ld.conf)。所以这意味着你(或者机器上的其他人)手动编译和安装ocamlnet。哪个安装更“正确”取决于您,但重复ocamlfind包是不好的。

请注意,debian软件包由软件包系统进行跟踪,并可能作为依赖项进行安装。 如果你用一些补丁重建(例如)ocamlnet,你将需要重建每个需要的补丁版本反向依赖项,并删除相应的debian软件包。

+0

嗯,必须是它 - 我相信这台机器之前没有OCaml。我做了apt-get删除ocaml *,删除了两个目录树,并重复apt-get安装,现在一切都很开心。谢谢! – Gaius 2010-09-24 11:56:10