在OPAM中安装软件包列表

问题描述 投票:1回答:1

OPAM是OCaml的出色软件包管理器。

是否可以像Python中的pip那样安装给定的软件包列表(使用命令pip -r requirements.txt)?

我们有一个与几个人共享的小型Git存储库,一次安装所有项目依赖项会很好。

是的,我们可能会有一个小的Shell脚本,或者在.txt文件中列出了软件包,并将其通过管道传输到opam install ...,但是可能会有更好的解决方案。

谢谢

install ocaml package-managers opam
1个回答
3
投票

假设您在项目的NAME.opam(或只是opam)文件中指定了依赖项,则可以运行

opam install . --deps-only

这将为您的软件包(或如果您的项目中有多个opam文件的软件包)安装所有依赖项。

默认情况下,opam会忽略未提交的更改,因此,如果要使用已修改的opam文件运行此命令,则需要添加--working-dir

[可选,您可以锁定通过运行opam lock使用的依赖项的版本,这将创建.opam.locked文件。 opam-lock是2.0.5中的一个单独插件(可能直到2.1版),因此opam会提示您安装它。

在存在锁定文件的情况下,还应该将--locked添加到opam install,以要求其使用锁定文件并安装完全相同的版本。

[我也建议添加-j X,其中X是您可用的内核数,这样可以加快速度。

我的Makefile中通常包含以下内容:

deps:
        opam install . --deps-only --locked --working-dir

。opam文件的语法描述为here

© www.soinside.com 2019 - 2024. All rights reserved.