gpt4 book ai didi

installation - Ocaml OPAM 是否检测先前安装的 Ocaml 软件包?

转载 作者:行者123 更新时间:2023-12-04 15:00:28 26 4
gpt4 key购买 nike

我最近按照说明安装了 OPAM 来尝试一下,它看起来不错,我想使用它。但是,在我选择尝试 OPAM 之前,它无法检测到我手动安装的以前安装的 OCAML 包。

OPAM 现在想要为任何软件包安装做的第一件事是安装 ocamlfind。查询有关我手动安装的软件包的信息并不反射(reflect)它们已经安装。这包括 ocamlfind。

我害怕做任何事情,因为我不知道安装另一个软件包可能会产生什么影响。 OPAM 至少会覆盖或重新安装 ocamlfind。这是否会破坏我现有的 ocamlfind 及其对我已经手动安装的所有软件包的知识以及我使用它们的能力?我不想重新安装所有东西。我已经搜索并搜索过,但找不到关于这个精确主题的任何文档或论坛帖子,我也不知道 ocamlfind 到底是如何工作的。

至少,如果 OPAM 可以检测或被告知哪些包已经存在以及它们驻留在何处以避免不必要的重新编译,那将会很好。也许它已经这样做了,但我无法发现它是否确实如此。

最佳答案

OPAM 提供一个(或多个)独立于默认安装的 OCaml 安装,即通常在 /usr/bin 中找到的编译器或库。 , /usr/lib/ocaml/usr/local/blahblah .因此,您手动安装的 OCaml 系统和基于 OPAM 的系统可以共存。所有 OPAM 安装都在 $HOME/.opam/switch/ 下完成(默认为 switch=system),包括二进制可执行文件。因此,对于您的情况,OCamlFind 没有被 OPAM 覆盖。 OPAM 在不同的目录中安装了另一个 OCamlFind。

使用哪个系统可以通过环境变量“切换”。 “opam config env”显示您必须声明使用当前“开关”的变量。如果要使用默认安装,请确保这些变量没有引用 OPAM 的东西。

要使用手动编译的库和 OPAM 包,请在 OPAM 切换环境下重新编译并重新安装它们。请注意,OPAM 可能会在此处覆盖您的软件包。例如,如果您在“系统”OPAM 目录中手动安装 ocamlfind,那么如果您键入“opam install ocamlfind”,则 OPAM 会覆盖您的 OCamlFind 安装。 (哦,顺便说一句,我认为 OPAM 在这里覆盖现有安装时很难警告我们,因为 OPAM 包没有关于它安装了哪些 OCamlFind 包的信息)。

同时使用安装在默认位置的库和 OPAM 包是...... AFAIK,不容易。我认为,至少 OPAM 不是为这种用途而设计的。为避免混淆库路径,请将它们移植到 OPAM 交换机之一。

如果您在 future 获得 OPAM 的一些功能愿望,请将它们发布到 https://github.com/OCamlPro/opam .

关于installation - Ocaml OPAM 是否检测先前安装的 Ocaml 软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com