Ошибка при установке некоторых пакетов OCaml

Я пытаюсь установить некоторые пакеты Ocaml, но по какой-то причине у меня возникают ошибки при установке dune, ocamlbuild и ocamlfind. Запустивsudo opam install ocamlfind ounit utop dune qcheck, вылезла следующая ошибка:

      [ERROR] The compilation of dune.3.4.1 failed at "ocaml bootstrap.ml -j 7".
[ERROR] The compilation of ocamlbuild.0.14.1 failed at "make check-if-preinstalled all opam-install".
[ERROR] The compilation of ocamlfind.1.9.5 failed at "make opt".

#=== ERROR while compiling ocamlfind.1.9.5 ====================================#
# context     2.1.3 | macos/arm64 | ocaml.4.12.0 | https://opam.ocaml.org#2e9465d0
# path        ~/.opam/default/.opam-switch/build/ocamlfind.1.9.5
# command     ~/.opam/opam-init/hooks/sandbox.sh build make opt
# exit-code   2
# env-file    ~/.opam/log/ocamlfind-21232-a598ab.env
# output-file ~/.opam/log/ocamlfind-21232-a598ab.out
### output ###
# for p in findlib; do ( cd src/$p; /Library/Developer/CommandLineTools/usr/bin/make opt ) || exit; done
# ocamlopt -I +compiler-libs -g -opaque  -I +unix -I +dynlink -c findlib_config.ml
# clang: error: unable to make temporary file: Operation not permitted
# File "findlib_config.ml", line 1:
# Error: Assembler error, input left in file /tmp/camlasm9d6939.s
# make[1]: *** [findlib_config.cmx] Error 2
# make: *** [opt] Error 2


#=== ERROR while compiling ocamlbuild.0.14.1 ==================================#
# context     2.1.3 | macos/arm64 | ocaml.4.12.0 | https://opam.ocaml.org#2e9465d0
# path        ~/.opam/default/.opam-switch/build/ocamlbuild.0.14.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build make check-if-preinstalled all opam-install
# exit-code   2
# env-file    ~/.opam/log/ocamlbuild-21232-d41248.env
# output-file ~/.opam/log/ocamlbuild-21232-d41248.out
### output ###
# [...]
# ocamlc.opt -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_executor.ml
# ocamlc.opt -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_unix_plugin.mli
# ocamlc.opt -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild_unix_plugin.ml
# ocamlc.opt -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild.mli
# ocamlc.opt -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/ocamlbuild.ml
# ocamlc.opt -I +unix -I src -o ocamlbuild.byte unix.cma src/ocamlbuild_pack.cmo src/ocamlbuild_plugin.cmo src/ocamlbuild_executor.cmo src/ocamlbuild_unix_plugin.cmo src/ocamlbuild.cmo
# ocamlc.opt -a -o src/ocamlbuildlib.cma src/ocamlbuild_pack.cmo src/ocamlbuild_plugin.cmo src/ocamlbuild_executor.cmo src/ocamlbuild_unix_plugin.cmo
# ocamlopt.opt -for-pack Ocamlbuild_pack -w +L -w +R -w +Z -I src -I +unix -safe-string -bin-annot -strict-sequence -c src/const.ml
# clang: error: unable to make temporary file: Operation not permitted
# File "src/const.ml", line 1:
# Error: Assembler error, input left in file /tmp/camlasmb8862d.s
# make: *** [src/const.cmx] Error 2


#=== ERROR while compiling dune.3.4.1 =========================================#
# context     2.1.3 | macos/arm64 | ocaml.4.12.0 | https://opam.ocaml.org#2e9465d0
# path        ~/.opam/default/.opam-switch/build/dune.3.4.1
# command     ~/.opam/opam-init/hooks/sandbox.sh build ocaml bootstrap.ml -j 7
# exit-code   2
# env-file    ~/.opam/log/dune-21232-574465.env
# output-file ~/.opam/log/dune-21232-574465.out
### output ###
# ocamlc -output-complete-exe -w -24 -g -o .duneboot.exe -I boot unix.cma boot/libs.ml boot/duneboot.ml
# clang: error: unable to make temporary file: Operation not permitted
# File "boot/duneboot.ml", line 1:
# Error: Error while building custom runtime system



<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><>   
┌─ The following actions failed
│ λ build dune       3.4.1
│ λ build ocamlbuild 0.14.1
│ λ build ocamlfind  1.9.5
└─ 
┌─ The following changes have been performed (the rest was aborted)
│ ∗ install seq base
└─ 
# Run eval $(opam env) to update the current shell environment

В качестве предлога я просто настраивал свою среду разработки, устанавливая:

  • последний доморощенный
  • рубин 3.1.2p20 (arm64-darwin20)
  • окамл 4.12
  • опам 2.1.3
  • с пакетами opam ocamlfind, ounit, utop, dune, qcheck

Если это поможет, я также инициализировал менеджер пакетов OCaml, запустивopam initи разрешить менеджеру редактировать мой~/.zshrcк которому я последовал, запустивsource ~/.zshrc. Обратите внимание, что все установки выполняются с/безsudoилиarch -arm64флаги (что мне ранее подсказывало сделать варева)

У меня также есть чип M1, и, если это имеет значение, на моем ноутбуке установлены другие инструменты, такие как XCode, Anaconda, Java и т. д.,

0 ответов

Другие вопросы по тегам