make が opam を認識しない ocamlfind がインストールされました

make が opam を認識しない ocamlfind がインストールされました

makeへの依存関係を伴う を実行しようとしていますocamlfindが、それをインストールしようとすると、循環依存関係と への依存関係が発生しますocaml-base-nox

ocaml-findlib相互に依存するとlibfindlib-ocamlを 1 つのコマンドで同時にインストールできる ことが分かりました。sudo apt install ocaml-findlib ocaml-findlib libfindlib-ocaml ocaml-base-nox-4.01.0 ただし、残りの依存関係は を返しますPackage 'ocaml-base-nox-4.01.0' has no installation candidate。どうやら、いくつかのパッケージについては言及しているようです。

Package ocaml-base-nox-4.01.0 is a virtual package provided by:
  ocaml-base-nox 4.01.0-3ubuntu3.1 [Not candidate version]
  ocaml-base-nox 4.01.0-3ubuntu3 [Not candidate version]

そのパッケージのインストールを進めるのに役立つ回答が役立つかもしれません。そうでない場合は、インストールされたインスタンスを make に認識させる方法を教えてくれる回答が役立つopamかもしれません。ご覧のとおり、そのインストールは実際に機能しました。

vagrant@vagrant-ubuntu-trusty-64:~/projectfolder$ opam list
# Installed packages for system:
base-bigarray   base  Bigarray library distributed with the OCaml compiler
base-threads    base  Threads library distributed with the OCaml compiler
base-unix       base  Unix library distributed with the OCaml compiler
conf-m4            1  Virtual package relying on m4
ocamlfind      1.7.3  A library manager for OCaml

ご覧のとおり、opam 経由で ocamlfind を正常にインストールできました。興味深いことに、make コマンドは、ocamlfindインストール時に環境に追加したものを認識しないようですopam

/path/to/some/folder/which/is/super/secret -O2 -d acommand file.f
[Error] Critical: Error starting ocamlopt process: Cannot run program
"ocamlfind" (in directory
"/path/to/some/folder/."): error=2, No such file
or directory (Cannot run program "ocamlfind" (in directory
"/path/to/some/folder/."): error=2, No such file
or directory)
make: *** [some/folder/timestamp] Error 113

答え1

この問題は、環境変数が正しく設定されていないために発生します。これを行うには、次のコマンドを実行するだけで十分です。

eval `opam config env`

関連情報