我是Linux和OCAML的新手。我认为让OCaml在Windows上工作是不直接的。我找到了这个链接:
https://www.cs.umd.edu/class/spring2018/cmsc330/ocamlInstallationGuide.pdf#page=14&zoom=100,0,96
但是,我怀疑这是一些过时的东西,因为它们提到4.04是最新的OCaml版本,目前有一个4.07版本。我进一步怀疑OCaml现在需要bwrap,这是我的问题和问题的根源。
我强调,我只是想让OCaml在Windows上工作。如果有比使用WSL ()更简单的方法,我很乐意这样做。
在创建开关时:
opam switch create ocaml-base-compiler.4.07.0,我得到以下错误:
bwrap:创建新的命名空间失败,可能是因为内核不支持用户名称空间。必须在此类系统上安装bwrap。
我想我需要bwrap,并且尝试过各种命令,例如:
wget https://mirrors.edge.kernel.org/ubuntu/pool/main/b/bubblewrap/bubblewrap_0.3.1-2_amd64.deb其次是:
sudo dpkg -i bubblewrap_0.3.1-2_amd64.deb安装似乎进行得很好,但我仍然会发现错误。我必须承认我不知道bwrap must be installed setuid on such systems是什么意思。
1)如何安装bwrap?
本网站:
https://github.com/projectatomic/bubblewrap/issues/139
这似乎表明让bwrap在Windows期间工作是不可能的:"Flatpak和冒泡包装要求Linux。WSL不是Linux,而是假装是Linux的Windows,它没有现代Linux内核的全部功能集。据我所知,它没有实现名称空间,所以你运气不好。“
2)我是否可以使用WSL在Windows上启动和运行OCaml,或者是否有更好的方法?
最后,我不喜欢Ubuntu。如果有一个更好/更容易使用的发行版与WSL一起用于安装OCAML,我在更改时没有问题!
谢谢,戴夫
发布于 2019-03-05 11:05:21
这是我为了让事情正常运转所做的事情。根据这一评论:
“我可以通过清除~/. opam /config,并使用opam init --禁用沙箱--来解决这个问题,但这比理想的用户体验要少一些。”
https://github.com/ocaml/opam/issues/3505
这条指令是:
“的确,WSL不支持bwrap (参见此问题)。为了能够在您的情况下使用opam,您可以使用-禁用沙箱选项(谨慎使用)--禁用沙箱选项(用于新的opam初始化或通过opamrc )。对于初始化的opam,您不能使用此选项,但可以通过删除/空case *命令字段来直接更改配置文件中的配置。请参阅此faq条目以获得更多信息。我在这里重复警告:”明智地使用桑布多兴禁用选项,运行rm / do的坏的Makefile会发生。“
发自:
https://opam.ocaml.org/doc/FAQ.html#Why-does-opam-require-bwrap
我删除了.opam目录并做了一个
opam init --禁用-沙箱
在此之前,我做了一个:
rm -r .opam
我将再次提到所有关于关闭沙箱是危险的警告(参见链接)。
我现在使用的是OCaml 4.07.0!
希望这能帮到别人
发布于 2020-05-25 23:25:00
更现代的指南(在WSL2 Ubuntu20.04上测试)可以在简街安装OCaml回购上找到。
https://stackoverflow.com/questions/54987110
复制相似问题