我可以使用 opam 从本地文件制作一个包并安装它吗?

Can I use opam to make a package out of a local file and install it?

我是 opam 的新手,正在尝试弄清楚如何正确使用它。对于 class,我想为学生设置一个安装了一些自定义包的环境。 (这个包将包含一些我从另一所学校的同事那里得到的原始 .ml 文件;这些文件在他们的 github 上,但我看不到任何 .opam 文件,据我所知他们'不在任何官方软件包版本中。)

我能否以某种方式将这些本地 .ml 文件称为包并要求 opam 安装它?文件是否必须首先位于 github 上,如果可以,我可以使用我同事现有的存储库作为源吗?我不想做这个 public,因为这不是我自己的作品;我只想配置我的本地环境,以便可以轻松地将文件中的代码作为一个包包含在内。基本上我不知道最好的方法,所以我很高兴得到任何建议。

您可以在项目的基目录中添加自定义opam 文件。请参阅 documentation 了解如何创建该文件。

然后你可以在基本目录中输入opam pin add .,你的项目将被安装,就好像它是一个opam包一样。查看 opam pin --help 了解更多信息(例如,您也可以固定到远程 git 项目)。

请注意,虽然默认存储库托管在 github 上,但这绝不是 opam 的要求。 Opam 依赖于 git,但您绝对可以将其与私有 git 存储库一起使用。如果你想使用你同事的存储库作为源,那是完全可行的,尽管通常最好将 opam 文件放在目录的根目录下(你可以在他们的存储库上做一个 PR 或者在 github,该网站清楚表明您复制了代码)。

如果固定不合您的口味,您也可以创建自己的存储库,尽管这对于您的需求来说可能有点太重了。

祝你好运!