Add a version constraint to an opam install
$ opam install utop ... <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ⬇ retrieved lambda-term.3.3.3 (cached) ⬇ retrieved logs.0.9.0 (cached) ⬇ retrieved lwt.6.1.0 (cached) ⬇ retrieved lwt_react.1.2.0 (cached) ⬇ retrieved utop.2.16.0+ox (cached) [ERROR] The compilation of lwt.6.1.0 failed at "dune build -p lwt -j 15 @install". #=== ERROR while compiling lwt.6.1.0 ==========================================#
On an old OxCaml, the new lwt 6 doesn't build, and naturally lwt isn't as aware of this OCaml fork. But you can just add constraints:
$ opam install utop 'lwt<6' The following actions will be performed: === install 5 packages ∗ lambda-term 3.3.3 [required by utop] ∗ logs 0.9.0 [required by utop] ∗ lwt 5.9.2+ox ∗ lwt_react 1.2.0 [required by utop] ∗ utop 2.16.0+ox Proceed with ∗ 5 installations? [Y/n] y <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> ⬇ retrieved lambda-term.3.3.3 (cached) ⬇ retrieved logs.0.9.0 (cached) ⬇ retrieved lwt.5.9.2+ox (cached) ⬇ retrieved lwt_react.1.2.0 (cached) ⬇ retrieved utop.2.16.0+ox (cached) ∗ installed lwt.5.9.2+ox ∗ installed lwt_react.1.2.0 ∗ installed logs.0.9.0 ∗ installed lambda-term.3.3.3 ∗ installed utop.2.16.0+ox Done.