linux – 部署自包含的本机OCaml应用程序
作者:互联网
我需要在Linux机器上部署一个依赖于几个动态库的本机OCaml应用程序.我们的想法是准备包含所有内容的独立包(不依赖于OCaml,OPAM等),并且可以假设任何现代x84 Linux盒子安装.在理想的世界中,只需要部署和运行一个文件.
我能想到的最好的方法是将所有需要的动态库(ldd app.native)与应用程序可执行文件一起部署,并通过在调用应用程序之前导出LD_LIBRARY_PATH的bash脚本运行应用程序.
任何想法如何让它变得更好是受欢迎的.
UPDATE
一些技巧:
>使用Linux Application Checker验证与不同Linux发行版的兼容性.
>在稳定的,但有点过时的分发(例如现在的CentOS 6)上构建二进制包,以提高libc兼容性.
> build二进制包的脚本示例,以及run可执行文件的脚本示例.
解决方法:
OCaml及其全静态方法应该已经开箱即用.所有OCaml可执行文件都与OCaml库静态链接.有关非OCaml依赖关系的内容,确实可以使用设置LD_LIBRARY_PATH的包装器脚本部署它们,或者您可以使用rpath,或者如果它对您有意义,您可以删除库.在任何情况下,我都强烈建议您不要以这种方式处理libc,即不要尝试安装自己的libc版本.
标签:linux,deployment,ocaml 来源: https://codeday.me/bug/20190528/1170797.html