Assuming you aren’t an advanced user with a findlib
installation, you have always needed opam to run dune. On Unix that has been a magic eval $(opam env)
invocation or some .profile
modifications. There are magic invocations for Windows as well, but in your case I think you were using a DkML version 1.x from 2 years ago that unsafely hid some of the magic. Unsafe because:
- DkML 1.x gave you an early version of Dune/opam integration that unfortunately conflicted with later Dune/opam integration roadmap item (A Roadmap for the OCaml Platform - Seeking Your Feedback).
- the early integration failed for users in very non-transparent ways like all magic invocations are prone to do
- the upcoming opam 2.2 does not (and should not) have that magic, and it is important that there is a sane migration path from DkML to regular opam in the near future
The most beginner-proof / clear / copy-and-pastable / cross-platform / future-compatible way is opam exec -- dune build
.
(And I think you’ll be able to drop the opam eval
or opam exec
when the Dune/opam integration is finished. But someone from dune can confirm that.)