【问题标题】:OPAM package not runningOPAM 包未运行
【发布时间】:2013-02-07 13:10:16
【问题描述】:

我已经安装了 OPAM 并运行了初始化并更新了我的 .bashrc 代码。然后我安装了 ocamlfind 包,它成功了。但是当我尝试

#use "topfind";;

我得到以下信息

Cannot find file topfind

我在 Opensuse 12.2 上运行从源代码构建的 ocaml 4.00.1。

【问题讨论】:

    标签: ocaml opam


    【解决方案1】:

    首先,您需要通过以下方式导出正确的环境变量:

    eval `opam config env`
    

    为了更有效,您应该将该行放在您的~/.profile(或~/.bashrc)中。

    然后,如果您使用的是系统编译器,您可以将这些行添加到您的~/.ocamlinit

    let () =
      try Topdirs.dir_directory (Sys.getenv "OCAML_TOPLEVEL_PATH")
      with Not_found -> ()
    

    我们正在努力在发布 1.0 之前改进此流程。

    【讨论】:

    • 这也有效。感谢 OPAM,我以前从来没有让 GODI 运行,安装库曾经很痛苦,现在很容易!
    【解决方案2】:

    如果$OCAML_TOPLEVEL_PATH没有定义,你必须定义它:

    export OCAML_TOPLEVEL_PATH=/home/%user%/.opam/%version%/lib/toplevel
    

    别忘了更改%user% 和你的编译器%version%

    在 opam bugtracker 上检查此 issue

    【讨论】:

    • 您好,“.opam”目录下没有版本目录。只有aliasesarchivescompilersconfigdescr和其他类似的。
    • 我添加了一个小修改,路径是/home/%user%/.opam/system/lib/toplevel,它工作。谢谢。
    【解决方案3】:

    如果你从顶层开始会怎样

    rlwrap ocaml -I "$OCAML_TOPLEVEL_PATH"

    您也可以尝试替代顶级:utop(存在于 OPAM 中)

    【讨论】:

    • 嗨,我没有安装 rlwrap,我已经用默认的 ocaml 解释器设置了 Emacs,所以我不想在 tuareg 中继续切换到“utop”。还是谢谢。
    • rlwrap 不需要。 ocaml -I "$OCAML_TOPLEVEL_PATH" 应该解决问题恕我直言。
    • 一旦我设置了$OCAML_TOPLEVEL_PATH 变量,我就可以只运行ocaml 本身。
    猜你喜欢
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多