- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近按照说明安装了 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/
在 OPAM 初始化期间,我收到此消息: A hook can be added to opam's init scripts to ensure that the shell remains in
我已经尝试通过 Homebrew 和 opam init 在系统范围内安装 OPAM,但尚未使其正常工作。我应该如何再次尝试这个? 最佳答案 首先,不建议在系统范围内安装它。但如果您仍然想要,那么步骤
我想知道我需要设置什么,以便 opam 在我位于防火墙后面时通过代理服务器下载软件包。 最佳答案 opam 使用 curl,因此您只需设置 http_proxy、HTTPS_PROXY 或 ALL_P
我在使用 opam 和锁定文件时遇到问题。 chris@chris:~$ opam upgrade Another process (19525) has already locked "/home/
我想在本地重新编译/重新安装已经通过 OPAM 下载的包,但不再次下载。 opam reinstall似乎总是重新下载软件包,我看不到禁用它的选项。 以下是人们可能想要执行此本地重新安装的几个原因:
这是否可能有多个共享相同编译器的开发环境? 其实我想用4.00.1+short-types具有不同安装包的编译器,以及在这些环境之间轻松切换的可能性。 opam switch只允许我在没有遗漏的情况下
opam list -a列出 OPAM 当前可用的所有软件包,但不显示当前未安装的软件包的版本号,根据 opam list --help输出: (...) the output format disp
在编写 OPAM 包配置文件时,我可以在 build 字段中指定目标平台,如下所示: build: [ ["./configure" "build-linux" {os = "linux"}
对于一个学校项目,我正在使用 Jane Street 的核心库和异步库。我正在尝试使用 bind Unix 系统调用调试问题,所以我运行 ocamldebug myprogram。这在引发异常 (Un
我是 OCaml 的完全新手。我使用过的其他语言(例如 Scala、Clojure、Node.js 上的 Javascript)具有包管理器,允许人们以干净的方式启动一个项目,该项目具有一组已声明的已
我有两个使用 ocaml 4.02.1 编译的 ocaml 项目。有没有办法为每个项目创建单独的 opam 安装,而不是让两个项目在全局 4.02.1 opam 开关中安装其依赖项? 最佳答案 在 o
我刚刚尝试了“opam 升级”并得到了(最终总结): 1 to install | 59 to reinstall | 3 to upgrade | 34 to downgrade | 0 to re
安装camlbz2时出错 %opam 安装 camlbz2 ... ... . checking bzlib.h usability... no . checking bzlib.h presence
过去我通过 opam 安装任何 OCaml 软件包都没有问题。但是我无法安装 Cryptokit。 我正在使用命令: $ opam install cryptokit 我收到以下错误消息(我不
我正在尝试制作这段代码: open Lwt;; open Cohttp;; (* a simple function to access the content of the response *)
我正在尝试使用 opam 安装模块 camlimages。当我在我的 shell 中启动 opam install camlimages 时,camlimages 的编译失败并且我收到此消息: * p
我希望在我的 Ubuntu 14.04 计算机上安装 ctypes。我尝试使用 opam 来做到这一点,但失败了。这是我得到的回复:- opam install ctypes The followin
我正在安装 Ubuntu 18.04 我以前做过这个,从来没有遇到过这个问题,OPAM的安装一直很顺利,除了这次。 我运行代码来安装 OPAM。 sudo apt install opam 安装没有报
我最近按照说明安装了 OPAM 来尝试一下,它看起来不错,我想使用它。但是,在我选择尝试 OPAM 之前,它无法检测到我手动安装的以前安装的 OCAML 包。 OPAM 现在想要为任何软件包安装做的第
我正在尝试设置 OCaml 环境,并且已按照 Real World OCaml beta 附录 A 中的说明进行操作。我设置了 opam,并使用命令安装了 OCaml 版本 $ opam switch
我是一名优秀的程序员,十分优秀!