On a fresh Debian system (Squeeze/Sid) I have installed the following packages using apt-get:
- ocaml-batteries-included
- libpcre-ocaml-dev
- libcamlnet-ssl-ocaml-开发者_开发技巧dev
- libldap-ocaml-dev
When compiling code I get errors such as:
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
They are non-identical:
$ 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
My code stll compiles, but which of these are the correct ones, and how can I suppress this apparently spurious warning?
Thanks!
Official debian packages put dll*.so into /usr/lib/ocaml/stublibs
. And /usr/local/lib/ocaml/<version>/stublibs
is configured as the default install target for ocamlfind
so that manually compiled and installed libraries will be immediately available (see /usr/lib/ocaml/ld.conf
). So it means that you (or someone else on the machine) compiled and installed ocamlnet manually. Which installation is more "correct" is up to you, but having duplicate ocamlfind package is bad.
Note that debian package is tracked by package system and may be installed as a dependency. If you rebuild (e.g.) ocamlnet with some patches you will need to rebuild every needed reverse dependency against patched version and remove corresponding debian packages.
精彩评论