部署自包含的本机OCaml应用程序

Sta*_*tas 4 linux deployment ocaml

我需要在Linux机器上部署一个依赖于几个动态库的本机OCaml应用程序.我们的想法是准备包含所有内容的独立包(不依赖于OCaml,OPAM等),并且可以假设任何现代x84 Linux盒子安装.在理想的世界中,只需要部署和运行一个文件.

我能想到的最好的方法是将所有需要的动态库(ldd app.native)与应用程序可执行文件一起部署,并通过LD_LIBRARY_PATH在调用应用程序之前导出的bash脚本运行应用程序.

任何想法如何让它变得更好是受欢迎的.

UPDATE

一些技巧:

  • 使用Linux Application Checker验证与不同Linux发行版的兼容性.
  • 在稳定但有点过时的分发(例如现在的CentOS 6)上构建二进制包以提高libc兼容性.
  • 用于构建二进制包并运行可执行文件的脚本示例.

ivg*_*ivg 6

OCaml及其全静态方法应该已经开箱即用.所有OCaml可执行文件都与OCaml库静态链接.什么关于非OCaml的依赖关系,那么你的确可以用一个包装脚本将部署它们LD_LIBRARY_PATH,也可以使用rpath,或者你可以dlopen你的图书馆,如果它使你的感觉.在任何情况下,我强烈建议你不要以libc这种方式对待,即不要尝试安装自己的版本libc.

  • libc的二进制版本取决于系统 (2认同)