部署独立的本机 OCaml 应用程序

Deploying self-contained native OCaml application

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

我能想到的最好的方法是通过导出 [=11] 的 bash 脚本部署所有需要的动态库 (ldd app.native) 以及应用程序可执行文件和 运行 应用程序=] 在调用应用程序之前。

欢迎提出任何改进意见。

更新

一些提示:

OCaml 及其全静态方法应该已经开箱即用。所有 OCaml 可执行文件都与 OCaml 库静态链接。关于非 OCaml 依赖项,那么实际上您可以使用设置 LD_LIBRARY_PATH 的包装脚本部署它们,或者您可以使用 rpath,或者您可以 dlopen 您的库,如果它对你。无论如何,我强烈建议您不要以这种方式对待 libc,即不要尝试安装您自己的 libc 版本。